chiark / gitweb /
Debianization stuff.
[tripe] / configure.in
index b2049dcde2b0885de9a1df04923b07af99232fad..03ad025c7cf8ff08d3815986d1e4548c1ec65b97 100644 (file)
@@ -1,6 +1,6 @@
 dnl -*-autoconf-*-
 dnl
-dnl $Id: configure.in,v 1.13 2003/10/15 09:30:18 mdw Exp $
+dnl $Id: configure.in,v 1.16 2004/04/19 07:44:16 mdw Exp $
 dnl
 dnl Configuration script for TrIPE
 dnl
@@ -25,48 +25,8 @@ 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.13  2003/10/15 09:30:18  mdw
-dnl Add support for Ethereal protocol analysis.
-dnl
-dnl Revision 1.12  2003/07/13 11:54:40  mdw
-dnl Version bump.
-dnl
-dnl Revision 1.11  2003/05/17 11:04:38  mdw
-dnl Ship new configuration and startup kit.
-dnl
-dnl Revision 1.9  2003/04/06 10:33:31  mdw
-dnl And again.  (Sigh.)
-dnl
-dnl Revision 1.8  2003/04/06 10:31:13  mdw
-dnl Fix stupid bug.
-dnl
-dnl Revision 1.7  2003/04/06 10:25:17  mdw
-dnl Support Linux TUN/TAP device.  Fix some bugs.
-dnl
-dnl Revision 1.6  2001/06/19 22:13:57  mdw
-dnl Version bump.
-dnl
-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.0pre5)
+AM_INIT_AUTOMAKE(tripe, 1.0.0pre6)
 AM_CONFIG_HEADER(config.h)
 AC_CANONICAL_HOST
 
@@ -82,15 +42,46 @@ AC_ARG_WITH([linux-includes],
 [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],
+[  --with-ethereal         build and install Ethereal plugin],
 [case "$withval" in
-   no) ethereal=false;;
-   yes) ethereal='${prefix}/lib/ethereal/plugins';; 
-   *) ethereal=$withval;;
+   no) ethereal=false requireethereal=false;;
+   yes) ethereal=true; requireethereal=true;;
+   *) ethereal=true requireethereal=true ETHEREAL_PLUGIN_DIR=$withval;;
 esac],
-[ethereal=false])
+[ethereal=true requireethereal=false])
 
 case $host_os in
   linux*)
@@ -118,15 +109,55 @@ esac
 AC_SUBST(tun)
 
 mdw_MLIB(2.0.0)
-mdw_CATACOMB(2.0.1, [CFLAGS="$CFLAGS $CATACOMB_CFLAGS"])
+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/ethereal"; then
+        ethprefix=$i
+        break
+      fi
+    done
+    if test "$ethprefix" != none; then
+      ethbin=$ethprefix/bin/ethereal
+      ethver=`$ethbin -v | sed 's/^[^ ]* \([0-9A-Za-z.]*\).*$/\1/'`
+      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" != false; then
-  AM_PATH_GLIB([1.2.0], [], AC_MSG_ERROR([failed to find GLib]), [gmodule])
+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], [
-    for i in "" "-I/usr/include/ethereal"; do
+    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>
@@ -137,12 +168,18 @@ if test "$ethereal" != false; then
        dh = creat_dissector_handle(0, 0);
       ], [bad=false; break])
     done
-    if $bad; then
-      AC_MSG_ERROR([failed to find Ethereal headers])
+    if test $bad = false; then
+      mdw_cv_ethereal_includes=$i
     fi
-    mdw_cv_ethereal_includes=$i
     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
   AC_CACHE_CHECK([whether the Ethereal headers are broken],
     [mdw_cv_ethereal_buggered], [
     CFLAGS="$GLIB_CFLAGS $i"
@@ -164,12 +201,21 @@ if test "$ethereal" != false; then
   fi
 
   ETHEREAL_CFLAGS="$CFLAGS $GLIB_CFLAGS $mdw_cv_ethereal_includes"
-  ETHEREAL_PLUGIN_DIR=$ethereal
   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
+
+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)