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