-dnl -*-fundamental-*-
+dnl -*-autoconf-*-
dnl
-dnl $Id: configure.in,v 1.5 2001/03/03 12:30:39 mdw Exp $
+dnl $Id$
dnl
dnl Configuration script for TrIPE
dnl
dnl along with TrIPE; if not, write to the Free Software Foundation,
dnl Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-dnl ----- Revision history --------------------------------------------------
-dnl
-dnl $Log: configure.in,v $
-dnl Revision 1.5 2001/03/03 12:30:39 mdw
-dnl Make this a pre-release.
-dnl
-dnl Revision 1.4 2001/02/22 09:07:28 mdw
-dnl Build documents now.
-dnl
-dnl Revision 1.3 2001/02/16 21:24:12 mdw
-dnl Don't link the client against Catacomb.
-dnl
-dnl Revision 1.2 2001/02/04 01:17:54 mdw
-dnl Create a configuration header file to tidy up command lines.
-dnl
-dnl Revision 1.1 2001/02/03 20:26:37 mdw
-dnl Initial checkin.
-dnl
-
AC_INIT(tripe.c)
-AM_INIT_AUTOMAKE(tripe, 1.0.0pre1)
+AM_INIT_AUTOMAKE(tripe, 1.0.0pre7)
AM_CONFIG_HEADER(config.h)
AC_CANONICAL_HOST
+AC_PROG_MAKE_SET
AC_PROG_CC
-mdw_GCC_FLAGS
+AM_PROG_LIBTOOL
+AC_CHECK_HEADERS([stdarg.h])
+mdw_GCC_FLAGS([-Wall])
mdw_OPT_TRACE
-case $host_os in
- linux*)
- tun=unet
- AC_DEFINE([TUN_TYPE], [TUN_UNET])
- ;;
- *bsd*)
- tun=bsd
- AC_DEFINE([TUN_TYPE], [TUN_BSD])
- ;;
- *)
- AC_MSG_ERROR([Unsupported OS: no tunnel interface available])
- ;;
+AC_ARG_WITH([linux-includes],
+[ --with-linux-includes=DIR
+ search for Linux kernel includes in DIR],
+[CFLAGS="$CFLAGS -I$withval"],
+[:])
+
+AC_ARG_WITH([configdir],
+[ --with-configdir=DIR look for keys and other configuration in DIR
+ [default=/var/lib/tripe]],
+[configdir=$withval],
+[configdir=/var/lib/tripe])
+
+AC_ARG_WITH([socketdir],
+[ --with-socketdir=DIR put admin socket in DIR [default=.]],
+[socketdir=$withval],
+[socketdir=.])
+
+AC_ARG_WITH([pidfile],
+[ --with-pidfile=FILE make tripectl write its pid to FILE
+ [default=./tripectl.pid]],
+[pidfile=$withval],
+[pidfile=tripectl.pid])
+
+AC_ARG_WITH([initconfig],
+[ --with-initconfig=FILE read definitions from FILE in init script
+ [default=/etc/tripe.conf]],
+[initconfig=$withval],
+[initconfig=/etc/tripe.conf])
+
+AC_ARG_WITH([logfile],
+[ --with-logfile=DIR make tripectl write its log to FILE
+ [default=./tripe.log]],
+[logfile=$withval],
+[logfile=tripe.log])
+
+DIRS=""
+ETHEREAL_CFLAGS=""
+ETHEREAL_PLUGIN_DIR="unknown"
+AC_ARG_WITH([ethereal],
+[ --with-ethereal build and install Ethereal plugin],
+[case "$withval" in
+ no) ethereal=false requireethereal=false;;
+ yes) ethereal=true; requireethereal=true;;
+ *) ethereal=true requireethereal=true ETHEREAL_PLUGIN_DIR=$withval;;
+esac],
+[ethereal=true requireethereal=false])
+
+tun=guess
+AC_ARG_WITH([tunnel],
+[ --with-tunnel=KIND kind of tunnel device to use
+ (linux, unet, bsd, slip)],
+[tun=$withval])
+
+if test "$tun" = guess; then
+ AC_CACHE_CHECK([tunnel device to use], [mdw_cv_tunnel], [
+ case $host_os in
+ linux*)
+ case `uname -r` in
+changequote(,)dnl
+ 2.[4-9].* | 2.[1-9][0-9]*.* | [3-9].* | [1-9][0-9]*.*)
+changequote([,])dnl
+ mdw_cv_tunnel=linux
+ ;;
+ *)
+ mdw_cv_tunnel=unet
+ ;;
+ esac
+ ;;
+ *bsd*)
+ mdw_cv_tunnel=bsd
+ ;;
+ *)
+ mdw_cv_tunnel=slip
+ ;;
+ esac
+ ])
+ tun=$mdw_cv_tunnel
+fi
+
+case $tun in
+ linux | unet | bsd | slip) ;;
+ *) AC_MSG_ERROR([Unknown tunnel type]) ;;
esac
+AC_DEFINE_UNQUOTED([TUN_TYPE], [TUN_`echo $tun | tr a-z A-Z`],
+ [Set to the tunnel driver for your OS. See TUN_* in tripe.h.])
AC_SUBST(tun)
-mdw_MLIB(2.0.0pre4)
-mdw_CATACOMB(2.0.0pre8, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"])
+mdw_MLIB(2.0.0)
+mdw_CATACOMB(2.1.0, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"])
+
+if test "$ethereal" = true -a "$ETHEREAL_PLUGIN_DIR" = unknown; then
+ AC_CACHE_CHECK([where to put Ethereal plugins],
+ [mdw_cv_ethereal_plugin_dir], [
+ changequote(,)
+ mdw_cv_ethereal_plugin_dir="failed"
+ ethprefix=none
+ for i in "${prefix}" /usr/local /usr `echo $PATH | tr : " "`; do
+ if test -x "$i/bin/tethereal"; then
+ ethprefix=$i
+ break
+ fi
+ done
+ if test "$ethprefix" != none; then
+ ethbin=$ethprefix/bin/tethereal
+ ethver=`$ethbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/;q'`
+ dir=$ethprefix/lib/ethereal/plugins/$ethver
+ if test -d "$dir"; then
+ mdw_cv_ethereal_plugin_dir=$dir
+ fi
+ fi
+ changequote([, ])
+ ])
+ case $mdw_cv_ethereal_plugin_dir in
+ failed) ethereal=false;;
+ *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;;
+ esac
+fi
+
+if test "$ethereal" = true; then
+ AM_PATH_GLIB([1.2.0], [], ethereal=false, [gmodule])
+fi
+if test "$ethereal" = true; then
+ bad=true
+ mdw_CFLAGS=$CFLAGS
+ ethprefix=`echo $ETHEREAL_PLUGIN_DIR | sed 's:/lib/.*$::'`
+ AC_CACHE_CHECK([how to find the Ethereal headers],
+ [mdw_cv_ethereal_includes], [
+ mdw_cv_ethereal_includes=failed
+ for i in \
+ "" \
+ "-I${ethprefix}/include/ethereal" \
+ "-I${ethprefix}/include" \
+ "-I${prefix}/include/ethereal" \
+ "-I${prefix}/include" \
+ "-I/usr/include/ethereal" \
+ "-I/usr/local/include/ethereal" \
+ "-I/usr/local/include"; do
+ CFLAGS="$GLIB_CFLAGS $i"
+ AC_TRY_COMPILE([
+#include <netinet/in.h>
+#include <glib.h>
+#include <ethereal/config.h>
+#include <ethereal/epan/packet.h>
+], [
+ dissector_handle_t dh;
+ dh = create_dissector_handle(0, 0);
+ ], [bad=false; break])
+ done
+ if test $bad = false; then
+ mdw_cv_ethereal_includes=$i
+ fi
+ CFLAGS=$mdw_CFLAGS
+ ])
+ case $mdw_cv_ethereal_plugin_dir in
+ failed) ethereal=false;;
+ *) ETHEREAL_PLUGIN_DIR=$mdw_cv_ethereal_plugin_dir;;
+ esac
+fi
+
+if test "$ethereal" = true; then
+ ETHEREAL_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_ethereal_includes"
+ AC_SUBST(ETHEREAL_CFLAGS)
+ AC_SUBST(ETHEREAL_PLUGIN_DIR)
+ DIRS="$DIRS ethereal"
+fi
+
+if test "$ethereal" = false -a "$requireethereal" = true; then
+ AC_MSG_ERROR([failed to configure Ethereal plugin])
+fi
-AC_OUTPUT(Makefile doc/Makefile)
+AH_TEMPLATE([CONFIGDIR],
+ [Tripe should look here for keys and other configuration.])
+AH_TEMPLATE([SOCKETDIR],
+ [Tripe should make its administration socket here.])
+mdw_DEFINE_PATHS([
+ mdw_DEFINE_PATH([CONFIGDIR], [$configdir])
+ mdw_DEFINE_PATH([SOCKETDIR], [$socketdir])
+ AC_SUBST(socketdir) AC_SUBST(configdir) AC_SUBST(logfile) AC_SUBST(pidfile)
+ AC_SUBST(initconfig)
+])
+AC_SUBST(DIRS)
+AC_OUTPUT(Makefile doc/Makefile ethereal/Makefile tripe-init)
dnl ----- That's all, folks -------------------------------------------------