Fix a couple (value) mistakes in value_strings. Found by Martin's patch on the ...
[obnox/wireshark/wip.git] / configure.in
index 2c25d1884935ea043de7262a087559cf114773e2..ebc7ea47a883d5e04275a785365a7f2c28ec4ef4 100644 (file)
@@ -2,7 +2,7 @@
 #
 AC_PREREQ(2.60)
 
-AC_INIT(wireshark, 1.5.2)
+AC_INIT(wireshark, 1.7.0)
 
 dnl Check for CPU / vendor / OS
 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
@@ -128,15 +128,37 @@ AC_SUBST(XSLTPROC)
 AC_SUBST(XMLLINT)
 
 #
-# Set CLANG if the compiler is clang, to handle compiler options
-# supported both by GCC and clang.  (This does *not* include
-# -no-cpp-precomp; clang says "clang: warning: argument unused during
-# compilation: '-no-cpp-precomp'" if you use it.)
+# 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.
 #
-if test "x$GCC" != "xyes" ; then
-       if test "x$CC" = "xclang" ; then
-               CLANG=yes
-       fi
+# 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
@@ -307,7 +329,6 @@ AC_ARG_ENABLE(extra-gcc-checks,
                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)
@@ -321,7 +342,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.
@@ -342,15 +370,26 @@ 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)
-# Use the faster pre gcc 4.5 floating point precision
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition)
+AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
+
+#
+# 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_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
-###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,-M])
-###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--cref])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
-# AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
+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 or clang, add '-D_U_="__attribute__((unused))"' to
@@ -361,14 +400,15 @@ AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
 #
 # XXX - other compilers?
 #
-if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
+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 or clang, 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, ...)
 #
@@ -378,7 +418,7 @@ AC_ARG_ENABLE(warnings-as-errors,
   AC_HELP_STRING( [--enable-warnings-as-errors],
                  [Treat warnings as errors (only for GCC or clang). @<:@default=yes@:>@]),
 [
-  if test \( "x$GCC" = "xyes" -o "x$CLANG" = "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
@@ -386,7 +426,7 @@ AC_ARG_ENABLE(warnings-as-errors,
     AC_MSG_RESULT(no)
   fi
 ],
-  if test \( "x$GCC" = "xyes" -o "x$CLANG" = "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
@@ -415,8 +455,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)
@@ -444,8 +499,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)
@@ -663,6 +733,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@:>@]),
@@ -766,7 +844,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
@@ -776,7 +854,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
 
 #
@@ -1180,11 +1258,11 @@ 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@:>@]),
+                 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression .  @<:@default=yes, if available@:>@]),
 [
        if test $withval = no
        then
@@ -1209,17 +1287,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
 
-if test "x$want_zlib" != "xno" ; then
-       AC_CHECK_LIB(z, gzclearerr,
-       [
-               AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
-       ])
-fi
-
 dnl pcre check
 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
 
@@ -1400,6 +1475,9 @@ AC_ARG_WITH(dumpcap-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