configure.in: minimal syntax fixup for autoreconf

This is the strictly minimal syntax fixups to make autoreconf happy...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

---
Note: configure.in is still full of incorrect syntax, but fixing it is
a task for another day, and would have to be upstreamed. But upstream
looks to be moribund at best, if not dead... :-(

So, keep it for ourselves for now... Too bad, vtun is really helpfull.

--- vtun-3.0.3.orig/configure.in	2013-02-16 23:54:52.582451817 +0100
+++ vtun-3.0.3/configure.in	2013-02-17 00:03:13.640887353 +0100
@@ -110,10 +110,10 @@
 AC_SEARCH_LIBS(nanosleep, rt posix4)
 
 dnl Check for setproctitle in libutil
-AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE(HAVE_SETPROC_TITLE) )
+AC_SEARCH_LIBS(setproctitle, util bsd, AC_DEFINE([HAVE_SETPROC_TITLE],[],[Define to set title in /proc]) )
 
 if test "$SHAPER" = "yes"; then
-   AC_DEFINE(HAVE_SHAPER)
+   AC_DEFINE([HAVE_SHAPER],[],[Define to use shapper])
 fi
 
 if test "$ZLIB" = "yes"; then
@@ -121,7 +121,7 @@
    AC_CHECKING( for ZLIB Library and Header files ... )
    AC_CHECK_LIB(z, deflate,
 	LIBS="$LIBS -lz"
-	AC_DEFINE(HAVE_ZLIB),
+	AC_DEFINE([HAVE_ZLIB],[],[Define to use ZLIB]),
 	AC_MSG_ERROR( Zlib library not found.)
    )
 fi
@@ -148,7 +148,7 @@
 	    AC_CHECK_LIB($I, lzo1x_decompress,
 	    [
 	          LIBS="$LIBS -l"$I
-	       AC_DEFINE(HAVE_LZO)
+	       AC_DEFINE([HAVE_LZO],[],[Define to use LZO])
 	          havelzo=1
 	      ]
 	    )
@@ -180,8 +180,8 @@
 	AC_CHECK_LIB(crypto, BF_set_key,
 	    [
 	       LIBS="$LIBS -lcrypto"
-	       AC_DEFINE(HAVE_SSL)
-	       AC_DEFINE(HAVE_SSL_BLOWFISH)
+	       AC_DEFINE([HAVE_SSL],[],[Define to use SSL])
+	       AC_DEFINE([HAVE_SSL_BLOWFISH],[],[Define to use blowfish])
 	    ],
 	    AC_MSG_ERROR( SSL library not found. )
 	),
@@ -196,7 +196,7 @@
     $SSL_HDR_DIR ,
 	AC_CHECK_LIB(crypto, AES_set_encrypt_key,
 	    [
-	       AC_DEFINE(HAVE_SSL_AES)
+	       AC_DEFINE([HAVE_SSL_AES],[],[Define to use AES])
 	    ],
 	    AC_MSG_ERROR( AES library not found. )
 	),
@@ -211,7 +211,7 @@
     $SSL_HDR_DIR ,
 	AC_CHECK_LIB(crypto, EVP_EncryptInit,
 	    [
-	       AC_DEFINE(HAVE_SSL_EVP)
+	       AC_DEFINE([HAVE_SSL_EVP],[],Define to use EVP)
 	    ],
 	    AC_MSG_ERROR( EVP library not found. )
 	),
@@ -220,7 +220,7 @@
 fi
 
 if test "$NATHACK" = "yes"; then
-   AC_DEFINE(ENABLE_NAT_HACK)
+   AC_DEFINE([ENABLE_NAT_HACK],[],[Define to use NAT hack])
 fi
 
 if test "$SOCKS" = "yes"; then
@@ -274,6 +274,6 @@
 REL=`echo 'BRANCH-3_X' | tr -d '$: \-' | sed 's/^[A-Za-z]*//' | sed 's/\_/\./'`
 changequote([,])
 
-AC_DEFINE_UNQUOTED(VTUN_VER, "$REL `date '+%m/%d/%Y'`")
+AC_DEFINE_UNQUOTED([VTUN_VER], ["$REL `date '+%m/%d/%Y'`"], [vtun version])
 
 AC_OUTPUT(Makefile)
