ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/configure.ac
Revision: 1.4
Committed: Tue Apr 8 03:00:44 2003 UTC (21 years, 1 month ago) by pcg
Branch: MAIN
Changes since 1.3: +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(icmp,
187 [AC_HELP_STRING(--enable-icmp, [enable icmp protocol support.])],
188 AC_DEFINE_UNQUOTED(ENABLE_ICMP, 1, [ICMP protocol support.])
189 )
190
191 AC_ARG_ENABLE(tcp,
192 [AC_HELP_STRING(--enable-tcp, [enable tcp protocol support.])],
193 AC_DEFINE_UNQUOTED(ENABLE_TCP, 1, [TCP protocol support.])
194 )
195
196 AC_ARG_ENABLE(http-proxy,
197 [AC_HELP_STRING(--enable-http-proxy, [enable http proxy connect support.])],
198 AC_DEFINE_UNQUOTED(ENABLE_HTTP_PROXY, 1, [http proxy connect support.])
199 )
200
201 HMAC=16 dnl see also the AC_HELP_STRING
202 AC_ARG_ENABLE(hmac-length,
203 [AC_HELP_STRING(--enable-hmac-length=BYTES, [use a hmac of length BYTES bytes (default 16). Allowed values are 4, 8, 12, 16.])],
204 HMAC=$enableval
205 )
206 AC_DEFINE_UNQUOTED(HMACLENGTH, $HMAC, [Size of HMAC in each packet in bytes.])
207
208 RAND=8 dnl see also the AC_HELP_STRING
209 AC_ARG_ENABLE(rand-length,
210 [AC_HELP_STRING(--enable-rand-length=BYTES, [use BYTES bytes of extra randomness (default 8). Allowed values are 0, 4, 8.])],
211 RAND=$enableval
212 )
213 AC_DEFINE_UNQUOTED(RAND_SIZE, $RAND, [Add this many bytes of randomness to each packet.])
214
215 MTU=1500 dnl see also the AC_HELP_STRING
216 AC_ARG_ENABLE(mtu,
217 [AC_HELP_STRING(--enable-max-mtu=BYTES, enable mtu sizes upto BYTES bytes (default 1500). Use 9100 for jumbogram support.)],
218 MTU=$enableval
219 )
220 AC_DEFINE_UNQUOTED(MAX_MTU, $MTU + 14, [Maximum MTU supported.])
221
222 COMPRESS=1
223 AC_ARG_ENABLE(compression,
224 [AC_HELP_STRING(--disable-compression, Disable compression support.)],
225 if test "x$enableval" = xno; then
226 COMPRESS=0
227 fi
228 )
229 AC_DEFINE_UNQUOTED(ENABLE_COMPRESSION, $COMPRESS, [Enable compression support.])
230
231 CIPHER=bf_cbc
232 AC_ARG_ENABLE(cipher,
233 [AC_HELP_STRING(--enable-cipher, [
234 Select the symmetric cipher (default "bf"). Must be one of
235 "bf" (blowfish), "aes-128", "aes-192" or "aes-256".])],
236 if test "x$enableval" = xbf ; then CIPHER=bf_cbc ; fi
237 if test "x$enableval" = xaes-128; then CIPHER=aes_128_cbc; fi
238 if test "x$enableval" = xaes-192; then CIPHER=aes_192_cbc; fi
239 if test "x$enableval" = xaes-256; then CIPHER=aes_256_cbc; fi
240 )
241 AC_DEFINE_UNQUOTED(ENABLE_CIPHER, EVP_${CIPHER}, [Select the symmetric cipher to use.])
242
243 DIGEST=sha1
244 AC_ARG_ENABLE(digest,
245 [AC_HELP_STRING(--enable-digest, [
246 Select the digets algorithm to use (default "sha1"). Must be one of
247 "sha1", "ripemd160", "md4" or "md5".])],
248 if test "x$enableval" = xsha1 ; then DIGEST=sha1 ; fi
249 if test "x$enableval" = xripemd160; then DIGEST=ripemd160; fi
250 if test "x$enableval" = xmd4 ; then DIGEST=md4 ; fi
251 if test "x$enableval" = xmd5 ; then DIGEST=md5 ; fi
252 )
253 AC_DEFINE_UNQUOTED(ENABLE_DIGEST, EVP_${DIGEST}, [Select the digest algorithm to use.])
254
255 TRUST=1
256 m4_if([
257 AC_ARG_ENABLE(trust,
258 [AC_HELP_STRING(--enable-trust, [
259 Make authentication faster but allow decoding by all hosts of a VPN.
260 Use this when the VPN hosts DO trust each other and you don't care
261 wether man-in-the-middle sniffing attacks are possible by admins
262 of other VPN hosts. On pentiums or similar machines this can cut down
263 the time for reconnects by 0.4 seconds or more.])],
264 if test "x$enableval" = xyes; then
265 TRUST=1
266 fi
267 )
268 ])
269 AC_DEFINE_UNQUOTED(ENABLE_TRUST, $TRUST, [Faster, but VPN hosts may sniff each others data.])
270
271 if $CXX -v --help 2>&1 | grep -q fno-rtti; then
272 CXXFLAGS="$CXXFLAGS -fno-rtti"
273 fi
274
275 if $CXX -v --help 2>&1 | grep -q fexceptions; then
276 CXXFLAGS="$CXXFLAGS -fno-exceptions"
277 fi
278
279 if $CXX -v --help 2>&1 | grep -q ffunction-sections; then
280 CXXFLAGS="$CXXFLAGS -ffunction-sections"
281 fi
282
283 if $LD -v --help 2>&1 | grep -q gc-sections; then
284 LDFLAGS="$LDFLAGS -Wl,--gc-sections"
285 fi
286
287 AC_CONFIG_COMMANDS_POST([
288
289 echo
290 echo "***"
291 echo "*** Configuration Summary"
292 echo "***"
293 echo "*** Cipher used: $CIPHER"
294 echo "*** Digest used: $DIGEST"
295 echo "*** HMAC length: $HMAC"
296 echo "*** RAND used: $RAND"
297 echo "*** Max. MTU: $MTU"
298 echo "*** Compression: $COMPRESS"
299 dnl echo "*** Trusted Mode: $TRUST"
300 echo "***"
301 echo
302
303 ])
304
305 AC_SUBST(INCLUDES)
306
307 AC_OUTPUT(Makefile po/Makefile.in
308 src/Makefile
309 doc/Makefile
310 lib/Makefile
311 m4/Makefile
312 )