Make pcap-ng the default. Add a compile-time option to prefer pcap-ng or
[metze/wireshark/wip.git] / configure.in
index 354bc8a04e649b0a2bdda97f419fb7eb53e1f527..ce8c389a6510c722bc63cfc7643211ad8f3898a7 100644 (file)
@@ -2,7 +2,7 @@
 #
 AC_PREREQ(2.60)
 
-AC_INIT(wireshark, 1.3.5)
+AC_INIT(wireshark, 1.7.0)
 
 dnl Check for CPU / vendor / OS
 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
@@ -38,6 +38,25 @@ AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
 AC_LIBTOOL_DLOPEN
 AC_PROG_LIBTOOL
 AC_PATH_PROG(PERL, perl)
+#
+# XXX - should autogen.sh check for YACC/Bison and Flex?  A user building
+# from a distribution tarball shouldn't have to have YACC/Bison or Flex,
+# as the tarball should contain the results of running YACC/Bison on .y
+# files and running Flex on .l files, but a user building from SVN
+# will have to run YACC/Bison and Flex to process those files.
+#
+# On the other hand, what about users who use a distribution tarball to
+# do development?  They *shouldn't* - that's what the SVN repository is
+# for - but they might.  They'd get errors if they modify a .y or .l
+# file and try to do a build - but the error should tell them that they
+# need to get YACC/Bison and/or Flex.
+#
+# Then again, getting them shouldn't be too big of a burden.
+#
+# XXX - is the same true of pod2man and pod2html, or are they needed
+# even when building from a distribution tarball?
+#
+#
 AC_PROG_YACC
 AC_PATH_PROG(YACCDUMMY, $YACC)
 if test "x$YACCDUMMY" = x
@@ -98,18 +117,50 @@ else
        fi
 fi
 
-AC_PATH_PROG(LEX, flex)
 AC_PATH_PROG(PYTHON, python)
 
 AC_SUBST(PERL)
+AC_SUBST(LEX)
 AC_SUBST(POD2MAN)
 AC_SUBST(POD2HTML)
-AC_SUBST(LEX)
-AC_SUBST(FLEX_PATH)
 AC_SUBST(PYTHON)
 AC_SUBST(XSLTPROC)
 AC_SUBST(XMLLINT)
 
+#
+# Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
+# flags such as -pedantic, -W warning flags and -f feature flags.  Currently,
+# we assume GCC and clang do; other compilers should be added here.
+#
+# This is done to avoid getting tripped up by compilers that support
+# those flags but give them a different meaning.
+#
+if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
+       ac_supports_gcc_flags=yes
+fi
+
+#
+# Set "ac_supports_W_linker_passthrough" if the compiler is known to
+# support "-Wl,{options}" to pass options through to the linker.
+# Currently, we assume GCC, xlc, and clang do; other compilers should
+# be added here.
+#
+if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
+       ac_supports_W_linker_passthrough=yes
+fi
+
+#
+# Set "ac_supports_attribute_unused" if the compiler is known to
+# support "__attribute__(unused)".
+# Currently, we assume GCC and clang do; other compilers should
+# be added here.
+#
+# XXX - do this with a compiler test?
+#
+if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
+       ac_supports_W_linker_passthrough=yes
+fi
+
 if test "x$CC_FOR_BUILD" = x
 then
        CC_FOR_BUILD=$CC
@@ -121,6 +172,11 @@ AC_PATH_PROG(DOXYGEN, doxygen)
 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
 
+#
+# Try to arrange for large file support.
+#
+AC_SYS_LARGEFILE
+
 # gnu tls
 tls_message="no"
 AC_ARG_WITH([gnutls],
@@ -165,6 +221,12 @@ if test "x$with_gcrypt" = "xyes"; then
   )
 fi
 
+AC_ARG_WITH([gtk3],
+  AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
+                  [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
+  with_gtk3="$withval", with_gtk="no")
+
+
 # libsmi
 # FIXME: currently the path argument to with-libsmi is being ignored
 AX_LIBSMI
@@ -191,9 +253,11 @@ AC_PATH_PROG(ELINKS, elinks)
 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
 
-AC_PATH_PROG(LINKS, links)
-AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
-AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
+## links: Fails as used in docbook/Makefile.am
+## (Rather than fixing things we'll just disable the use of links).
+##AC_PATH_PROG(LINKS, links)
+##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
+##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
 
 AC_PATH_PROG(LYNX, lynx)
 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
@@ -263,9 +327,7 @@ AC_ARG_ENABLE(extra-gcc-checks,
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
-               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
-               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
@@ -279,7 +341,14 @@ AC_ARG_ENABLE(extra-gcc-checks,
                # for now.
                #
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
+               #
+               # GLib blocks this for now.
+               #
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
+               #
+               # All the registration functions block these for now.
+               #
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
                AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
                #
                # epan/dissectors/packet-afs.c blocks this one for now.
@@ -300,26 +369,44 @@ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition)
 
-AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
+#
+# Use the faster pre gcc 4.5 floating point precision if available;
+# clang doesn't error out on -f options that it doesn't know about,
+# it just warns and ignores them, so this check doesn't cause us
+# to omit -fexcess-precision=fast, which produces a pile of
+# annoying warnings.
+#
+if test "x$CC" != "xclang" ; then
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
+fi
+
+AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
+###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
+###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
+# AC_WIRESHARK_LDFLAGS_CHECK([-flto])
+# AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
+# AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
 
 #
-# If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
-# so we can use _U_ to flag unused function arguments and not get warnings
-# about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
-# function argument will compile with non-GCC compilers.
+# If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
+# CFLAGS as well, so we can use _U_ to flag unused function arguments and
+# not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
+# to flag an unused function argument will compile with non-GCC, non-clang
+# compilers.
 #
-if test "x$GCC" = "xyes" ; then
+# XXX - other compilers?
+#
+if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
   CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
 else
   CFLAGS="-D_U_=\"\" $CFLAGS"
 fi
 
 #
-# If we're running gcc, will enable a barrier "stop on warning".
+# If the compiler supports GCC-style flags, enable a barrier "stop on
+# warning".
 # This barrier is set for a very large part of the code. However, it is
 # typically not set for "generated" code  (flex, ans2wrs, idl2wrs, ...)
 #
@@ -327,9 +414,9 @@ 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],
-                 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
+                 [Treat warnings as errors (only for GCC or clang). @<:@default=yes@:>@]),
 [
-  if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
+  if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
     with_warnings_as_errors="yes"
     AC_MSG_RESULT(yes)
   else
@@ -337,7 +424,7 @@ AC_ARG_ENABLE(warnings-as-errors,
     AC_MSG_RESULT(no)
   fi
 ],
-  if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
+  if test "x$ac_supports_gcc_flags" = "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
@@ -366,8 +453,23 @@ if test "x$GCC" = "xyes" ; then
                #
                # See comments above about Apple's lovely C compiler.
                #
-               CFLAGS="-no-cpp-precomp $CFLAGS"
-               AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
+               # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
+               # defines __GNUC__"; clang defines __GNUC__, so that
+               # means we think clang is GCC.
+               #
+               # clang whines about -no-cpp-precomp being unused
+               # so we check whether this is really clang, and
+               # only add -no-cpp-precomp if it's not.
+               #
+               if test "x$CC" != "xclang" ; then
+                       CFLAGS="-no-cpp-precomp $CFLAGS"
+                       AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
+               else
+                       #
+                       # Clang, clang, clang went the trolley....
+                       #
+                       AC_MSG_RESULT(none needed)
+               fi
                ;;
        *)
                AC_MSG_RESULT(none needed)
@@ -395,8 +497,23 @@ else
                # apparently-legal code won't compile with its precompiled
                # headers.
                #
-               CFLAGS="-no-cpp-precomp $CFLAGS"
-               AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
+               # On the other hand, if it's called "clang", it's not a
+               # GCC derivative, and it whines if you pass it
+               # -no-cpp-precomp.
+               #
+               # XXX - is there any version of autoconf we support
+               # where it uses another way to decide if the compiler
+               # is GCC or not?
+               #
+               if test "x$CC" != "xclang" ; then
+                       CFLAGS="-no-cpp-precomp $CFLAGS"
+                       AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
+               else
+                       #
+                       # Clang, clang, clang went the trolley....
+                       #
+                       AC_MSG_RESULT(none needed)
+               fi
                ;;
        *)
                AC_MSG_RESULT(none needed)
@@ -459,8 +576,9 @@ case "$host_os" in
 darwin*)
        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 -framework CoreServices"
-       LIBS="$LIBS $ac_frameworks"
+       ac_coreservices_frameworks="-framework CoreServices"
+       ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
+       LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
        AC_TRY_LINK(
           [
 #       include <CoreFoundation/CFBase.h>
@@ -486,7 +604,8 @@ darwin*)
           [echo $ac_n "cross compiling; assumed OK... $ac_c"])
        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"
+               CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
+               LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
                AC_MSG_RESULT(yes)
        else
                AC_MSG_RESULT(no)
@@ -494,7 +613,8 @@ darwin*)
        LIBS="$ac_save_LIBS"
        ;;
 esac
-AC_SUBST(FRAMEWORKS)
+AC_SUBST(CORESERVICES_FRAMEWORKS)
+AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
 
 #
 # If using $prefix we add "$prefix/include" to the include search path
@@ -531,20 +651,24 @@ AC_ARG_ENABLE(usr-local,
 
 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
-       AC_MSG_RESULT(yes)
-       #
-       # 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", "adns", "pcre")
-       # may have been installed under "/usr/local/include".
-       #
-       CFLAGS="$CFLAGS -I/usr/local/include"
-       CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+       if test -d "/usr/local"; then
+               AC_MSG_RESULT(yes)
+               #
+               # 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", "adns", "pcre")
+               # may have been installed under "/usr/local/include".
+               #
+               CFLAGS="$CFLAGS -I/usr/local/include"
+               CPPFLAGS="$CPPFLAGS -I/usr/local/include"
 
-       #
-       # Arrange that we search for libraries in "/usr/local/lib".
-       #
-       AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
+               #
+               # Arrange that we search for libraries in "/usr/local/lib".
+               #
+               AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
+       else
+               AC_MSG_RESULT(no)
+       fi
 else
        AC_MSG_RESULT(no)
 fi
@@ -607,6 +731,14 @@ AC_ARG_ENABLE(wireshark,
                   [build GTK+-based wireshark.  @<:@default=yes, if GTK+ available@:>@]),
     enable_wireshark=$enableval,enable_wireshark=yes)
 
+AC_ARG_ENABLE(packet-editor,
+  AC_HELP_STRING( [--enable-packet-editor],
+                  [add support for packet editor in wireshark.  @<:@default=no@:>@]),
+    enable_packet_editor=$enableval,enable_packet_editor=no)
+if test x$enable_packet_editor = xyes; then
+       AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
+fi
+
 AC_ARG_ENABLE(threads,
   AC_HELP_STRING( [--enable-threads],
                   [use threads in wireshark.  @<:@default=no@:>@]),
@@ -620,12 +752,12 @@ AC_ARG_ENABLE(profile-build,
 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
 AC_MSG_CHECKING(if profile builds must be generated)
 if test "x$enable_profile_build" = "xyes" ; then
-       if test "x$GCC" = "xyes" ; then
+       if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
                AC_MSG_RESULT(yes)
                CFLAGS=" -pg $CFLAGS"
        else
                AC_MSG_RESULT(no)
-               echo "Building profile binaries currently only supported for GCC."
+               echo "Building profile binaries currently only supported for GCC and clang."
        fi
 else
        AC_MSG_RESULT(no)
@@ -643,16 +775,38 @@ datafiledir=`(
 )`
 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
 
+# Create DOC_DIR #define for config.h
+docdir=`(
+    test "x$prefix" = xNONE && prefix=$ac_default_prefix
+    test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
+    # Ugly hack, but I don't see how this problem can be solved
+    # properly that DOC_DIR had a value starting with
+    # "${prefix}/" instead of e.g. "/usr/local/"
+    eval eval echo "$docdir"
+)`
+AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
+
 # GTK checks; we require GTK+ 2.4 or later.
 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
 # programs to be built with GTK+.
 #
 if test "x$enable_wireshark" = "xyes"; then
+if test "x$with_gtk3" = "xyes"; then
+       AM_PATH_GTK_3_0(3.0.0,
+        [
+                CFLAGS="$CFLAGS $GTK_CFLAGS"
+                CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
+                AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
+        ], GTK_OK=no, gthread)
+
+else
        AM_PATH_GTK_2_0(2.4.0,
        [
                CFLAGS="$CFLAGS $GTK_CFLAGS"
                CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
+               AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
        ], GTK_OK=no, gthread)
+fi
 else
        GTK_OK=no
 fi
@@ -688,7 +842,7 @@ if test "$GTK_OK" = "no" ; then
        [
                CFLAGS="$CFLAGS $GLIB_CFLAGS"
                CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
-       ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
+       ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gthread gmodule)
 else
        #
        # We have GTK+, and thus will be building Wireshark unless the
@@ -698,7 +852,7 @@ else
        wireshark_man="wireshark.1"
         wireshark_SUBDIRS="codecs gtk"
        # Don't use GLIB_CFLAGS
-       AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
+       AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gthread gmodule)
 fi
 
 #
@@ -796,30 +950,36 @@ main(void)
        AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
 fi
 
-dnl IGE Mac integration check
-AC_MSG_CHECKING(whether to use IGE Mac integration functions)
-
-AC_ARG_WITH(ige-mac-integration,
-  AC_HELP_STRING( [--with-ige-mac-integration],
-                  [use IGE Mac integration. (@<:@default=yes, if available@:>@]),
-[
-    if test $withval = no
-    then
-        want_ige_mac_integration=no
+if test "x$no_gtk" != "xyes"
+then
+    #
+    # We have GTK+; do we want the OS X integration functions and,
+    # if so, do we have them and, if so, which versions do we have,
+    # the old Carbon-based ones or the new Cocoa-based ones?
+    #
+    AC_MSG_CHECKING(whether to use OS X integration functions)
+
+    AC_ARG_WITH(osx-integration,
+      AC_HELP_STRING( [--with-osx-integration],
+                      [use OS X integration functions (@<:@default=yes, if available@:>@]),
+    [
+        if test $withval = no
+        then
+            want_osx_integration=no
+        else
+            want_osx_integration=yes
+        fi
+    ],[
+        want_osx_integration=yes
+    ])
+    if test "x$want_osx_integration" = "xno"; then
+        AC_MSG_RESULT(no)
     else
-        want_ige_mac_integration=yes
+        AC_MSG_RESULT(yes)
+        AC_WIRESHARK_OSX_INTEGRATION_CHECK
     fi
-],[
-    want_ige_mac_integration=yes
-])
-if test "x$want_ige_mac_integration" = "xno" -o "x$no_gtk" = "xyes" ; then
-    AC_MSG_RESULT(no)
-else
-    AC_MSG_RESULT(yes)
-    AC_WIRESHARK_IGE_MAC_INTEGRATION_CHECK
 fi
 
-
 AC_SUBST(wireshark_bin)
 AC_SUBST(wireshark_man)
 
@@ -945,10 +1105,13 @@ AC_ARG_ENABLE(dftest,
 
 if test "x$enable_dftest" = "xyes" ; then
        dftest_bin="dftest\$(EXEEXT)"
+       dftest_man="dftest.1"
 else
        dftest_bin=""
+       dftest_man=""
 fi
 AC_SUBST(dftest_bin)
+AC_SUBST(dftest_man)
 
 
 # Enable/disable randpkt
@@ -960,10 +1123,13 @@ AC_ARG_ENABLE(randpkt,
 
 if test "x$enable_randpkt" = "xyes" ; then
        randpkt_bin="randpkt\$(EXEEXT)"
+       randpkt_man="randpkt.1"
 else
        randpkt_bin=""
+       randpkt_man=""
 fi
 AC_SUBST(randpkt_bin)
+AC_SUBST(randpkt_man)
 
 
 
@@ -1065,12 +1231,21 @@ fi
 AC_SUBST(rawshark_bin)
 AC_SUBST(rawshark_man)
 
+dnl Use pcap-ng by default
+AC_ARG_ENABLE(pcap-ng-default,
+  AC_HELP_STRING( [--enable-pcap-ng-default],
+                  [use the pcap-ng file format by default instead of pcap.  @<:@default=yes@:>@]),
+    enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
+if test x$enable_pcap_ng_default = xyes; then
+       AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
+fi
 
 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)],
+    AC_HELP_STRING([--with-pcap-remote],
+                   [use libpcap remote capturing (requires libpcap)]),
 [
     if test $withval = no
     then
@@ -1089,21 +1264,21 @@ else
 fi
 
 dnl zlib check
-AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
+AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
 
 AC_ARG_WITH(zlib,
-  AC_HELP_STRING( [--with-zlib@<:@=DIR@:>@],
-                  [use zlib (located in directory DIR, if supplied) to read compressed data.  @<:@default=yes, if available@:>@]),
+  AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
+                 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression .  @<:@default=yes, if available@:>@]),
 [
-       if test $withval = no
+       if test "x$withval" = "xno"
        then
                want_zlib=no
-       elif test $withval = yes
+       elif test "x$withval" = "xyes"
        then
                want_zlib=yes
        else
                want_zlib=yes
-               zlib_dir=$withval
+               zlib_dir="$withval"
        fi
 ],[
        #
@@ -1118,11 +1293,14 @@ else
         AC_MSG_RESULT(yes)
         AC_WIRESHARK_ZLIB_CHECK
        if test "x$want_zlib" = "xno" ; then
-               AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
+               AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
+       else
+               if test "x$ac_cv_func_inflatePrime" = "xno" ; then
+                       AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
+               fi
        fi
 fi
 
-
 dnl pcre check
 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
 
@@ -1162,12 +1340,12 @@ else
 fi
 
 
-dnl lua check
-AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
+dnl Lua check
+AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
 
 AC_ARG_WITH(lua,
   AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
-                  [use liblua (located in directory DIR, if supplied) for the lua scripting plugin.  @<:@default=yes, if available@:>@]),
+                  [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin.  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -1249,6 +1427,28 @@ else
 fi
 
 
+dnl Check if dumpcap should be installed with filesystem capabilities
+AC_PATH_PROG(SETCAP, setcap)
+AC_ARG_ENABLE(setcap-install,
+  AC_HELP_STRING( [--enable-setcap-install],
+                  [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
+    enable_setcap_install=$enableval,enable_setcap_install=no)
+
+AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
+if test "x$enable_setcap_install" = "xno" ; then
+       AC_MSG_RESULT(no)
+else
+       if test "x$SETCAP" = "x" ; then
+               AC_MSG_RESULT(no. Setcap not found)
+       elif test "x$enable_dumpcap" = "xno" ; then
+               AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
+       else
+               AC_MSG_RESULT(yes)
+       fi
+fi
+
+AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
+
 dnl Check if dumpcap should be installed setuid
 AC_ARG_ENABLE(setuid-install,
   AC_HELP_STRING( [--enable-setuid-install],
@@ -1259,7 +1459,10 @@ 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
+       if test "x$enable_setcap_install" = "xyes" ; then
+               enable_setuid_install=no
+               AC_MSG_RESULT(no; using setcap instead)
+       elif test "x$enable_dumpcap" = "xno" ; then
                AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
        else
                AC_MSG_RESULT(yes)
@@ -1269,6 +1472,25 @@ fi
 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
 AC_CHECK_FUNCS(setresuid setresgid)
 
+dnl ...but our Network Operations group is named "no"!
+DUMPCAP_GROUP=''
+AC_ARG_WITH(dumpcap-group,
+  AC_HELP_STRING( [--with-dumpcap-group=GROUP],
+                  [restrict dumpcap to GROUP]),
+[
+  if test "x$withval" = "xyes"; then
+      AC_MSG_ERROR([No dumpcap group specified.])
+  elif test "x$withval" != "xno"; then
+      if test "x$enable_dumpcap" = "xno" ; then
+          AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
+      fi
+      AC_MSG_RESULT($withval)
+      DUMPCAP_GROUP="$withval"
+  fi
+])
+AC_SUBST(DUMPCAP_GROUP)
+AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
+
 dnl libcap (not libpcap) check
 LIBCAP_LIBS=''
 AC_MSG_CHECKING(whether to use the libcap capabilities library)
@@ -1441,23 +1663,38 @@ fi
 AC_SUBST(GEOIP_LIBS)
 
 dnl Python devel Check
+AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
+
 AC_ARG_WITH(python,
     AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
-                    [use python interpretor (installed in DIR, if supplied). @<:@default=no@:>@ (EXPERIMENTAL)]),
+                    [use Python interpreter (installed in DIR, if supplied). @<:@default=yes, if available@:>@ (EXPERIMENTAL)]),
 [
-pythondir='${libdir}/wireshark/python/${VERSION}'
-if test "x$withval" = "xno"; then
-  want_python=no
-elif test "x$withval" != "xyes"; then
-  pythondir="$withval"
-  want_python=yes
-  AC_WIRESHARK_PYTHON_CHECK
+       pythondir='${libdir}/wireshark/python/${VERSION}'
+       if test "x$withval" = "xno"
+       then
+               want_python=no
+       elif test "x$withval" = "xyes"
+       then
+               want_python=yes
+       else
+               want_python=yes
+               pythondir="$withval"
+       fi
+],[
+       #
+       # Use the embeddable Python interpreter if it's present,
+       # otherwise don't.
+       #
+       want_pythin=ifavailable
+       pythondir='${libdir}/wireshark/python/${VERSION}'
+])
+if test "x$want_python" = "xno" ; then
+        AC_MSG_RESULT(no)
 else
-  want_python=yes
-  AC_WIRESHARK_PYTHON_CHECK
+        AC_MSG_RESULT(yes)
+       AC_WIRESHARK_PYTHON_CHECK
 fi
-])
-AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
+AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
 AC_SUBST(pythondir)
 
 #
@@ -1466,6 +1703,17 @@ AC_SUBST(pythondir)
 #
 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
 
+#
+# Define WS_MSVC_NORETURN appropriately for declarations of routines that
+# never return (just like Charlie on the MTA).
+#
+# Note that MSVC++ expects __declspec(noreturn) to precede the function
+# name and GCC, as far as I know, expects __attribute__((noreturn)) to
+# follow the function name, so we need two different flavors of
+# noreturn tag.
+#
+AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
+
 AC_ARG_ENABLE(airpcap,
   AC_HELP_STRING( [--enable-airpcap],
                   [use airpcap in wireshark.  @<:@default=no@:>@]),
@@ -1474,11 +1722,6 @@ AC_ARG_ENABLE(airpcap,
        AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
   fi
 )
-#
-# Define HAVE_AIRPDCAP
-# We'll want to remove this eventually.
-#
-AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 # AC_C_CONST
@@ -1498,63 +1741,48 @@ AC_C_BIGENDIAN
 # XXX - do we need this?
 AC_PROG_GCC_TRADITIONAL
 
-GETOPT_C=""
-GETOPT_O=""
+GETOPT_LO=""
 AC_CHECK_FUNC(getopt,
-  [GETOPT_O=""
+  [GETOPT_LO=""
    AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
   ],
-  GETOPT_O="wsgetopt.o"
+  GETOPT_LO="wsgetopt.lo"
 )
 if test "$ac_cv_func_getopt" = no ; then
-  GETOPT_C="wsgetopt.c"
-  GETOPT_O="wsgetopt.o"
+  GETOPT_LO="wsgetopt.lo"
 fi
-AC_SUBST(GETOPT_C)
-AC_SUBST(GETOPT_O)
+AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
+AC_SUBST(GETOPT_LO)
 
-AC_CHECK_FUNC(strerror, STRERROR_O="",
-  [STRERROR_O="strerror.o"
+AC_CHECK_FUNC(strerror, STRERROR_LO="",
+  [STRERROR_LO="strerror.lo"
    AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
 ])
 if test "$ac_cv_func_strerror" = no ; then
-  STRERROR_C="strerror.c"
-  STRERROR_O="strerror.o"
+  STRERROR_LO="strerror.lo"
 fi
-AC_SUBST(STRERROR_C)
-AC_SUBST(STRERROR_O)
+AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
+AC_SUBST(STRERROR_LO)
 
-AC_CHECK_FUNC(strncasecmp, STRNCASECMP_O="",
-  STRNCASECMP_O="strncasecmp.o")
+AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
+  STRNCASECMP_LO="strncasecmp.lo")
 if test "$ac_cv_func_strncasecmp" = no ; then
-  STRNCASECMP_C="strncasecmp.c"
-  STRNCASECMP_O="strncasecmp.o"
+  STRNCASECMP_LO="strncasecmp.lo"
 fi
-AC_SUBST(STRNCASECMP_C)
-AC_SUBST(STRNCASECMP_O)
+AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
+AC_SUBST(STRNCASECMP_LO)
 
 AC_CHECK_FUNCS(mkstemp mkdtemp)
 
-#
-# XXX - if inet_aton isn't found, the build fails, with a complaint from
-# libtool about inet_aton.lo not being a valid libtool object.  We
-# probably have to handle it - and all the other replacement functions that
-# get built into libwireshark - differently.
-#
 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
     have_inet_aton=no)
 if test "$have_inet_aton" = no; then
-  INET_ATON_C="inet_aton.c"
-  INET_ATON_O="inet_aton.o"
   INET_ATON_LO="inet_aton.lo"
   AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
 else
-  INET_ATON_C=""
-  INET_ATON_O=""
   INET_ATON_LO=""
 fi
-AC_SUBST(INET_ATON_C)
-AC_SUBST(INET_ATON_O)
+AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
 AC_SUBST(INET_ATON_LO)
 
 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
@@ -1579,16 +1807,11 @@ have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
 have_inet_pton=no])],
 have_inet_pton=no)
 if test "$have_inet_pton" = no; then
-  INET_PTON_C="inet_pton.c"
-  INET_PTON_O="inet_pton.o"
   INET_PTON_LO="inet_pton.lo"
 else
-  INET_PTON_C=""
-  INET_PTON_O=""
   INET_PTON_LO=""
 fi
-AC_SUBST(INET_PTON_C)
-AC_SUBST(INET_PTON_O)
+AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
 AC_SUBST(INET_PTON_LO)
 
 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
@@ -1614,31 +1837,28 @@ extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
       AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
       [Define if inet_ntop() prototype exists])], [
       AC_MSG_RESULT(no)])])
-  INET_NTOP_O=""
   INET_NTOP_LO=""], [
-  INET_NTOP_C="inet_ntop.c"
-  INET_NTOP_O="inet_ntop.o"
   INET_NTOP_LO="inet_ntop.lo"
   AC_DEFINE(NEED_INET_V6DEFS_H, 1,
   [Define if inet/v6defs.h needs to be included])])
-AC_SUBST(INET_NTOP_C)
-AC_SUBST(INET_NTOP_O)
+AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
 AC_SUBST(INET_NTOP_LO)
 
-AC_CHECK_FUNC(strptime, STRPTIME_O="",
-  [STRPTIME_O="strptime.o"
+AC_CHECK_FUNC(strptime, STRPTIME_LO="",
+  [STRPTIME_LO="strptime.lo"
    AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
 ])
 if test "$ac_cv_func_strptime" = no ; then
-  STRPTIME_C="strptime.c"
-  STRPTIME_O="strptime.o"
+  STRPTIME_LO="strptime.lo"
 fi
 AC_SUBST(STRPTIME_C)
-AC_SUBST(STRPTIME_O)
+AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
+AC_SUBST(STRPTIME_LO)
 
 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
 AC_CHECK_FUNCS(issetugid)
 AC_CHECK_FUNCS(mmap mprotect sysconf)
+AC_CHECK_FUNCS(strtoll)
 
 dnl blank for now, but will be used in future
 AC_SUBST(wireshark_SUBDIRS)
@@ -1694,29 +1914,21 @@ then
 fi
 AC_SUBST(ENABLE_STATIC)
 
-AC_ARG_ENABLE(new-packet-list,
-  AC_HELP_STRING( [--enable-new-packet-list],
-                  [use new packet list feature.  @<:@default=yes@:>@]),
-                  new_packet_list=$enableval,new_packet_list=yes)
-AC_MSG_CHECKING(if new packet list is used);
-if test "x$new_packet_list" = "xyes" ; then
-       AC_MSG_RESULT(yes)
-       CFLAGS=" -DNEW_PACKET_LIST $CFLAGS"
-else
-       AC_MSG_RESULT(no)
-fi
-
 dnl Save the cacheable configure results to config.cache before recursing
 AC_CACHE_SAVE
 
 sinclude(plugins/Custom.m4) dnl
 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
 
+sinclude(asn1/Custom.m4) dnl
+ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
+
 AM_CONFIG_HEADER(config.h)
 AC_OUTPUT(
   Makefile
   doxygen.cfg
   asn1/Makefile
+  _CUSTOM_ASN1_AC_OUTPUT_
   asn1/acp133/Makefile
   asn1/acse/Makefile
   asn1/ansi_map/Makefile
@@ -1736,6 +1948,7 @@ AC_OUTPUT(
   asn1/ftam/Makefile
   asn1/gnm/Makefile
   asn1/goose/Makefile
+  asn1/gprscdr/Makefile
   asn1/gsm_map/Makefile
   asn1/h225/Makefile
   asn1/h235/Makefile
@@ -1750,6 +1963,7 @@ AC_OUTPUT(
   asn1/h501/Makefile
   asn1/HI2Operations/Makefile
   asn1/hnbap/Makefile
+  asn1/idmp/Makefile
   asn1/inap/Makefile
   asn1/kerberos/Makefile
   asn1/ldap/Makefile
@@ -1761,11 +1975,15 @@ AC_OUTPUT(
   asn1/nbap/Makefile
   asn1/ns_cert_exts/Makefile
   asn1/ocsp/Makefile
+  asn1/p1/Makefile
+  asn1/p22/Makefile
   asn1/p7/Makefile
+  asn1/p772/Makefile
   asn1/pcap/Makefile
   asn1/pkcs1/Makefile
   asn1/pkcs12/Makefile
   asn1/pkinit/Makefile
+  asn1/pkixac/Makefile
   asn1/pkix1explicit/Makefile
   asn1/pkix1implicit/Makefile
   asn1/pkixproxy/Makefile
@@ -1783,19 +2001,18 @@ AC_OUTPUT(
   asn1/rtse/Makefile
   asn1/rua/Makefile
   asn1/s1ap/Makefile
-  asn1/s4406/Makefile
   asn1/sabp/Makefile
   asn1/smrse/Makefile
   asn1/snmp/Makefile
   asn1/spnego/Makefile
+  asn1/sv/Makefile
   asn1/t125/Makefile
   asn1/t38/Makefile
   asn1/tcap/Makefile
+  asn1/tetra/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
@@ -1809,6 +2026,8 @@ AC_OUTPUT(
   epan/doxygen.cfg
   epan/dfilter/Makefile
   epan/dissectors/Makefile
+  epan/dissectors/dcerpc/Makefile
+  epan/dissectors/pidl/Makefile
   epan/ftypes/Makefile
   epan/wslua/Makefile
   epan/wspython/Makefile
@@ -1832,13 +2051,11 @@ AC_OUTPUT(
   plugins/ethercat/Makefile
   plugins/giop/Makefile
   plugins/gryphon/Makefile
-  plugins/interlink/Makefile
   plugins/irda/Makefile
   plugins/m2m/Makefile
   plugins/mate/Makefile
   plugins/opcua/Makefile
   plugins/profinet/Makefile
-  plugins/sercosiii/Makefile
   plugins/stats_tree/Makefile
   plugins/unistim/Makefile
   plugins/wimax/Makefile
@@ -1855,12 +2072,25 @@ dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
 
 # Pretty messages
 
+if test "x$enable_setcap_install" = "xyes" ; then
+       setcap_message="yes"
+else
+       setcap_message="no"
+fi
+
+
 if test "x$enable_setuid_install" = "xyes" ; then
        setuid_message="yes"
 else
        setuid_message="no"
 fi
 
+if test "x$DUMPCAP_GROUP" = "x" ; then
+       dumpcap_group_message="(none)"
+else
+       dumpcap_group_message="$DUMPCAP_GROUP"
+fi
+
 if test "x$want_zlib" = "xno" ; then
        zlib_message="no"
 else
@@ -1884,10 +2114,10 @@ else
        lua_message="no"
 fi
 
-if test "x$want_python" = "xyes"; then
-        python_message="yes"
-else
+if test "x$want_python" = "xno"; then
         python_message="no"
+else
+        python_message="yes"
 fi
 
 if test "x$want_portaudio" = "xyes" ; then
@@ -1917,7 +2147,11 @@ fi
 if test "x$have_good_adns" = "xyes" ; then
        adns_message="yes"
 else
-       adns_message="no"
+       if test "x$have_good_c_ares" = "xyes" ; then
+               adns_message="no (using c-ares instead)"
+       else
+               adns_message="no"
+       fi
 fi
 
 if test "x$have_good_libcap" = "xyes" ; then
@@ -1946,10 +2180,13 @@ echo "                      Build randpkt : $enable_randpkt"
 echo "                       Build dftest : $enable_dftest"
 echo "                     Build rawshark : $enable_rawshark"
 echo ""
+echo "   Save files as pcap-ng by default : $enable_pcap_ng_default"
+echo "  Install dumpcap with capabilities : $setcap_message"
 echo "             Install dumpcap setuid : $setuid_message"
+echo "                  Use dumpcap group : $dumpcap_group_message"
 echo "                        Use plugins : $have_plugins"
-echo "                    Use lua library : $lua_message"
-echo "                 Use python binding : $python_message"
+echo "                    Use Lua library : $lua_message"
+echo "                 Use Python binding : $python_message"
 echo "                   Build rtp_player : $portaudio_message"
 echo "                        Use threads : $enable_threads"
 echo "             Build profile binaries : $enable_profile_build"