get libsmi into the picture
[obnox/wireshark/wip.git] / configure.in
index fcf9df0827cbd1a07fad1a21f5f4587ce84154f5..160c90906834e92908c2ef5d22d8a7707b0c324e 100644 (file)
@@ -14,7 +14,7 @@ dnl AC_CANONICAL_HOST
 dnl AC_CANONICAL_BUILD
 AC_CANONICAL_TARGET
 
-AM_INIT_AUTOMAKE(wireshark, 0.99.6)
+AM_INIT_AUTOMAKE(wireshark, 0.99.7)
 
 AM_DISABLE_STATIC
 
@@ -76,7 +76,13 @@ AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
 
 # gnu tls
-AM_PATH_LIBGNUTLS(1.0.0,
+tls_message="no"
+AC_ARG_WITH([gnutls],
+  AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
+                 [use gnutls library @<:@default=yes@:>@]),
+  with_gnutls="$withval", with_gnutls="yes")
+if test "x$with_gnutls" = "xyes"; then
+  AM_PATH_LIBGNUTLS(1.0.0,
         [
                 echo "gnuTLS found, enabling ssl decryption"
                 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
@@ -90,10 +96,17 @@ AM_PATH_LIBGNUTLS(1.0.0,
                         tls_message="no"
                 fi
         ]
-)
+  )
+fi
 
 # libgrypt
-AM_PATH_LIBGCRYPT(1.1.42,
+gcrypt_message="no"
+AC_ARG_WITH([gcrypt],
+  AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
+                 [use gcrypt library @<:@default=yes@:>@]),
+  with_gcrypt="$withval", with_gcrypt="yes")
+if test "x$with_gcrypt" = "xyes"; then
+  AM_PATH_LIBGCRYPT(1.1.42,
         [
                 echo "libgcrypt found, enabling ipsec decryption"
                 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
@@ -103,11 +116,23 @@ AM_PATH_LIBGCRYPT(1.1.42,
                 if test x$libgcrypt_config_prefix != x ; then
                        AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
                 else
-                        echo echo "libgcrypt not found, disabling ipsec decryption"
+                        echo "libgcrypt not found, disabling ipsec decryption"
                         gcrypt_message="no"
                 fi
         ]
-)
+  )
+fi
+
+# libsmi
+libsmi_message="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, "x$with_libsmi" = "xyes")
+fi
 
 # Check for xsltproc
 AC_PATH_PROG(XSLTPROC, xsltproc)
@@ -148,81 +173,66 @@ AC_WIRESHARK_RPM_CHECK
 AC_SUBST(HAVE_RPM)
 
 #
-# If we're running gcc, add '-Wall -W' to CFLAGS, and add
-# '-D_U_="__attribute__((unused))"' as well, so we can use _U_ to
-# flag unused function arguments and not get warnings about them.
-# If "--with-extra-gcc-checks" was specified, add some additional
-# warning checks.
-#
-# Otherwise, add '-D_U_=""', so that _U_ used to flag an unused function
-# argument will compile with non-GCC compilers.
+# Try to add some additional gcc checks to CFLAGS
 #
-AC_ARG_WITH(extra-gcc-checks,
-  AC_HELP_STRING( [--with-extra-gcc-checks],
-                 [Do additional -W checks in GCC.  [default=no]]),
+AC_ARG_ENABLE(extra-gcc-checks,
+  AC_HELP_STRING( [--enable-extra-gcc-checks],
+                 [Do additional -W checks in GCC.  @<:@default=no@:>@]),
 [
-       if test $withval != no
+       wireshark_extra_gcc_flags=$enableval
+       if test $enableval != no
        then
-               wireshark_extra_gcc_flags=" -Wcast-qual -Wcast-align -Wbad-function-cast -pedantic -Wstrict-prototypes -Wmissing-declarations -Wwrite-strings"
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
+               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(-Wwrite-strings)
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
+               #Temporarily put cast-align here waiting eradication of 'cast
+               #increases required alignment of target type' on the Solaris
+               #slave. 
+               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
        fi
 ],)
-AC_MSG_CHECKING(whether we can add '-Wall -W$wireshark_extra_gcc_flags' to CFLAGS)
-if test "x$GCC" != "x" ; then
-  CFLAGS="-D_U_=\"__attribute__((unused))\" -Wall -Wpointer-arith -W $wireshark_extra_gcc_flags $CFLAGS"
-  AC_MSG_RESULT(yes)
-else
-  CFLAGS="-D_U_=\"\" $CFLAGS"
-  AC_MSG_RESULT(no)
-fi
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W)
+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_MSG_CHECKING(whether we can add '-Wdeclaration-after-statement' to CFLAGS)
-if test "x$GCC" = "xyes" ; then
-  # some versions of GCC support this directive
-  rm -rf conftest*
-  echo "int foo;" >>conftest.c
-  if $CC -c -o conftest.o conftest.c -Wdeclaration-after-statement > /dev/null 2>&1 ; then
-    CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-    AC_MSG_RESULT(yes)
-  else
-    AC_MSG_RESULT(no)
-  fi
-else
-  # non-gcc compilers do not support this directive
-  AC_MSG_RESULT(no)
-fi
-rm -rf conftest*
-
-AC_MSG_CHECKING(whether we can add '-Wno-pointer-sign' to CFLAGS)
+#
+# 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 test "x$GCC" = "xyes" ; then
-  # some versions of GCC support this directive
-  rm -rf conftest*
-  echo "int foo;" >>conftest.c
-  if $CC -c -o conftest.o conftest.c -Wno-pointer-sign > /dev/null 2>&1 ; then
-    CFLAGS="$CFLAGS -Wno-pointer-sign"
-    AC_MSG_RESULT(yes)
-  else
-    AC_MSG_RESULT(no)
-  fi
+  CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
 else
-  # non-gcc compilers do not support this directive
-  AC_MSG_RESULT(no)
+  CFLAGS="-D_U_=\"\" $CFLAGS"
 fi
-rm -rf conftest*
 
+#
+# If we're running gcc, will 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  (lex, ans2wrs, idl2wrs, ...)
+#
 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
-AC_ARG_WITH(warnings-as-errors,
-  AC_HELP_STRING( [--with-warnings-as-errors], 
-                 [Treat warnings as errors (only for gcc). [default=yes]]),
+AC_ARG_ENABLE(warnings-as-errors,
+  AC_HELP_STRING( [--enable-warnings-as-errors], 
+                 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
 [
-  if test "x$GCC" != "x" && test "x$withval" != "xno"; then
-    with_warnings_as_errors="no"
-    AC_MSG_RESULT(no)
-  else
+  if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
     with_warnings_as_errors="yes"
     AC_MSG_RESULT(yes)
+  else
+    with_warnings_as_errors="no"
+    AC_MSG_RESULT(no)
   fi
 ],
-  if test "x$GCC" != "x" && test "x$wireshark_extra_gcc_flags" = "x"; then
+  if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x"; then
     with_warnings_as_errors="yes"
     AC_MSG_RESULT(yes)
   else
@@ -236,8 +246,29 @@ AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes
 # Add any platform-specific compiler flags needed.
 #
 AC_MSG_CHECKING(for platform-specific compiler flags)
-if test "x$GCC" = x
-then
+if test "x$GCC" = "xyes" ; then
+       #
+       # GCC - do any platform-specific tweaking necessary.
+       #
+       case "$host_os" in
+       solaris*)
+               # the X11 headers don't automatically include prototype info
+               # and a lot don't include the return type
+               CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
+               AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
+               ;;
+       darwin*)
+               #
+               # See comments above about Apple's lovely C compiler.
+               #
+               CFLAGS="-no-cpp-precomp $CFLAGS"
+               AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
+               ;;
+       *)
+               AC_MSG_RESULT(none needed)
+               ;;
+       esac
+else
        #
        # Not GCC - assume it's the vendor's compiler.
        #
@@ -266,25 +297,6 @@ then
                AC_MSG_RESULT(none needed)
                ;;
        esac
-else
-       case "$host_os" in
-       solaris*)
-               # the X11 headers don't automatically include prototype info
-               # and a lot don't include the return type
-               CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
-               AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
-               ;;
-       darwin*)
-               #
-               # See comments above about Apple's lovely C compiler.
-               #
-               CFLAGS="-no-cpp-precomp $CFLAGS"
-               AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
-               ;;
-       *)
-               AC_MSG_RESULT(none needed)
-               ;;
-       esac
 fi
 
 #
@@ -381,7 +393,9 @@ dnl XXX FIXME don't include /usr/local if it is already in the system
 dnl search path as this causes gcc 3.2 on Linux to complain about a change
 dnl of the system search order for includes
 AC_ARG_ENABLE(usr-local,
-[  --enable-usr-local      look for headers and libs in /usr/local tree.  [default=yes]],ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
+  AC_HELP_STRING( [--enable-usr-local],
+                  [look for headers and libs in /usr/local tree.  @<:@default=yes@:>@]),
+    ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
 
 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
@@ -457,22 +471,30 @@ fi
 # Enable/disable tshark
 
 AC_ARG_ENABLE(wireshark,
-[  --enable-wireshark       build GTK+-based wireshark.  [default=yes]],enable_wireshark=$enableval,enable_wireshark=yes)
+  AC_HELP_STRING( [--enable-wireshark],
+                  [build GTK+-based wireshark.  @<:@default=yes, if GTK+ available@:>@]),
+    enable_wireshark=$enableval,enable_wireshark=yes)
 
 AC_ARG_ENABLE(gtk2,
-[  --disable-gtk2          build Glib1/Gtk1+-based wireshark.  [default=no]],enable_gtk2=$enableval,enable_gtk2=yes)
+  AC_HELP_STRING( [--disable-gtk2],
+                  [build Glib1/Gtk1+-based wireshark/tshark.  @<:@default=no@:>@]),
+    enable_gtk2=$enableval,enable_gtk2=yes)
 AM_CONDITIONAL(USE_GTK2, test x$enable_gtk2 = xyes)
 
 AC_ARG_ENABLE(threads,
-[  --enable-threads        use threads in wireshark.  [default=no]],enable_threads=$enableval,enable_threads=no)
+  AC_HELP_STRING( [--enable-threads],
+                  [use threads in wireshark.  @<:@default=no@:>@]),
+    enable_threads=$enableval,enable_threads=no)
 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
 
 AC_ARG_ENABLE(profile-build,
-[  --enable-profile-build  build profile-ready binaries.  [default=no]],enable_profile_build=$enableval,enable_profile_build=no)
+  AC_HELP_STRING( [--enable-profile-build],
+                 [build profile-ready binaries.  @<:@default=no@:>@]),
+    enable_profile_build=$enableval,enable_profile_build=no)
 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 -n "$GCC" ; then
+       if test "x$GCC" = "xyes" ; then
                AC_MSG_RESULT(yes)
                CFLAGS=" -pg $CFLAGS"
        else
@@ -499,10 +521,10 @@ AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
 # 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_gtk2" = "xyes" -a "x$enable_wireshark" = "xyes" ; then
+if test "x$enable_gtk2" = "xyes" -a "x$enable_wireshark" = "xyes"; then
        GTK_OK=two
        AM_PATH_GTK_2_0(2.0.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no, gthread)
-elif test "x$enable_gtk2" != "xyes" -a "x$enable_wireshark" = "xyes" ; then
+elif test "x$enable_gtk2" != "xyes" -a "x$enable_wireshark" = "xyes"; then
        GTK_OK=one
        AM_PATH_GTK(1.2.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no )
 else
@@ -520,7 +542,16 @@ fi
 # programs to be built with GLib.
 #
 if test "$GTK_OK" = "no" ; then
-       enable_wireshark="no"
+       #
+       # We don't have GTK+.
+       # If they didn't explicitly say "--disable-wireshark", fail (so
+       # that, unless they explicitly indicated that they don't want
+       # Wireshark, we stop so they know they won't be getting
+       # Wireshark unless they fix the GTK+ problem).
+       #
+       if test "x$enable_wireshark" = "xyes"; then
+               AC_MSG_ERROR([GTK+ isn't available, so Wireshark can't be compiled])
+       fi
        wireshark_bin=""
        wireshark_man=""
        # Honor GLIB_CFLAGS
@@ -647,7 +678,9 @@ AC_SUBST(rdps_bin)
 # Enable/disable tshark
 
 AC_ARG_ENABLE(tshark,
-[  --enable-tshark      build tshark.  [default=yes]],tshark=$enableval,enable_tshark=yes)
+  AC_HELP_STRING( [--enable-tshark],
+                  [build tshark.  @<:@default=yes@:>@]),
+    tshark=$enableval,enable_tshark=yes)
 
 if test "x$enable_tshark" = "xyes" ; then
        tshark_bin="tshark\$(EXEEXT)"
@@ -666,7 +699,9 @@ AC_SUBST(wiresharkfilter_man)
 # Enable/disable editcap
 
 AC_ARG_ENABLE(editcap,
-[  --enable-editcap        build editcap.  [default=yes]],enable_editcap=$enableval,enable_editcap=yes)
+  AC_HELP_STRING( [--enable-editcap],
+                  [build editcap.  @<:@default=yes@:>@]),
+    enable_editcap=$enableval,enable_editcap=yes)
 
 if test "x$enable_editcap" = "xyes" ; then
        editcap_bin="editcap\$(EXEEXT)"
@@ -678,27 +713,15 @@ fi
 AC_SUBST(editcap_bin)
 AC_SUBST(editcap_man)
 
-
-# Enable/disable dumpcap
-
-AC_ARG_ENABLE(dumpcap,
-[  --enable-dumpcap        build dumpcap.  [default=yes]],enable_dumpcap=$enableval,enable_dumpcap=yes)
-
-if test "x$enable_dumpcap" = "xyes" ; then
-       dumpcap_bin="dumpcap\$(EXEEXT)"
-       dumpcap_man="dumpcap.1"
-else
-       dumpcap_bin=""
-       dumpcap_man=""
-fi
-AC_SUBST(dumpcap_bin)
-AC_SUBST(dumpcap_man)
-
+# Enabling/disabling of dumpcap is done later (after we know if we have PCAP
+# or not)
 
 # Enable/disable capinfos
 
 AC_ARG_ENABLE(capinfos,
-[  --enable-capinfos       build capinfos.  [default=yes]],enable_capinfos=$enableval,enable_capinfos=yes)
+  AC_HELP_STRING( [--enable-capinfos],
+                  [build capinfos.  @<:@default=yes@:>@]),
+    enable_capinfos=$enableval,enable_capinfos=yes)
 
 if test "x$enable_capinfos" = "xyes" ; then
        capinfos_bin="capinfos\$(EXEEXT)"
@@ -714,7 +737,9 @@ AC_SUBST(capinfos_man)
 # Enable/disable mergecap
 
 AC_ARG_ENABLE(mergecap,
-[  --enable-mergecap       build mergecap.  [default=yes]],enable_mergecap=$enableval,enable_mergecap=yes)
+  AC_HELP_STRING( [--enable-mergecap],
+                  [build mergecap.  @<:@default=yes@:>@]),
+    enable_mergecap=$enableval,enable_mergecap=yes)
 
 if test "x$enable_mergecap" = "xyes" ; then
        mergecap_bin="mergecap\$(EXEEXT)"
@@ -730,7 +755,9 @@ AC_SUBST(mergecap_man)
 # Enable/disable text2pcap
 
 AC_ARG_ENABLE(text2pcap,
-[  --enable-text2pcap      build text2pcap.  [default=yes]],text2pcap=$enableval,enable_text2pcap=yes)
+  AC_HELP_STRING( [--enable-text2pcap],
+                  [build text2pcap.  @<:@default=yes@:>@]),
+    text2pcap=$enableval,enable_text2pcap=yes)
 
 if test "x$enable_text2pcap" = "xyes" ; then
        text2pcap_bin="text2pcap\$(EXEEXT)"
@@ -745,7 +772,9 @@ AC_SUBST(text2pcap_man)
 # Enable/disable idl2wrs
 
 AC_ARG_ENABLE(idl2wrs,
-[  --enable-idl2wrs        build idl2wrs.  [default=yes]],enable_idl2wrs=$enableval,enable_idl2wrs=yes)
+  AC_HELP_STRING( [--enable-idl2wrs],
+                  [build idl2wrs.  @<:@default=yes@:>@]),
+    enable_idl2wrs=$enableval,enable_idl2wrs=yes)
 
 if test "x$enable_idl2wrs" = "xyes" ; then
        idl2wrs_bin="idl2wrs"
@@ -761,7 +790,9 @@ AC_SUBST(idl2wrs_man)
 # Enable/disable dftest
 
 AC_ARG_ENABLE(dftest,
-[  --enable-dftest         build dftest.  [default=yes]],enable_dftest=$enableval,enable_dftest=yes)
+  AC_HELP_STRING( [--enable-dftest],
+                  [build dftest.  @<:@default=yes@:>@]),
+    enable_dftest=$enableval,enable_dftest=yes)
 
 if test "x$enable_dftest" = "xyes" ; then
        dftest_bin="dftest\$(EXEEXT)"
@@ -774,7 +805,9 @@ AC_SUBST(dftest_bin)
 # Enable/disable randpkt
 
 AC_ARG_ENABLE(randpkt,
-[  --enable-randpkt        build randpkt.  [default=yes]],enable_randpkt=$enableval,enable_randpkt=yes)
+  AC_HELP_STRING( [--enable-randpkt],
+                  [build randpkt.  @<:@default=yes@:>@]),
+    enable_randpkt=$enableval,enable_randpkt=yes)
 
 if test "x$enable_randpkt" = "xyes" ; then
        randpkt_bin="randpkt\$(EXEEXT)"
@@ -796,7 +829,8 @@ dnl pcap check
 AC_MSG_CHECKING(whether to use libpcap for packet capture)
 
 AC_ARG_WITH(pcap,
-[  --with-pcap[[=DIR]]       use libpcap for packet capturing.  [[default=yes]]],
+  AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
+                  [use libpcap for packet capturing.  @<:@default=yes@:>@]),
 [
        if test $withval = no
        then
@@ -819,11 +853,43 @@ else
        AC_WIRESHARK_PCAP_CHECK
 fi
 
+# Enable/disable dumpcap
+
+dnl dumpcap check
+AC_MSG_CHECKING(whether to build dumpcap)
+
+AC_ARG_ENABLE(dumpcap,
+  AC_HELP_STRING( [--enable-dumpcap],
+                  [build dumpcap.  @<:@default=yes@:>@]),
+    enable_dumpcap=$enableval,enable_dumpcap=yes)
+
+if test "x$enable_dumpcap" = "xyes" ; then
+       if test "x$want_pcap" = "xno" ; then
+               enable_dumpcap=no
+               AC_MSG_RESULT(pcap not available - disabling dumpcap)
+       else
+               AC_MSG_RESULT(yes)
+       fi
+else
+       AC_MSG_RESULT(no)
+fi
+
+if test "x$enable_dumpcap" = "xyes" ; then
+       dumpcap_bin="dumpcap\$(EXEEXT)"
+       dumpcap_man="dumpcap.1"
+else
+       dumpcap_bin=""
+       dumpcap_man=""
+fi
+AC_SUBST(dumpcap_bin)
+AC_SUBST(dumpcap_man)
+
 dnl zlib check
 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
 
 AC_ARG_WITH(zlib,
-[  --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) to read compressed data.  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -857,7 +923,8 @@ dnl pcre check
 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
 
 AC_ARG_WITH(pcre,
-[  --with-pcre[[=DIR]]       use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions.  [[default=yes, if available]]],
+  AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
+                  [use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions.  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -891,7 +958,8 @@ dnl lua check
 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
 
 AC_ARG_WITH(lua,
-[  --with-lua[[=DIR]]        use liblua (located in directory DIR, if supplied) for the lua scripting plugin.  [[default=no]]],
+  AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
+                  [use liblua (located in directory DIR, if supplied) for the lua scripting plugin.  @<:@default=no@:>@]),
 [
        if test $withval = no
        then
@@ -926,7 +994,8 @@ dnl portaudio check
 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
 
 AC_ARG_WITH(portaudio,
-[  --with-portaudio[[=DIR]]  use libportaudio (located in directory DIR, if supplied) for the rtp_player.  [[default=yes, if available]]],
+  AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
+                  [use libportaudio (located in directory DIR, if supplied) for the rtp_player.  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -959,7 +1028,9 @@ AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
 
 dnl ipv6 check
 AC_ARG_ENABLE(ipv6,
-[  --enable-ipv6           use ipv6 name resolution, if available.  [default=yes]],enable_ipv6=$enableval,enable_ipv6=yes)
+  AC_HELP_STRING( [--enable-ipv6],
+                  [use ipv6 name resolution, if available.  @<:@default=yes@:>@]),
+    enable_ipv6=$enableval,enable_ipv6=yes)
 
 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
 if test "x$enable_ipv6" = "xno" ; then
@@ -972,7 +1043,9 @@ fi
 
 dnl Check if wireshark should be installed setuid
 AC_ARG_ENABLE(setuid-install,
-[  --enable-setuid-install install wireshark as setuid. DANGEROUS!!! [default=no]],enable_setuid_install=$enableval,enable_setuid_install=no)
+  AC_HELP_STRING( [--enable-setuid-install],
+                  [install wireshark as setuid. DANGEROUS!!! @<:@default=no@:>@]),
+    enable_setuid_install=$enableval,enable_setuid_install=no)
 
 AC_MSG_CHECKING(whether to install wireshark setuid)
 if test "x$enable_setuid_install" = "xno" ; then
@@ -1002,7 +1075,8 @@ SSL_LIBS=''
 AC_MSG_CHECKING(whether to use SSL library)
 
 AC_ARG_WITH(ssl,
-[  --with-ssl[[=DIR]]        use SSL crypto library (located in directory DIR, if supplied).   [[default=no]]],
+  AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
+                  [use SSL crypto library (located in directory DIR, if supplied).   @<:@default=no@:>@]),
 [
 if test "x$withval" = "xno";  then
        want_ssl=no
@@ -1033,7 +1107,8 @@ dnl Net-SNMP Check
 SNMP_LIBS=''
 
 AC_ARG_WITH(net-snmp,
-[  --with-net-snmp[[=PATH]]  use Net-SNMP library (with PATH as the location of the net-snmp-config shell script that comes with the net-snmp package, if supplied)  [[default=yes, if available]]],
+  AC_HELP_STRING( [--with-net-snmp@<:@=PATH@:>@],
+                  [use Net-SNMP library (with PATH as the location of the net-snmp-config shell script that comes with the net-snmp package, if supplied)  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -1079,7 +1154,8 @@ dnl kerberos check
 AC_MSG_CHECKING(whether to use kerberos)
 
 AC_ARG_WITH(krb5,
-[  --with-krb5[[=DIR]]       use kerberos (located in directory DIR, if supplied) to use in kerberos dissection  [[default=yes]]],
+  AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
+                  [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection  @<:@default=yes@:>@]),
 [
        if test $withval = no
        then
@@ -1111,7 +1187,8 @@ ADNS_LIBS=''
 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
 
 AC_ARG_WITH(adns,
-[  --with-adns[[=DIR]]       use GNU ADNS (located in directory DIR, if supplied).   [[default=yes, if present]]],
+  AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
+                  [use GNU ADNS (located in directory DIR, if supplied).   @<:@default=yes, if present@:>@]),
 [
 if   test "x$withval" = "xno";  then
        want_adns=no
@@ -1157,6 +1234,47 @@ AC_C_BIGENDIAN
 # XXX - do we need this?
 AC_PROG_GCC_TRADITIONAL
 
+#
+# Does GLib define G_GINT64_MODIFIER?
+#
+AC_MSG_CHECKING([[whether glib.h defines the G_GINT64_MODIFIER macro]])
+AC_COMPILE_IFELSE(
+  [
+    AC_LANG_SOURCE(
+      [[
+       #include <glib.h>
+       #if GTK_MAJOR_VERSION >= 2
+       #include <glib/gprintf.h>
+       #endif
+       #include <stdio.h>
+
+       main()
+       {
+         char strbuf[16+1];
+         g_snprintf(strbuf, sizeof strbuf, "%" G_GINT64_MODIFIER "x\n", (gint64)1);
+       }
+      ]])
+  ],
+  [
+    AC_MSG_RESULT(yes)
+  ],
+  [
+    AC_MSG_RESULT(no)
+    AC_WIRESHARK_CHECK_64BIT_FORMAT(l,
+      [
+      AC_WIRESHARK_CHECK_64BIT_FORMAT(ll,
+       [
+         AC_WIRESHARK_CHECK_64BIT_FORMAT(L,
+           [
+             AC_WIRESHARK_CHECK_64BIT_FORMAT(q,
+               [
+                 AC_MSG_ERROR([neither %lx nor %llx nor %Lx nor %qx worked on a 64-bit integer])
+               ])
+           ])
+       ])
+    ])
+  ])
+
 GETOPT_C=""
 GETOPT_O=""
 AC_CHECK_FUNC(getopt, GETOPT_O="",
@@ -1336,44 +1454,28 @@ dnl
 dnl check whether plugins should be enabled and, if they should be,
 dnl check for plugins directory - stolen from Amanda's configure.in
 dnl
-plugindir="$libdir/wireshark/plugins/$VERSION"
+dnl we don't wish to expand ${libdir} yet
+plugindir='${libdir}/wireshark/plugins/${VERSION}'
 AC_ARG_WITH(plugins,
-[  --with-plugins[[=DIR]]    support plugins (installed in DIR, if supplied).],
+  AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
+                  [support plugins (installed in DIR, if supplied).   @<:@default=yes, if possible@:>@]),
 [
-  case "$withval" in
-  "" | y | ye | yes )
-    if test x$have_plugins = xno
-    then
-      AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
-    fi
-    ;;
-  n | no)
+  if test "x$withval" = "xno"; then
     have_plugins=no
-    ;;
-  *)
-    if test x$have_plugins = xno
-    then
+  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.])
-    fi
-    plugindir="$withval"
-    ;;
-  esac
+      if test "x$withval" != "xyes"; then 
+       plugindir="$withval"
+      fi
+  fi
 ])
-
-AM_CONDITIONAL(HAVE_PLUGINS, test x$have_plugins = xyes)
+AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
 if test x$have_plugins = xyes
 then
   AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
-  plugindir=`(
-    test "x$prefix" = xNONE && prefix=$ac_default_prefix
-    test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
-    eval echo "$plugindir"
-  )`
-  AC_DEFINE_UNQUOTED(PLUGIN_DIR, "$plugindir", [Plugin installation directory])
-else
-  AC_DEFINE(PLUGIN_DIR, NULL, [Plugin installation directory])
 fi
 AC_SUBST(plugindir)
+CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
 
 #
 # The plugin dissectors reside in ./plugins/PROTO/
@@ -1438,11 +1540,12 @@ AC_OUTPUT(
   plugins/enttec/Makefile
   plugins/giop/Makefile
   plugins/gryphon/Makefile
-  plugins/h223/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
   plugins/profinet/Makefile
@@ -1451,7 +1554,9 @@ AC_OUTPUT(
   plugins/rudp/Makefile
   plugins/sbus/Makefile
   plugins/stats_tree/Makefile
+  plugins/unistim/Makefile
   plugins/v5ua/Makefile
+  plugins/wimax/Makefile
   tools/Makefile
   tools/idl2wrs.sh
   tools/lemon/Makefile
@@ -1541,6 +1646,7 @@ 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 GNU crypto library : $gcrypt_message"
 echo "             Use SSL crypto library : $ssl_message"
 echo "           Use IPv6 name resolution : $enable_ipv6"