3 dnl Configuration script for TrIPE
5 dnl (c) 2001 Straylight/Edgeware
8 dnl----- Licensing notice ---------------------------------------------------
10 dnl This file is part of Trivial IP Encryption (TrIPE).
12 dnl TrIPE is free software; you can redistribute it and/or modify
13 dnl it under the terms of the GNU General Public License as published by
14 dnl the Free Software Foundation; either version 2 of the License, or
15 dnl (at your option) any later version.
17 dnl TrIPE is distributed in the hope that it will be useful,
18 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
19 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 dnl GNU General Public License for more details.
22 dnl You should have received a copy of the GNU General Public License
23 dnl along with TrIPE; if not, write to the Free Software Foundation,
24 dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26 dnl--------------------------------------------------------------------------
30 AC_INIT([tripe], AUTO_VERSION, [mdw@distorted.org.uk])
31 AC_CONFIG_SRCDIR([server/tripe.h])
32 AC_CONFIG_AUX_DIR([config])
33 AM_INIT_AUTOMAKE([foreign])
42 AC_CHECK_PROGS([AUTOM4TE], [autom4te])
44 mdw_ORIG_CFLAGS=$CFLAGS
45 mdw_ORIG_CPPFLAGS=$CPPFLAGS
49 dnl--------------------------------------------------------------------------
50 dnl C programming environment.
52 AC_CHECK_HEADERS([stdarg.h])
54 AC_SEARCH_LIBS([socket], [socket])
58 AC_ARG_WITH([linux-includes],
60 [--with-linux-includes=DIR],
61 [Linux kernel includes]),
62 [AM_CPPFLAGS="AM_CPPFLAGS -I$withval"], [:])
66 PKG_CHECK_MODULES([mLib], [mLib >= 2.1.0])
67 PKG_CHECK_MODULES([catacomb], [catacomb >= 2.1.4])
69 AM_CFLAGS="$AM_CFLAGS $mLib_CFLAGS $catacomb_CFLAGS"
71 dnl--------------------------------------------------------------------------
72 dnl Directories to install things into.
74 dnl TRIPE_DEFINE_PATH(VAR, ARG, HELP, DEFAULT, [DEFINE, DEFINEHELP])
75 AC_DEFUN([TRIPE_DEFINE_PATH], [
76 AC_ARG_WITH([$1], AS_HELP_STRING([--with-$1=$2], [$3]),
77 [$1=$withval], [$1=$4])
80 mdw_DEFINE_PATHS([mdw_DEFINE_PATH([$5], [$][$1], [$6])])
86 [configdir], [DIR], [keys and other configuration [[LOCALSTATE/tripe]]],
87 ['${localstatedir}/tripe'],
88 [CONFIGDIR], [Look for keys and other configuration here.])
91 [socketdir], [DIR], [admin socket [[.]]], [.],
92 [SOCKETDIR], [Create or look for administration socket here.])
95 [pidfile], [FILE], [process-id [[./tripectl.pid]]], [tripectl.pid])
99 [configuration for init script [[SYSCONFDIR/tripe.conf]]],
100 ['${sysconfdir}/tripe.conf'])
103 [logfile], [FILE], [logging output [[./tripe.log]]], [tripe.log])
105 dnl--------------------------------------------------------------------------
106 dnl Privilege-separation helper.
109 AC_DEFINE_UNQUOTED([PRIVSEP_HELPER],
110 ["mdw_PATH([$libexecdir])/mdw_PROG([tripe-privhelper])"],
111 [Pathname of privilege-separation helper.])
114 dnl--------------------------------------------------------------------------
117 AC_ARG_WITH([tracing],
120 [compile out tracing support (not recommended)]),
121 [test "$withval" = no &&
122 AC_DEFINE([NTRACE], [1], [Disable all tracing.])],
125 dnl--------------------------------------------------------------------------
128 dnl Provide the user with a choice.
129 AC_ARG_WITH([tunnel],
131 [--with-tunnel=KIND],
132 [kinds of tunnel device to use (linux, unet, bsd, slip)]),
133 [tun=$withval], [tun=auto])
135 dnl If he doesn't choose, pick something sensible.
136 if test "$tun" = auto; then
137 AC_CACHE_CHECK([tunnel drivers to use], [mdw_cv_tunnel], [
142 [2.[4-9].*] | [2.[1-9][0-9]*.*] | [[3-9].*] | [[1-9][0-9]*.*])
154 mdw_cv_tunnel=$mdw_cv_tunnel${mdw_cv_tunnel:+ }slip
162 linux) AC_DEFINE([TUN_LINUX], [1],
163 [Install the Linux TUN/TAP driver.]) ;;
164 bsd) AC_DEFINE([TUN_BSD], [1],
165 [Install the BSD tunnel driver.]) ;;
166 unet) AC_DEFINE([TUN_UNET], [1],
167 [Install the obsolete Linux Usernet driver.]) ;;
169 *) AC_MSG_ERROR([Unknown tunnel type]) ;;
171 tunnels="$tunnels&tun_$i, "
173 AC_DEFINE_UNQUOTED([TUN_LIST], [$tunnels 0],
174 [List of tunnel drivers to install.])
176 dnl--------------------------------------------------------------------------
179 dnl Find out whether Python exists at all.
180 AM_PATH_PYTHON([2.4], [python=yes], [python=no])
181 AM_CONDITIONAL([HAVE_PYTHON], [test $python = yes])
183 dnl Find out whether we can use Catacomb and GTK.
184 if test $python = yes; then
185 AC_PYTHON_MODULE([pygtk])
186 AC_PYTHON_MODULE([catacomb])
188 AM_CONDITIONAL([HAVE_PYGTK], [test ${HAVE_PYMOD_PYGTK-no} = yes])
189 AM_CONDITIONAL([HAVE_PYCATACOMB], [test ${HAVE_PYMOD_CATACOMB-no} = yes])
191 dnl--------------------------------------------------------------------------
194 dnl This is all distressingly ugly and complicated. Why they can't just
195 dnl provide a pkg-config dropping containing all the useful information about
196 dnl the installation I don't know.
199 : ${wireshark_plugindir=unknown}
201 dnl Get the user to help.
202 AC_ARG_WITH([wireshark],
204 [--with-wireshark[=DIR]],
205 [build and install Wireshark plugin]),
207 no) haveshark=no needshark=no ;;
208 yes) haveshark=yes needshark=yes ;;
209 *) haveshark=yes needshark=yes
210 wireshark_plugindir=$withval ;;
212 [haveshark=yes needshark=no])
214 dnl Try to find the Wireshark installation directory the hard way. This is
215 dnl remarkably annoying. This is, unfortunately, very likely to guess wrong,
216 dnl but there doesn't seem to be a better way.
217 case "$haveshark,$wireshark_plugindir" in
219 AC_CACHE_CHECK([where to put Wireshark plugins],
220 [mdw_cv_wireshark_plugin_dir], [
221 mdw_cv_wireshark_plugin_dir=$(
223 $libexecdir $libdir $exec_prefix/lib $prefix/lib \
224 /usr/local/lib /usr/lib
227 wireshark/plugins/* wireshark/*/plugins \
228 */wireshark/plugins/* */wireshark/*/plugins
230 for k in $i/$j/*.so; do
231 if test -f "$k"; then
232 echo $(AS_DIRNAME(["$k"]))
241 case $mdw_cv_wireshark_plugin_dir in
242 failed) haveshark=no ;;
243 *) wireshark_plugindir=$mdw_cv_wireshark_plugin_dir ;;
247 dnl If we're still interested, find Glib.
249 yes) AM_PATH_GLIB_2_0([2.4.0], [], [haveshark=false], [gmodule]) ;;
252 dnl Find the include directory. This would be much easier if they just
253 dnl provided a pkg-config file.
258 wsprefix=`echo $wireshark_plugindir | sed 's:/lib/.*$::'`
259 AC_CACHE_CHECK([how to find the Wireshark headers],
260 [mdw_cv_wireshark_includes], [
261 mdw_cv_wireshark_includes=failed
264 "-I${wsprefix}/include/wireshark" \
265 "-I${wsprefix}/include" \
266 "-I${prefix}/include/wireshark" \
267 "-I${prefix}/include" \
268 "-I/usr/include/wireshark" \
269 "-I/usr/local/include/wireshark" \
270 "-I/usr/local/include"; do
271 CFLAGS="$GLIB_CFLAGS $i"
273 #include <netinet/in.h>
275 #include <wireshark/config.h>
276 #include <wireshark/epan/packet.h>],
277 [dissector_handle_t dh; dh = create_dissector_handle(0, 0);],
281 no) mdw_cv_wireshark_includes=$i ;;
285 case "$mdw_cv_wireshark_includes" in
286 failed) haveshark=no ;;
290 case "$haveshark,$needshark" in
292 AC_MSG_ERROR([failed to configure Wireshark plugin])
295 WIRESHARK_CFLAGS="$GLIB_CFLAGS $mdw_cv_wireshark_includes"
296 AC_SUBST(WIRESHARK_CFLAGS)
297 AC_SUBST(wireshark_plugindir)
301 AM_CONDITIONAL([HAVE_WIRESHARK], [test "$haveshark" = yes])
303 dnl--------------------------------------------------------------------------
306 CFLAGS=$mdw_ORIG_CFLAGS
307 CPPFLAGS=$mdw_ORIG_CPPFLAGS
309 AC_CONFIG_HEADER([config/config.h])
310 AC_CONFIG_TESTDIR([t])
330 [t/Makefile t/atlocal])
333 dnl----- That's all, folks --------------------------------------------------