Backgrounded commands and RELOAD.
[tripe] / configure.in
1 dnl -*-autoconf-*-
2 dnl
3 dnl $Id$
4 dnl
5 dnl Configuration script for TrIPE
6 dnl
7 dnl (c) 2001 Straylight/Edgeware
8 dnl
9
10 dnl ----- Licensing notice --------------------------------------------------
11 dnl
12 dnl This file is part of Trivial IP Encryption (TrIPE).
13 dnl
14 dnl TrIPE is free software; you can redistribute it and/or modify
15 dnl it under the terms of the GNU General Public License as published by
16 dnl the Free Software Foundation; either version 2 of the License, or
17 dnl (at your option) any later version.
18 dnl
19 dnl TrIPE is distributed in the hope that it will be useful,
20 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
21 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 dnl GNU General Public License for more details.
23 dnl
24 dnl You should have received a copy of the GNU General Public License
25 dnl along with TrIPE; if not, write to the Free Software Foundation,
26 dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27
28 AC_INIT(tripe.c)
29 AM_INIT_AUTOMAKE(tripe, 1.0.0pre7)
30 AM_CONFIG_HEADER(config.h)
31 AC_CANONICAL_HOST
32
33 AC_PROG_MAKE_SET
34 AC_PROG_CC
35 AM_PROG_LIBTOOL
36 AC_CHECK_HEADERS([stdarg.h])
37 mdw_GCC_FLAGS([-Wall])
38 mdw_OPT_TRACE
39
40 AC_ARG_WITH([linux-includes],
41 [ --with-linux-includes=DIR
42 search for Linux kernel includes in DIR],
43 [CFLAGS="$CFLAGS -I$withval"],
44 [:])
45
46 AC_ARG_WITH([configdir],
47 [ --with-configdir=DIR look for keys and other configuration in DIR
48 [default=/var/lib/tripe]],
49 [configdir=$withval],
50 [configdir=/var/lib/tripe])
51
52 AC_ARG_WITH([socketdir],
53 [ --with-socketdir=DIR put admin socket in DIR [default=.]],
54 [socketdir=$withval],
55 [socketdir=.])
56
57 AC_ARG_WITH([pidfile],
58 [ --with-pidfile=FILE make tripectl write its pid to FILE
59 [default=./tripectl.pid]],
60 [pidfile=$withval],
61 [pidfile=tripectl.pid])
62
63 AC_ARG_WITH([initconfig],
64 [ --with-initconfig=FILE read definitions from FILE in init script
65 [default=/etc/tripe.conf]],
66 [initconfig=$withval],
67 [initconfig=/etc/tripe.conf])
68
69 AC_ARG_WITH([logfile],
70 [ --with-logfile=DIR make tripectl write its log to FILE
71 [default=./tripe.log]],
72 [logfile=$withval],
73 [logfile=tripe.log])
74
75 DIRS=""
76 ETHEREAL_CFLAGS=""
77 ETHEREAL_PLUGIN_DIR="unknown"
78 AC_ARG_WITH([ethereal],
79 [ --with-ethereal build and install Ethereal plugin],
80 [case "$withval" in
81 no) ethereal=false requireethereal=false;;
82 yes) ethereal=true; requireethereal=true;;
83 *) ethereal=true requireethereal=true ETHEREAL_PLUGIN_DIR=$withval;;
84 esac],
85 [ethereal=true requireethereal=false])
86
87 tun=auto
88 AC_ARG_WITH([tunnel],
89 [ --with-tunnel=KIND kinds of tunnel device to use
90 (linux, unet, bsd, slip)],
91 [tun=$withval])
92
93 if test "$tun" = auto; then
94 AC_CACHE_CHECK([tunnel drivers to use], [mdw_cv_tunnel], [
95 mdw_cv_tunnel=""
96 case $host_os in
97 linux*)
98 case `uname -r` in
99 changequote(,)dnl
100 2.[4-9].* | 2.[1-9][0-9]*.* | [3-9].* | [1-9][0-9]*.*)
101 changequote([,])dnl
102 mdw_cv_tunnel=linux
103 ;;
104 *)
105 mdw_cv_tunnel=unet
106 ;;
107 esac
108 ;;
109 *bsd*)
110 mdw_cv_tunnel=bsd
111 ;;
112 esac
113 mdw_cv_tunnel=$mdw_cv_tunnel${mdw_cv_tunnel:+ }slip
114 ])
115 tun=$mdw_cv_tunnel
116 fi
117
118 tunnels=""
119 for i in $tun; do
120 case $i in
121 linux) AC_DEFINE([TUN_LINUX], [1],
122 [Install the Linux TUN/TAP driver.]) ;;
123 bsd) AC_DEFINE([TUN_BSD], [1],
124 [Install the BSD tunnel driver.]) ;;
125 unet) AC_DEFINE([TUN_UNET], [1],
126 [Install the obsolete Linux Usernet driver.]) ;;
127 slip) ;;
128 *) AC_MSG_ERROR([Unknown tunnel type]) ;;
129 esac
130 tunnels="$tunnels&tun_$i, "
131 done
132 AC_SUBST(tun)
133 AC_DEFINE_UNQUOTED([TUN_LIST], [$tunnels 0],
134 [List of tunnel drivers to install.])
135
136 mdw_MLIB(2.0.0)
137 mdw_CATACOMB(2.1.0, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"])
138
139 if test "$ethereal" = true -a "$ETHEREAL_PLUGIN_DIR" = unknown; then
140 AC_CACHE_CHECK([where to put Ethereal plugins],
141 [mdw_cv_ethereal_plugin_dir], [
142 changequote(,)
143 mdw_cv_ethereal_plugin_dir="failed"
144 ethprefix=none
145 for i in "${prefix}" /usr/local /usr `echo $PATH | tr : " "`; do
146 if test -x "$i/bin/tethereal"; then
147 ethprefix=$i
148 break
149 fi
150 done
151 if test "$ethprefix" != none; then
152 ethbin=$ethprefix/bin/tethereal
153 ethver=`$ethbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/;q'`
154 dir=$ethprefix/lib/ethereal/plugins/$ethver
155 if test -d "$dir"; then
156 mdw_cv_ethereal_plugin_dir=$dir
157 fi
158 fi
159 changequote([, ])
160 ])
161 case $mdw_cv_ethereal_plugin_dir in
162 failed) ethereal=false;;
163 *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;;
164 esac
165 fi
166
167 if test "$ethereal" = true; then
168 AM_PATH_GLIB([1.2.0], [], ethereal=false, [gmodule])
169 fi
170 if test "$ethereal" = true; then
171 bad=true
172 mdw_CFLAGS=$CFLAGS
173 ethprefix=`echo $ETHEREAL_PLUGIN_DIR | sed 's:/lib/.*$::'`
174 AC_CACHE_CHECK([how to find the Ethereal headers],
175 [mdw_cv_ethereal_includes], [
176 mdw_cv_ethereal_includes=failed
177 for i in \
178 "" \
179 "-I${ethprefix}/include/ethereal" \
180 "-I${ethprefix}/include" \
181 "-I${prefix}/include/ethereal" \
182 "-I${prefix}/include" \
183 "-I/usr/include/ethereal" \
184 "-I/usr/local/include/ethereal" \
185 "-I/usr/local/include"; do
186 CFLAGS="$GLIB_CFLAGS $i"
187 AC_TRY_COMPILE([
188 #include <netinet/in.h>
189 #include <glib.h>
190 #include <ethereal/config.h>
191 #include <ethereal/epan/packet.h>
192 ], [
193 dissector_handle_t dh;
194 dh = create_dissector_handle(0, 0);
195 ], [bad=false; break])
196 done
197 if test $bad = false; then
198 mdw_cv_ethereal_includes=$i
199 fi
200 CFLAGS=$mdw_CFLAGS
201 ])
202 case $mdw_cv_ethereal_includes in
203 failed) ethereal=false;;
204 esac
205 fi
206
207 if test "$ethereal" = true; then
208 ETHEREAL_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_ethereal_includes"
209 AC_SUBST(ETHEREAL_CFLAGS)
210 AC_SUBST(ETHEREAL_PLUGIN_DIR)
211 DIRS="$DIRS ethereal"
212 fi
213
214 if test "$ethereal" = false -a "$requireethereal" = true; then
215 AC_MSG_ERROR([failed to configure Ethereal plugin])
216 fi
217
218 AH_TEMPLATE([CONFIGDIR],
219 [Tripe should look here for keys and other configuration.])
220 AH_TEMPLATE([SOCKETDIR],
221 [Tripe should make its administration socket here.])
222 mdw_DEFINE_PATHS([
223 mdw_DEFINE_PATH([CONFIGDIR], [$configdir])
224 mdw_DEFINE_PATH([SOCKETDIR], [$socketdir])
225 AC_SUBST(socketdir) AC_SUBST(configdir) AC_SUBST(logfile) AC_SUBST(pidfile)
226 AC_SUBST(initconfig)
227 ])
228 AC_SUBST(DIRS)
229 AC_OUTPUT(Makefile doc/Makefile ethereal/Makefile tripe-init)
230
231 dnl ----- That's all, folks -------------------------------------------------