-dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.107 2004-03-28 20:31:07 fenner Exp $ (LBL)
+dnl @(#) $Header: /tcpdump/master/libpcap/configure.in,v 1.108 2004-11-09 18:32:22 guy Exp $ (LBL)
dnl
dnl Copyright (c) 1994, 1995, 1996, 1997
dnl The Regents of the University of California. All rights reserved.
dnl Process this file with autoconf to produce a configure script.
dnl
-AC_REVISION($Revision: 1.107 $)
+AC_REVISION($Revision: 1.108 $)
AC_PREREQ(2.50)
AC_INIT(pcap.c)
fi
AC_MSG_RESULT($ac_cv_lbl_proc_net_dev)
-AC_ARG_WITH(dag, [ --with-dag[=DIR] include DAG support (located in directory DIR, if supplied). [default=yes, on BSD and Linux, if present]],
+# Check for Endace DAG card support.
+AC_ARG_WITH([dag], [ --with-dag[[=DIR]] include Endace DAG support ("yes", "no" or DIR; default="yes" on BSD and Linux if present)],
[
if test "$withval" = no
then
+ # User doesn't want DAG support.
want_dag=no
elif test "$withval" = yes
then
+ # User wants DAG support but hasn't specified a directory.
want_dag=yes
- dag_root=
else
+ # User wants DAG support and has specified a directory, so use the provided value.
want_dag=yes
dag_root=$withval
fi
# Use DAG API if present, otherwise don't
#
want_dag=ifpresent
- dag_root=/root/dag
])
-ac_cv_lbl_dag_api=no
+
+AC_ARG_WITH([dag-includes], [ --with-dag-includes=DIR Endace DAG include directory],
+[
+ # User wants DAG support and has specified a header directory, so use the provided value.
+ want_dag=yes
+ dag_include_dir=$withval
+],[])
+
+AC_ARG_WITH([dag-libraries], [ --with-dag-libraries=DIR Endace DAG library directory],
+[
+ # User wants DAG support and has specified a library directory, so use the provided value.
+ want_dag=yes
+ dag_lib_dir=$withval
+],[])
+
case "$V_PCAP" in
linux|bpf|dag)
#
# If they expressed no preference, don't include it.
#
if test $want_dag = yes; then
- AC_MSG_ERROR(DAG support only available with 'linux' 'bpf' and 'dag' packet capture types)
+ AC_MSG_ERROR([DAG support is only available with 'linux' 'bpf' and 'dag' packet capture types])
elif test $want_dag = yes; then
want_dag=no
fi
;;
esac
-if test "$with_dag" != no; then
- AC_MSG_CHECKING(whether we have DAG API)
+ac_cv_lbl_dag_api=no
+if test "$want_dag" != no; then
+
+ AC_MSG_CHECKING([whether we have DAG API headers])
+ # If necessary, set default paths for DAG API headers and libraries.
if test -z "$dag_root"; then
- dag_root=$srcdir/../dag
+ dag_root=/usr/local
fi
- if test -r "$dag_root/tools" -a -r "$dag_root/include"; then
- dag_tools_dir="$dag_root/tools"
+ if test -z "$dag_include_dir"; then
dag_include_dir="$dag_root/include"
- else
- dag_tools_dir="$dag_root"
- dag_include_dir="$dag_root"
fi
- ac_cv_lbl_dag_api=no
- if test -r "$dag_include_dir/dagapi.h" -a -r "$dag_tools_dir/dagapi.o" -a -r "$dag_tools_dir/dagopts.o"; then
- V_INCLS="$V_INCLS -I $dag_include_dir"
- V_LIBS="$V_LIBS $dag_tools_dir/dagapi.o $dag_tools_dir/dagopts.o"
- if test "$V_PCAP" != dag ; then
- SSRC="pcap-dag.c"
+ if test -z "$dag_lib_dir"; then
+ dag_lib_dir="$dag_root/lib"
+ fi
+
+ if test -z "$dag_tools_dir"; then
+ dag_tools_dir="$dag_root/tools"
fi
+
+ if test -r $dag_include_dir/dagapi.h; then
ac_cv_lbl_dag_api=yes
fi
- if test -r "$dag_root/lib/dagreg.c"; then # DAG 2.5.x
- if test -r "$dag_tools_dir/dagreg.o"; then
- V_LIBS="$V_LIBS $dag_tools_dir/dagreg.o"
- else
+ AC_MSG_RESULT([$ac_cv_lbl_dag_api ($dag_include_dir)])
+fi
+
+if test $ac_cv_lbl_dag_api = yes; then
+
+ AC_MSG_CHECKING([dagapi.o])
+ dagapi_obj=no
+ if test -r $dag_tools_dir/dagapi.o; then
+
+ # 2.4.x.
+ dagapi_obj=$dag_tools_dir/dagapi.o
+
+ elif test -r $dag_lib_dir/dagapi.o; then
+
+ # 2.5.x.
+ dagapi_obj=$dag_lib_dir/dagapi.o
+
+ elif test -r $dag_lib_dir/libdag.a; then
+
+ # 2.5.x.
+ ar x $dag_lib_dir/libdag.a dagapi.o
+ if test -r ./dagapi.o; then
+ dagapi_obj=./dagapi.o
+ fi
+ fi
+
+ if test $dagapi_obj = no; then
+ AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)])
ac_cv_lbl_dag_api=no
+ else
+ AC_MSG_RESULT([yes ($dagapi_obj)])
fi
+fi
+
+if test $ac_cv_lbl_dag_api = yes; then
+
+ AC_MSG_CHECKING([dagopts.o])
+ dagopts_obj=no
+ if test -r $dag_tools_dir/dagopts.o; then
+
+ # 2.4.x.
+ dagopts_obj=$dag_tools_dir/dagopts.o
+
+ elif test -r $dag_lib_dir/dagopts.o; then
+
+ # 2.5.x.
+ dagopts_obj=$dag_lib_dir/dagopts.o
+
+ elif test -r $dag_lib_dir/libdag.a; then
+
+ # 2.5.x.
+ ar x $dag_lib_dir/libdag.a dagopts.o
+ if test -r ./dagopts.o; then
+ dagopts_obj=./dagopts.o
fi
- dag_version=
- if test $ac_cv_lbl_dag_api = yes -a -r "$dag_root/VERSION"; then
- dag_version=" (`cat $dag_root/VERSION`)"
fi
- AC_MSG_RESULT($ac_cv_lbl_dag_api$dag_version)
- if test $ac_cv_lbl_dag_api = no; then
- if test "$want_dag" = yes; then
- AC_MSG_ERROR(DAG API not found under directory $dag_root; use --without-dag)
+
+ if test $dagopts_obj = no; then
+ AC_MSG_RESULT([no (checked $dag_lib_dir $dag_tools_dir $dag_lib_dir/libdag.a)])
+ ac_cv_lbl_dag_api=no
+ else
+ AC_MSG_RESULT([yes ($dagopts_obj)])
+ fi
+fi
+
+if test $ac_cv_lbl_dag_api = yes; then
+
+ # Under 2.5.x only we need to add dagreg.o.
+ if test -r $dag_include_dir/dagreg.h; then
+
+ AC_MSG_CHECKING([dagreg.o])
+ dagreg_obj=no
+ if test -r $dag_lib_dir/dagreg.o; then
+
+ # Object file is ready and waiting.
+ dagreg_obj=$dag_lib_dir/dagreg.o
+
+ elif test -r $dag_lib_dir/libdag.a; then
+
+ # Extract from libdag.a.
+ ar x $dag_lib_dir/libdag.a dagreg.o
+ if test -r ./dagreg.o; then
+ dagreg_obj=./dagreg.o
fi
+ fi
+
+ if test $dagreg_obj = no; then
+ AC_MSG_RESULT([no (checked $dag_lib_dir $dag_lib_dir/libdag.a)])
+ ac_cv_lbl_dag_api=no
else
- AC_DEFINE(HAVE_DAG_API, 1, [define if you have a DAG API])
+ AC_MSG_RESULT([yes ($dagreg_obj)])
+ fi
fi
fi
-if test "$V_PCAP" = dag -a "$ac_cv_lbl_dag_api" = no; then
- AC_MSG_ERROR(Specifying the capture type as 'dag' requires the DAG API to be present; use --with-dag=DIR)
+if test $ac_cv_lbl_dag_api = yes; then
+
+ V_INCLS="$V_INCLS -I$dag_include_dir"
+ V_LIBS="$V_LIBS $dagapi_obj $dagopts_obj $dagreg_obj"
+ if test $V_PCAP != dag ; then
+ SSRC="pcap-dag.c"
+ fi
+
+ # See if we can find a general version string.
+ # Don't need to save and restore LIBS to prevent -ldag being included if there's a found-action (arg 3).
+ saved_ldflags=$LDFLAGS
+ LDFLAGS="-L$dag_lib_dir"
+ AC_CHECK_LIB([dag], [dag_attach_stream], [dag_version="2.5.x"], [dag_version="2.4.x"])
+ LDFLAGS=$saved_ldflags
+
+ # See if we can find a specific version string.
+ AC_MSG_CHECKING([the DAG API version])
+ if test -r "$dag_root/VERSION"; then
+ dag_version="`cat $dag_root/VERSION`"
+ fi
+ AC_MSG_RESULT([$dag_version])
+ AC_DEFINE(HAVE_DAG_API, 1, [define if you have the DAG API])
+fi
+
+if test $ac_cv_lbl_dag_api = no; then
+ if test "$want_dag" = yes; then
+ # User wanted DAG support but we couldn't find it.
+ AC_MSG_ERROR([DAG API requested, but not found at $dag_root: use --without-dag])
+ fi
+
+ if test "$V_PCAP" = dag; then
+ # User requested "dag" capture type but the DAG API wasn't found.
+ AC_MSG_ERROR([Specifying the capture type as "dag" requires the DAG API to be present; use the --with-dag options to specify the location. (Try "./configure --help" for more information.)])
+ fi
fi
solaris*)
AC_DEFINE(HAVE_SOLARIS,1,[On solaris])
;;
+
darwin*)
DYEXT="dylib"
V_CCOPT="$V_CCOPT -fno-common"