chiark / gitweb /
tripe-admin manpage: Generate a command and message summary.
[tripe] / configure.in
index 8e2254ea65c72d0c39a9aaac2710f338ab90adb7..690c1934e37bfea8bda73ccb2641df91c0db6442 100644 (file)
@@ -1,6 +1,6 @@
-dnl -*-fundamental-*-
+dnl -*-autoconf-*-
 dnl
-dnl $Id: configure.in,v 1.1 2001/02/03 20:26:37 mdw Exp $
+dnl $Id$
 dnl
 dnl Configuration script for TrIPE
 dnl
@@ -25,38 +25,233 @@ dnl You should have received a copy of the GNU General Public License
 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.1  2001/02/03 20:26:37  mdw
-dnl Initial checkin.
-dnl
-
 AC_INIT(tripe.c)
-AM_INIT_AUTOMAKE(tripe, 1.0.0)
+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
-
-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])
-    ;;
-esac
+AM_PROG_LIBTOOL
+python=no
+mdw_PROG_PYTHON([2.3], 
+  [python=yes
+   pyscripts='${PYTHONSCRIPTS}' 
+   pymans='${PYTHONMANS}'])
+AC_SUBST([pyscripts]) AC_SUBST([pymans])
+
+if test $python = yes; then
+  mdw_CHECK_PYTHON([2.3])
+  AC_CACHE_CHECK([for pygtk], [mdw_cv_pygtk], [
+    mdw_cv_pygtk=no
+    python -c >&5 2>&5 '
+import pygtk
+pygtk.require("2.0")
+import gtk 
+' && mdw_cv_pygtk=yes
+  ])
+  if test $mdw_cv_pygtk = yes; then
+    pygtkscripts='${PYGTKSCRIPTS}'
+    pygtkmans='${PYGTKMANS}'
+  fi
+fi
+AC_SUBST([pygtkscripts]) AC_SUBST([pygtkmans])
+
+AC_CHECK_HEADERS([stdarg.h])
+mdw_GCC_FLAGS([-Wall])
+mdw_OPT_TRACE
+
+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=auto
+AC_ARG_WITH([tunnel],
+[  --with-tunnel=KIND      kinds of tunnel device to use
+                            (linux, unet, bsd, slip)],
+[tun=$withval])
+
+if test "$tun" = auto; then
+  AC_CACHE_CHECK([tunnel drivers to use], [mdw_cv_tunnel], [
+    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
+       ;;
+    esac
+    mdw_cv_tunnel=$mdw_cv_tunnel${mdw_cv_tunnel:+ }slip
+  ])
+  tun=$mdw_cv_tunnel
+fi
+
+tunnels=""
+for i in $tun; do
+  case $i in
+    linux) AC_DEFINE([TUN_LINUX], [1],
+                    [Install the Linux TUN/TAP driver.]) ;;
+    bsd) AC_DEFINE([TUN_BSD], [1],
+                  [Install the BSD tunnel driver.]) ;;
+    unet) AC_DEFINE([TUN_UNET], [1],
+                    [Install the obsolete Linux Usernet driver.]) ;;
+    slip) ;;
+    *) AC_MSG_ERROR([Unknown tunnel type]) ;;
+  esac
+  tunnels="$tunnels&tun_$i, "
+done
 AC_SUBST(tun)
+AC_DEFINE_UNQUOTED([TUN_LIST], [$tunnels 0], 
+  [List of tunnel drivers to install.])
+
+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_includes in
+    failed) ethereal=false;;
+  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
 
-mdw_MLIB(2.0.0pre4)
-mdw_CATACOMB(2.0.0pre8)
+if test "$ethereal" = false -a "$requireethereal" = true; then
+  AC_MSG_ERROR([failed to configure Ethereal plugin])
+fi
 
-AC_OUTPUT(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 tripe-keys tripemon)
 
 dnl ----- That's all, folks -------------------------------------------------