739d8d9461c278cf544f9b4768304c7f885b619c
[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 python=no
37 mdw_PROG_PYTHON([2.3],
38 [python=yes
39 pyscripts='${PYTHONSCRIPTS}'
40 pymans='${PYTHONMANS}'])
41 AC_SUBST([pyscripts]) AC_SUBST([pymans])
42
43 if test $python = yes; then
44 mdw_CHECK_PYTHON([2.3])
45 AC_CACHE_CHECK([for pygtk], [mdw_cv_pygtk], [
46 mdw_cv_pygtk=no
47 python -c >&5 2>&5 '
48 import pygtk
49 pygtk.require("2.0")
50 import gtk
51 ' && mdw_cv_pygtk=yes
52 ])
53 if test $mdw_cv_pygtk = yes; then
54 pygtkscripts='${PYGTKSCRIPTS}'
55 pygtkmans='${PYGTKMANS}'
56 fi
57 fi
58 AC_SUBST([pygtkscripts]) AC_SUBST([pygtkmans])
59
60 AC_CHECK_HEADERS([stdarg.h])
61 mdw_GCC_FLAGS([-Wall])
62 mdw_OPT_TRACE
63
64 AC_ARG_WITH([linux-includes],
65 [ --with-linux-includes=DIR
66 search for Linux kernel includes in DIR],
67 [CFLAGS="$CFLAGS -I$withval"],
68 [:])
69
70 AC_ARG_WITH([configdir],
71 [ --with-configdir=DIR look for keys and other configuration in DIR
72 [default=/var/lib/tripe]],
73 [configdir=$withval],
74 [configdir=/var/lib/tripe])
75
76 AC_ARG_WITH([socketdir],
77 [ --with-socketdir=DIR put admin socket in DIR [default=.]],
78 [socketdir=$withval],
79 [socketdir=.])
80
81 AC_ARG_WITH([pidfile],
82 [ --with-pidfile=FILE make tripectl write its pid to FILE
83 [default=./tripectl.pid]],
84 [pidfile=$withval],
85 [pidfile=tripectl.pid])
86
87 AC_ARG_WITH([initconfig],
88 [ --with-initconfig=FILE read definitions from FILE in init script
89 [default=/etc/tripe.conf]],
90 [initconfig=$withval],
91 [initconfig=/etc/tripe.conf])
92
93 AC_ARG_WITH([logfile],
94 [ --with-logfile=DIR make tripectl write its log to FILE
95 [default=./tripe.log]],
96 [logfile=$withval],
97 [logfile=tripe.log])
98
99 DIRS=""
100 WIRESHARK_CFLAGS=""
101 WIRESHARK_PLUGIN_DIR="unknown"
102 AC_ARG_WITH([wireshark],
103 [ --with-wireshark build and install Wireshark plugin],
104 [case "$withval" in
105 no) wireshark=false requirewireshark=false;;
106 yes) wireshark=true; requirewireshark=true;;
107 *) wireshark=true requirewireshark=true WIRESHARK_PLUGIN_DIR=$withval;;
108 esac],
109 [wireshark=true requirewireshark=false])
110
111 tun=auto
112 AC_ARG_WITH([tunnel],
113 [ --with-tunnel=KIND kinds of tunnel device to use
114 (linux, unet, bsd, slip)],
115 [tun=$withval])
116
117 if test "$tun" = auto; then
118 AC_CACHE_CHECK([tunnel drivers to use], [mdw_cv_tunnel], [
119 mdw_cv_tunnel=""
120 case $host_os in
121 linux*)
122 case `uname -r` in
123 changequote(,)dnl
124 2.[4-9].* | 2.[1-9][0-9]*.* | [3-9].* | [1-9][0-9]*.*)
125 changequote([,])dnl
126 mdw_cv_tunnel=linux
127 ;;
128 *)
129 mdw_cv_tunnel=unet
130 ;;
131 esac
132 ;;
133 *bsd*)
134 mdw_cv_tunnel=bsd
135 ;;
136 esac
137 mdw_cv_tunnel=$mdw_cv_tunnel${mdw_cv_tunnel:+ }slip
138 ])
139 tun=$mdw_cv_tunnel
140 fi
141
142 tunnels=""
143 for i in $tun; do
144 case $i in
145 linux) AC_DEFINE([TUN_LINUX], [1],
146 [Install the Linux TUN/TAP driver.]) ;;
147 bsd) AC_DEFINE([TUN_BSD], [1],
148 [Install the BSD tunnel driver.]) ;;
149 unet) AC_DEFINE([TUN_UNET], [1],
150 [Install the obsolete Linux Usernet driver.]) ;;
151 slip) ;;
152 *) AC_MSG_ERROR([Unknown tunnel type]) ;;
153 esac
154 tunnels="$tunnels&tun_$i, "
155 done
156 AC_SUBST(tun)
157 AC_DEFINE_UNQUOTED([TUN_LIST], [$tunnels 0],
158 [List of tunnel drivers to install.])
159
160 mdw_MLIB(2.0.0)
161 mdw_CATACOMB(2.1.0, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"])
162
163 if test "$wireshark" = true -a "$WIRESHARK_PLUGIN_DIR" = unknown; then
164 AC_CACHE_CHECK([where to put Wireshark plugins],
165 [mdw_cv_wireshark_plugin_dir], [
166 changequote(,)
167 mdw_cv_wireshark_plugin_dir="failed"
168 wsprefix=none
169 for i in "${prefix}" /usr/local /usr `echo $PATH | tr : " "`; do
170 if test -x "$i/bin/tshark"; then
171 wsprefix=$i
172 break
173 fi
174 done
175 if test "$wsprefix" != none; then
176 wsbin=$wsprefix/bin/tshark
177 wsver=`$wsbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/;q'`
178 dir=$wsprefix/lib/wireshark/plugins/$wsver
179 if test -d "$dir"; then
180 mdw_cv_wireshark_plugin_dir=$dir
181 fi
182 fi
183 changequote([, ])
184 ])
185 case $mdw_cv_wireshark_plugin_dir in
186 failed) wireshark=false;;
187 *) WIRESHARK_PLUGIN_DIR=$mdw_cv_wireshark_plugin_dir;;
188 esac
189 fi
190
191 if test "$wireshark" = true; then
192 AM_PATH_GLIB([1.2.0], [], wireshark=false, [gmodule])
193 fi
194 if test "$wireshark" = true; then
195 bad=true
196 mdw_CFLAGS=$CFLAGS
197 wsprefix=`echo $WIRESHARK_PLUGIN_DIR | sed 's:/lib/.*$::'`
198 AC_CACHE_CHECK([how to find the Wireshark headers],
199 [mdw_cv_wireshark_includes], [
200 mdw_cv_wireshark_includes=failed
201 for i in \
202 "" \
203 "-I${wsprefix}/include/wireshark" \
204 "-I${wsprefix}/include" \
205 "-I${prefix}/include/wireshark" \
206 "-I${prefix}/include" \
207 "-I/usr/include/wireshark" \
208 "-I/usr/local/include/wireshark" \
209 "-I/usr/local/include"; do
210 CFLAGS="$GLIB_CFLAGS $i"
211 AC_TRY_COMPILE([
212 #include <netinet/in.h>
213 #include <glib.h>
214 #include <wireshark/config.h>
215 #include <wireshark/epan/packet.h>
216 ], [
217 dissector_handle_t dh;
218 dh = create_dissector_handle(0, 0);
219 ], [bad=false; break])
220 done
221 if test $bad = false; then
222 mdw_cv_wireshark_includes=$i
223 fi
224 CFLAGS=$mdw_CFLAGS
225 ])
226 case $mdw_cv_wireshark_includes in
227 failed) wireshark=false;;
228 esac
229 fi
230
231 if test "$wireshark" = true; then
232 WIRESHARK_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_wireshark_includes"
233 AC_SUBST(WIRESHARK_CFLAGS)
234 AC_SUBST(WIRESHARK_PLUGIN_DIR)
235 DIRS="$DIRS wireshark"
236 fi
237
238 if test "$wireshark" = false -a "$requirewireshark" = true; then
239 AC_MSG_ERROR([failed to configure Wireshark plugin])
240 fi
241
242 AH_TEMPLATE([CONFIGDIR],
243 [Tripe should look here for keys and other configuration.])
244 AH_TEMPLATE([SOCKETDIR],
245 [Tripe should make its administration socket here.])
246 mdw_DEFINE_PATHS([
247 mdw_DEFINE_PATH([CONFIGDIR], [$configdir])
248 mdw_DEFINE_PATH([SOCKETDIR], [$socketdir])
249 AC_SUBST(socketdir) AC_SUBST(configdir) AC_SUBST(logfile) AC_SUBST(pidfile)
250 AC_SUBST(initconfig)
251 ])
252 AC_SUBST(DIRS)
253 AC_OUTPUT( \
254 Makefile doc/Makefile wireshark/Makefile \
255 tripe-init tripe-keys tripemon)
256
257 dnl ----- That's all, folks -------------------------------------------------