Make infiniband plugin compile.
[obnox/wireshark/wip.git] / configure.in
index 1d5a9a5ba83865e8eed63f312bfcd8cd04ad9f00..de8e5f82c1569440ab7b789da8d26cbdf68fbb38 100644 (file)
@@ -14,7 +14,7 @@ dnl AC_CANONICAL_HOST
 dnl AC_CANONICAL_BUILD
 AC_CANONICAL_TARGET
 
-AM_INIT_AUTOMAKE(wireshark, 0.99.7)
+AM_INIT_AUTOMAKE(wireshark, 0.99.9)
 
 AM_DISABLE_STATIC
 
@@ -25,9 +25,19 @@ dnl Work around libtool bug (fixed in the version 1.5a?)
 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
+AC_PATH_PROG(PERL, perl)
 AC_PROG_YACC
+AC_PATH_PROG(YACCDUMMY, $YACC)
+if test "x$YACCDUMMY" = x
+then
+       AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
+fi
 AM_PROG_LEX
-AC_PATH_PROG(PERL, perl)
+AC_PATH_PROG(LEXDUMMY, $LEX)
+if test "x$LEXDUMMY" = x
+then
+       AC_MSG_ERROR(I couldn't find (f)lex; make sure it's installed and in your path)
+fi
 AC_PATH_PROG(POD2MAN, pod2man)
 if test "x$POD2MAN" = x
 then
@@ -88,7 +98,7 @@ AC_ARG_WITH([gnutls],
                  [use gnutls library @<:@default=yes@:>@]),
   with_gnutls="$withval", with_gnutls="yes")
 if test "x$with_gnutls" = "xyes"; then
-  AM_PATH_LIBGNUTLS(1.0.0,
+  AM_PATH_LIBGNUTLS(1.2.0,
         [
                 echo "gnuTLS found, enabling ssl decryption"
                 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
@@ -131,15 +141,7 @@ fi
 
 # libsmi
 # FIXME: currently the path argument to with-libsmi is being ignored
-libsmi="no"
-AC_ARG_WITH([libsmi],
-  AC_HELP_STRING( [--with-libsmi=@<:@yes/no@:>@],
-                 [use smi library @<:@default=yes@:>@]),
-  with_libsmi="$withval", with_libsmi="yes")
-if test "x$with_libsmi" = "xyes"; then
-  AM_PATH_LIBSMI
-  AM_CONDITIONAL(HAVE_SMI, test "x$with_libsmi" = "xyes")
-fi
+AX_LIBSMI
 
 # Check for xsltproc
 AC_PATH_PROG(XSLTPROC, xsltproc)
@@ -190,9 +192,11 @@ AC_ARG_ENABLE(extra-gcc-checks,
        if test $enableval != no
        then
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
@@ -208,6 +212,7 @@ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
 
 #
 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
@@ -226,6 +231,7 @@ fi
 # This barrier is set for a very large part of the code. However, it is
 # typically not set for "generated" code  (lex, ans2wrs, idl2wrs, ...)
 #
+warnings_as_errors_default="yes"
 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
 AC_ARG_ENABLE(warnings-as-errors,
   AC_HELP_STRING( [--enable-warnings-as-errors],
@@ -239,7 +245,7 @@ AC_ARG_ENABLE(warnings-as-errors,
     AC_MSG_RESULT(no)
   fi
 ],
-  if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x"; then
+  if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
     with_warnings_as_errors="yes"
     AC_MSG_RESULT(yes)
   else
@@ -346,23 +352,19 @@ esac
 AC_SUBST(LDFLAGS_SHAREDLIB)
 
 #
-# On OS X, if we find the headers for Core Foundation and Launch Services,
-# add -framework options to link with Application Services (of which
-# Launch Services is a subframework) and Core Foundation (required by
-# the Launch Services APIs), so we can use that to launch a Web browser
-# from the Help menu.
-#
-# (Do those headers exist on pure Darwin?  If so, does the CoreFoundation
-# *and* Launch Services code exist there, or are those headers just stubs?
-# If the frameworks aren't present on Darwin, how *should* we check for
-# their existence?)
+# On OS X, if we find the headers for Core Foundation, Launch Services,
+# and Core Services, add -framework options to link with Application
+# Services (of which Launch Services is a subframework), Core Foundation
+# (required by the Launch Services APIs), and Core Services, so we can
+# use them to launch a Web browser from the Help menu and to use
+# Gestalt() to get the Mac OS X version number.
 #
 case "$host_os" in
 
 darwin*)
-       AC_MSG_CHECKING(whether we can build with Core Foundation and Launch Services)
+       AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
        ac_save_LIBS="$LIBS"
-       ac_frameworks="-framework ApplicationServices -framework CoreFoundation"
+       ac_frameworks="-framework ApplicationServices -framework CoreFoundation -framework CoreServices"
        LIBS="$LIBS $ac_frameworks"
        AC_TRY_LINK(
           [
@@ -370,20 +372,24 @@ darwin*)
 #       include <CoreFoundation/CFString.h>
 #       include <CoreFoundation/CFURL.h>
 #       include <ApplicationServices/ApplicationServices.h>
+#      include <CoreServices/CoreServices.h>
           ],
           [
        CFStringRef url_CFString;
        CFURLRef url_CFURL;
        OSStatus status;
+       long os_version;
 
        url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
        url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
        status = LSOpenCFURLRef(url_CFURL, NULL);
+
+       Gestalt(gestaltSystemVersion, &os_version);
           ],
-          ac_cv_can_use_cf_and_ls=yes,
-          ac_cv_can_use_cf_and_ls=no,
+          ac_cv_can_use_osx_frameworks=yes,
+          ac_cv_can_use_osx_frameworks=no,
           [echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       if test "$ac_cv_can_use_cf_and_ls" = yes ; then
+       if test "$ac_cv_can_use_osx_frameworks" = yes ; then
                AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
                FRAMEWORKS="$ac_frameworks"
                AC_MSG_RESULT(yes)
@@ -410,7 +416,7 @@ if test "x$ac_cv_enable_usr_local" = "xyes" ; then
        #
        # Arrange that we search for header files in the source directory
        # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
-       # as various packages we use ("libpcap", "zlib", an SNMP library)
+       # as various packages we use ("libpcap", "zlib", "adns", "pcre")
        # may have been installed under "/usr/local/include".
        #
        CFLAGS="$CFLAGS -I/usr/local/include"
@@ -824,6 +830,7 @@ fi
 AC_SUBST(randpkt_bin)
 
 
+
 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
 dnl "gethostbyname()".
 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
@@ -891,6 +898,60 @@ fi
 AC_SUBST(dumpcap_bin)
 AC_SUBST(dumpcap_man)
 
+# Enable/disable rawshark
+
+dnl rawshark check
+AC_MSG_CHECKING(whether to build rawshark)
+
+AC_ARG_ENABLE(rawshark,
+  AC_HELP_STRING( [--enable-rawshark],
+                  [build rawshark.  @<:@default=yes@:>@]),
+    rawshark=$enableval,enable_rawshark=yes)
+
+if test "x$enable_rawshark" = "xyes" ; then
+       if test "x$want_pcap" = "xno" ; then
+               enable_rawshark=no
+               AC_MSG_RESULT(pcap not available - disabling rawshark)
+       else
+               AC_MSG_RESULT(yes)
+       fi
+else
+       AC_MSG_RESULT(no)
+fi
+
+if test "x$enable_rawshark" = "xyes" ; then
+       rawshark_bin="rawshark\$(EXEEXT)"
+       rawshark_man="rawshark.1"
+else
+       rawshark_bin=""
+       rawshark_man=""
+fi
+AC_SUBST(rawshark_bin)
+AC_SUBST(rawshark_man)
+
+
+dnl pcap remote check
+AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
+
+AC_ARG_WITH(pcap-remote,
+[  --with-pcap-remote        use libpcap remote capturing (requires libpcap)],
+[
+    if test $withval = no
+    then
+        want_pcap_remote=no
+    else
+        want_pcap_remote=yes
+    fi
+],[
+    want_pcap_remote=no
+])
+if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
+    AC_MSG_RESULT(no)
+else
+    AC_MSG_RESULT(yes)
+    AC_WIRESHARK_PCAP_REMOTE_CHECK
+fi
+
 dnl zlib check
 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
 
@@ -1048,24 +1109,50 @@ else
 fi
 
 
-dnl Check if wireshark should be installed setuid
+dnl Check if dumpcap should be installed setuid
 AC_ARG_ENABLE(setuid-install,
   AC_HELP_STRING( [--enable-setuid-install],
-                  [install tshark and dumpcap as setuid @<:@default=no@:>@]),
+                  [install dumpcap as setuid @<:@default=no@:>@]),
     enable_setuid_install=$enableval,enable_setuid_install=no)
 
-AC_MSG_CHECKING(whether to install tshark and dumpcap setuid)
+AC_MSG_CHECKING(whether to install dumpcap setuid)
 if test "x$enable_setuid_install" = "xno" ; then
        AC_MSG_RESULT(no)
 else
        if test "x$enable_dumpcap" = "xno" ; then
-               AC_MSG_ERROR(Setuid install works only with --enable-dumpcap, but dumpcap disabled)
+               AC_MSG_ERROR(Setuid install works only with --enable-dumpcap, but dumpcap is disabled)
        else
                AC_MSG_RESULT(yes)
        fi
 fi
 
 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
+AC_CHECK_FUNCS(setresuid setresgid)
+
+dnl libcap (not libpcap) check
+LIBCAP_LIBS=''
+AC_MSG_CHECKING(whether to use the libcap capabilities library)
+
+AC_ARG_WITH(libcap,
+  AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
+                  [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management.   @<:@default=yes, if present@:>@]),
+[
+if   test "x$withval" = "xno";  then
+       want_libcap=no
+elif test "x$withval" = "xyes"; then
+       want_libcap=yes
+elif test -d "$withval"; then
+       want_libcap=yes
+       AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
+fi
+])
+if test "x$with_libcap" = "xno" ; then
+       AC_MSG_RESULT(no)
+else
+       AC_MSG_RESULT(yes)
+       AC_WIRESHARK_LIBCAP_CHECK
+fi
+AC_SUBST(LIBCAP_LIBS)
 
 dnl Checks for header files.
 AC_HEADER_STDC
@@ -1286,6 +1373,28 @@ fi
 AC_SUBST(MKSTEMP_C)
 AC_SUBST(MKSTEMP_O)
 
+ac_save_LIBS="$LIBS"
+LIBS="$GLIB_LIBS $LIBS"
+G_ASCII_STRCASECMP_C=""
+G_ASCII_STRCASECMP_O=""
+G_ASCII_STRCASECMP_LO=""
+AC_CHECK_FUNC(g_ascii_strcasecmp,
+  [G_ASCII_STRCASECMP_O=""
+   G_ASCII_STRCASECMP_LO=""],
+  [G_ASCII_STRCASECMP_O="g_ascii_strcasecmp.o"
+   G_ASCII_STRCASECMP_LO="g_ascii_strcasecmp.lo"
+   AC_DEFINE(NEED_G_ASCII_STRCASECMP_H, 1, [Define if g_ascii_strcasecmp.h needs to be included])
+])
+LIBS="$ac_save_LIBS"
+if test "$ac_cv_func_g_ascii_strcasecmp" = no ; then
+  G_ASCII_STRCASECMP_C="g_ascii_strcasecmp.c"
+  G_ASCII_STRCASECMP_O="g_ascii_strcasecmp.o"
+  G_ASCII_STRCASECMP_LO="g_ascii_strcasecmp.lo"
+fi
+AC_SUBST(G_ASCII_STRCASECMP_C)
+AC_SUBST(G_ASCII_STRCASECMP_O)
+AC_SUBST(G_ASCII_STRCASECMP_LO)
+
 ac_save_LIBS="$LIBS"
 LIBS="$GLIB_LIBS $LIBS"
 G_ASCII_STRTOULL_C=""
@@ -1424,9 +1533,8 @@ AC_ARG_WITH(plugins,
     have_plugins=no
   elif test "x$have_plugins" = "xno"; then
       AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
-      if test "x$withval" != "xyes"; then
-       plugindir="$withval"
-      fi
+  elif test "x$withval" != "xyes"; then
+      plugindir="$withval"
   fi
 ])
 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
@@ -1440,7 +1548,7 @@ CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
 #
 # The plugin dissectors reside in ./plugins/PROTO/
 #
-PLUGIN_LIBS="-L../../epan -lwireshark $GLIB_LIBS"
+PLUGIN_LIBS="-L../../epan -lwireshark"
 AC_SUBST(PLUGIN_LIBS)
 
 dnl libtool defs
@@ -1466,7 +1574,6 @@ dnl Save the cacheable configure results to config.cache before recursing
 AC_CACHE_SAVE
 
 AM_CONFIG_HEADER(config.h)
-AC_CONFIG_SUBDIRS(wiretap)
 AC_OUTPUT(
   Makefile
   doxygen.cfg
@@ -1491,8 +1598,13 @@ AC_OUTPUT(
   asn1/h235/Makefile
   asn1/h245/Makefile
   asn1/h248/Makefile
+  asn1/h282/Makefile
+  asn1/h283/Makefile
+  asn1/h323/Makefile
   asn1/h450/Makefile
   asn1/h450-ros/Makefile
+  asn1/h460/Makefile
+  asn1/h501/Makefile
   asn1/inap/Makefile
   asn1/ldap/Makefile
   asn1/logotype-cert-extn/Makefile
@@ -1502,6 +1614,8 @@ AC_OUTPUT(
   asn1/nbap/Makefile
   asn1/ns-cert-exts/Makefile
   asn1/ocsp/Makefile
+  asn1/p7/Makefile
+  asn1/pcap/Makefile
   asn1/pkcs1/Makefile
   asn1/pkcs12/Makefile
   asn1/pkinit/Makefile
@@ -1522,14 +1636,25 @@ AC_OUTPUT(
   asn1/rrc/Makefile
   asn1/rrlp/Makefile
   asn1/rtse/Makefile
+  asn1/s1ap/Makefile
   asn1/s4406/Makefile
   asn1/sabp/Makefile
   asn1/smrse/Makefile
   asn1/snmp/Makefile
   asn1/spnego/Makefile
+  asn1/t125/Makefile
   asn1/t38/Makefile
   asn1/tcap/Makefile
   asn1/ulp/Makefile
+  asn1/wlancertextn/Makefile
+  asn1/x2ap/Makefile
+  asn1/x411/Makefile
+  asn1/x420/Makefile
+  asn1/x509af/Makefile
+  asn1/x509ce/Makefile
+  asn1/x509if/Makefile
+  asn1/x509sat/Makefile
+  asn1/x721/Makefile
   doc/Makefile
   epan/Makefile
   epan/crypt/Makefile
@@ -1557,13 +1682,14 @@ AC_OUTPUT(
   plugins/ciscosm/Makefile
   plugins/docsis/Makefile
   plugins/enttec/Makefile
+  plugins/ethercat/Makefile
   plugins/giop/Makefile
   plugins/gryphon/Makefile
+  plugins/infiniband/Makefile
   plugins/irda/Makefile
   plugins/lwres/Makefile
   plugins/m2m/Makefile
   plugins/mate/Makefile
-  plugins/mgcp/Makefile
   plugins/opcua/Makefile
   plugins/opsi/Makefile
   plugins/pcli/Makefile
@@ -1580,6 +1706,7 @@ AC_OUTPUT(
   tools/Makefile
   tools/idl2wrs.sh
   tools/lemon/Makefile
+  wiretap/Makefile
   ,)
 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
 
@@ -1634,6 +1761,12 @@ else
        adns_message="no"
 fi
 
+if test "x$have_good_libcap" = "xyes" ; then
+       libcap_message="yes"
+else
+       libcap_message="no"
+fi
+
 echo ""
 echo "The Wireshark package has been configured with the following options."
 echo "                    Build wireshark : $enable_wireshark"
@@ -1646,8 +1779,9 @@ echo "                    Build text2pcap : $enable_text2pcap"
 echo "                      Build idl2wrs : $enable_idl2wrs"
 echo "                      Build randpkt : $enable_randpkt"
 echo "                       Build dftest : $enable_dftest"
+echo "                     Build rawshark : $enable_rawshark"
 echo ""
-echo "                     Install setuid : $setuid_message"
+echo "             Install dumpcap setuid : $setuid_message"
 echo "                        Use plugins : $have_plugins"
 echo "                   Build lua plugin : $lua_message"
 echo "                   Build rtp_player : $portaudio_message"
@@ -1661,8 +1795,9 @@ echo "                   Use zlib library : $zlib_message"
 echo "                   Use pcre library : $pcre_message"
 echo "               Use kerberos library : $krb5_message"
 echo "               Use GNU ADNS library : $adns_message"
-echo "               Use SMI SNMP library : $libsmi"
+echo "                Use SMI MIB library : $libsmi_message"
 echo "             Use GNU crypto library : $gcrypt_message"
 echo "             Use SSL crypto library : $ssl_message"
 echo "           Use IPv6 name resolution : $enable_ipv6"
 echo "                 Use gnutls library : $tls_message"
+echo "                 Use libcap library : $libcap_message"