ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/configure.ac
Revision: 1.3
Committed: Mon Apr 7 01:12:56 2003 UTC (21 years, 1 month ago) by pcg
Branch: MAIN
Changes since 1.2: +5 -0 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 dnl Process this file with autoconf to produce a configure script.
2
3 AC_PREREQ(2.57)
4 AC_INIT(src/vped.C)
5 AC_CANONICAL_TARGET
6 AM_INIT_AUTOMAKE(vpe, 0.1)
7 AM_CONFIG_HEADER(config.h)
8 AM_MAINTAINER_MODE
9
10 AH_TOP([
11 #ifndef CONFIG_H__
12 #define CONFIG_H__
13
14 #ifdef __cplusplus
15 using namespace std;
16 #endif
17
18 ])
19
20 AH_BOTTOM([
21 #if __CYGWIN__
22
23 typedef unsigned char u8;
24 typedef unsigned short u16;
25 typedef unsigned int u32;
26
27 #else
28 #include <inttypes.h>
29
30 /* old modula-2 habits */
31 typedef unsigned char u8;
32 typedef uint16_t u16;
33 typedef uint32_t u32;
34 #endif
35
36 #endif
37 ])
38
39 dnl Include the macros from the m4/ directory
40 AM_ACLOCAL_INCLUDE(m4)
41
42 AM_GNU_GETTEXT([external])
43 AM_GNU_GETTEXT_VERSION(0.11.5)
44
45 # Enable GNU extensions.
46 # Define this here, not in acconfig's @TOP@ section, since definitions
47 # in the latter don't make it into the configure-time tests.
48 AC_DEFINE([_GNU_SOURCE], 1, [Enable GNU extenstions])
49 AC_DEFINE([__USE_BSD], 1, [Enable BSD extensions])
50
51 ALL_LINGUAS=""
52
53 dnl Checks for programs.
54 AC_PROG_CC
55 AC_PROG_CPP
56 AC_PROG_CXX
57 AC_PROG_GCC_TRADITIONAL
58 AC_PROG_AWK
59 AC_PROG_INSTALL
60 AC_PROG_LN_S
61 AC_PROG_MAKE_SET
62 AC_PROG_RANLIB
63
64 AC_ISC_POSIX
65
66 m4_if([
67 dnl Check and set OS
68
69 case $target_os in
70 *linux*)
71 AC_DEFINE(HAVE_LINUX, 1, [Linux])
72 [ rm -f src/device.c; ln -sf linux/device.c src/device.c ]
73 ;;
74 *freebsd*)
75 AC_DEFINE(HAVE_FREEBSD, 1, [FreeBSD])
76 [ rm -f src/device.c; ln -sf freebsd/device.c src/device.c ]
77 ;;
78 *darwin*)
79 AC_DEFINE(HAVE_DARWIN, 1, [Darwin (MacOS/X)])
80 [ rm -f src/device.c; ln -sf darwin/device.c src/device.c ]
81 ;;
82 *solaris*)
83 AC_DEFINE(HAVE_SOLARIS, 1, [Solaris/SunOS])
84 [ rm -f src/device.c; ln -sf solaris/device.c src/device.c ]
85 ;;
86 *openbsd*)
87 AC_DEFINE(HAVE_OPENBSD, 1, [OpenBSD])
88 [ rm -f src/device.c; ln -sf openbsd/device.c src/device.c ]
89 ;;
90 *netbsd*)
91 AC_DEFINE(HAVE_NETBSD, 1, [NetBSD])
92 [ rm -f src/device.c; ln -sf netbsd/device.c src/device.c ]
93 ;;
94 *cygwin*)
95 AC_DEFINE(HAVE_CYGWIN, 1, [Cygwin])
96 [ rm -f src/device.c; ln -sf cygwin/device.c src/device.c ]
97 ;;
98 *)
99 AC_MSG_ERROR("Unknown operating system.")
100 ;;
101 esac
102 ])
103
104 AC_CACHE_SAVE
105
106 dnl Checks for libraries.
107
108 AC_LANG(C++)
109 AC_CHECK_HEADERS(ext/hash_map)
110
111 dnl Checks for header files.
112 AC_CHECK_HEADERS([fcntl.h inttypes.h limits.h malloc.h stdint.h strings.h syslog.h unistd.h \
113 sys/file.h sys/ioctl.h sys/param.h sys/time.h netinet/in_systm.h cygwin.h])
114 AC_CHECK_HEADERS([net/ethernet.h net/if.h netinet/ip.h netinet/tcp.h], [], [],
115 [#include <sys/types.h>
116 #include <sys/socket.h>
117 #ifdef HAVE_NETINET_IN_SYSTM_H
118 #include <netinet/in_systm.h>
119 #endif])
120
121 dnl Checks for typedefs, structures, and compiler characteristics.
122 AC_C_CONST
123 AC_TYPE_PID_T
124 AC_TYPE_SIZE_T
125 AC_HEADER_TIME
126 AC_STRUCT_TM
127
128 AC_CACHE_CHECK([for socklen_t], ac_cv_type_socklen_t,
129 [
130 AC_TRY_COMPILE(
131 [#include <sys/types.h>
132 #include <sys/socket.h>],
133 [socklen_t len = 42; return len;],
134 ac_cv_type_socklen_t=yes,
135 ac_cv_type_socklen_t=no)
136 ])
137 if test $ac_cv_type_socklen_t = yes; then
138 AC_DEFINE(HAVE_SOCKLEN_T, 1, [socklen_t available])
139 fi
140
141 AC_CACHE_CHECK([for struct addrinfo], ac_cv_struct_addrinfo,
142 [
143 AC_TRY_COMPILE(
144 [#include <sys/types.h>
145 #include <sys/socket.h>
146 #include <netdb.h>],
147 [struct addrinfo ai; ai.ai_family = AF_INET; return ai.ai_family;],
148 ac_cv_struct_addrinfo=yes,
149 ac_cv_struct_addrinfo=no)
150 ])
151 if test $ac_cv_struct_addrinfo = yes; then
152 AC_DEFINE(HAVE_STRUCT_ADDRINFO, 1, [struct addrinfo available])
153 fi
154
155 dnl Checks for library functions.
156 AC_TYPE_SIGNAL
157
158 AC_LANG_PUSH(C)
159
160 AC_HEADER_STDC
161
162 AC_CHECK_FUNCS(asprintf daemon get_current_dir_name putenv select strerror strsignal strtol unsetenv mlockall)
163
164 AC_FUNC_ALLOCA
165
166 dnl Support for SunOS
167
168 AC_CHECK_FUNC(socket, [], [
169 AC_CHECK_LIB(socket, connect)
170 ])
171 AC_CHECK_FUNC(gethostbyname, [], [
172 AC_CHECK_LIB(nsl, gethostbyname)
173 ])
174
175 AC_LANG_POP
176
177 dnl AC_CHECK_FUNCS([freeaddrinfo gai_strerror getaddrinfo getnameinfo])
178
179 AC_CACHE_SAVE
180
181 dnl These are defined in files in m4/
182 tinc_TUNTAP
183 tinc_OPENSSL
184 dnl tinc_ZLIB
185
186 AC_ARG_ENABLE(tcp,
187 [AC_HELP_STRING(--enable-tcp, [enable tcp protocol support.])],
188 AC_DEFINE_UNQUOTED(ENABLE_TCP, 1, [TCP protocol support.])
189 )
190
191 AC_ARG_ENABLE(http-proxy,
192 [AC_HELP_STRING(--enable-http-proxy, [enable http proxy connect support.])],
193 AC_DEFINE_UNQUOTED(ENABLE_HTTP_PROXY, 1, [http proxy connect support.])
194 )
195
196 HMAC=16 dnl see also the AC_HELP_STRING
197 AC_ARG_ENABLE(hmac-length,
198 [AC_HELP_STRING(--enable-hmac-length=BYTES, [use a hmac of length BYTES bytes (default 16). Allowed values are 4, 8, 12, 16.])],
199 HMAC=$enableval
200 )
201 AC_DEFINE_UNQUOTED(HMACLENGTH, $HMAC, [Size of HMAC in each packet in bytes.])
202
203 RAND=8 dnl see also the AC_HELP_STRING
204 AC_ARG_ENABLE(rand-length,
205 [AC_HELP_STRING(--enable-rand-length=BYTES, [use BYTES bytes of extra randomness (default 8). Allowed values are 0, 4, 8.])],
206 RAND=$enableval
207 )
208 AC_DEFINE_UNQUOTED(RAND_SIZE, $RAND, [Add this many bytes of randomness to each packet.])
209
210 MTU=1500 dnl see also the AC_HELP_STRING
211 AC_ARG_ENABLE(mtu,
212 [AC_HELP_STRING(--enable-max-mtu=BYTES, enable mtu sizes upto BYTES bytes (default 1500). Use 9100 for jumbogram support.)],
213 MTU=$enableval
214 )
215 AC_DEFINE_UNQUOTED(MAX_MTU, $MTU + 14, [Maximum MTU supported.])
216
217 COMPRESS=1
218 AC_ARG_ENABLE(compression,
219 [AC_HELP_STRING(--disable-compression, Disable compression support.)],
220 if test "x$enableval" = xno; then
221 COMPRESS=0
222 fi
223 )
224 AC_DEFINE_UNQUOTED(ENABLE_COMPRESSION, $COMPRESS, [Enable compression support.])
225
226 CIPHER=bf_cbc
227 AC_ARG_ENABLE(cipher,
228 [AC_HELP_STRING(--enable-cipher, [
229 Select the symmetric cipher (default "bf"). Must be one of
230 "bf" (blowfish), "aes-128", "aes-192" or "aes-256".])],
231 if test "x$enableval" = xbf ; then CIPHER=bf_cbc ; fi
232 if test "x$enableval" = xaes-128; then CIPHER=aes_128_cbc; fi
233 if test "x$enableval" = xaes-192; then CIPHER=aes_192_cbc; fi
234 if test "x$enableval" = xaes-256; then CIPHER=aes_256_cbc; fi
235 )
236 AC_DEFINE_UNQUOTED(ENABLE_CIPHER, EVP_${CIPHER}, [Select the symmetric cipher to use.])
237
238 DIGEST=sha1
239 AC_ARG_ENABLE(digest,
240 [AC_HELP_STRING(--enable-digest, [
241 Select the digets algorithm to use (default "sha1"). Must be one of
242 "sha1", "ripemd160", "md4" or "md5".])],
243 if test "x$enableval" = xsha1 ; then DIGEST=sha1 ; fi
244 if test "x$enableval" = xripemd160; then DIGEST=ripemd160; fi
245 if test "x$enableval" = xmd4 ; then DIGEST=md4 ; fi
246 if test "x$enableval" = xmd5 ; then DIGEST=md5 ; fi
247 )
248 AC_DEFINE_UNQUOTED(ENABLE_DIGEST, EVP_${DIGEST}, [Select the digest algorithm to use.])
249
250 TRUST=1
251 m4_if([
252 AC_ARG_ENABLE(trust,
253 [AC_HELP_STRING(--enable-trust, [
254 Make authentication faster but allow decoding by all hosts of a VPN.
255 Use this when the VPN hosts DO trust each other and you don't care
256 wether man-in-the-middle sniffing attacks are possible by admins
257 of other VPN hosts. On pentiums or similar machines this can cut down
258 the time for reconnects by 0.4 seconds or more.])],
259 if test "x$enableval" = xyes; then
260 TRUST=1
261 fi
262 )
263 ])
264 AC_DEFINE_UNQUOTED(ENABLE_TRUST, $TRUST, [Faster, but VPN hosts may sniff each others data.])
265
266 if $CXX -v --help 2>&1 | grep -q fno-rtti; then
267 CXXFLAGS="$CXXFLAGS -fno-rtti"
268 fi
269
270 if $CXX -v --help 2>&1 | grep -q fexceptions; then
271 CXXFLAGS="$CXXFLAGS -fno-exceptions"
272 fi
273
274 if $CXX -v --help 2>&1 | grep -q ffunction-sections; then
275 CXXFLAGS="$CXXFLAGS -ffunction-sections"
276 fi
277
278 if $LD -v --help 2>&1 | grep -q gc-sections; then
279 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
280 fi
281
282 AC_CONFIG_COMMANDS_POST([
283
284 echo
285 echo "***"
286 echo "*** Configuration Summary"
287 echo "***"
288 echo "*** Cipher used: $CIPHER"
289 echo "*** Digest used: $DIGEST"
290 echo "*** HMAC length: $HMAC"
291 echo "*** RAND used: $RAND"
292 echo "*** Max. MTU: $MTU"
293 echo "*** Compression: $COMPRESS"
294 dnl echo "*** Trusted Mode: $TRUST"
295 echo "***"
296 echo
297
298 ])
299
300 AC_SUBST(INCLUDES)
301
302 AC_OUTPUT(Makefile po/Makefile.in
303 src/Makefile
304 doc/Makefile
305 lib/Makefile
306 m4/Makefile
307 )