FIXUP: give names to sec_vt_command's
[metze/wireshark/wip.git] / configure.ac
index 4615fe6ff8913175d293cd530dedc6f1ff705d7d..3843403a4ab00cab85c53201e37668a54010bb5d 100644 (file)
@@ -3,11 +3,13 @@
 
 m4_define([version_major], [1])
 m4_define([version_minor], [11])
-m4_define([version_micro], [0])
+m4_define([version_micro], [3])
 m4_define([version_micro_extra], version_micro)
 m4_append([version_micro_extra], [])
 
 AC_INIT(wireshark, [version_major.version_minor.version_micro_extra], http://bugs.wireshark.org/, , http://www.wireshark.org/)
+CONFIG_ARGS="$*"
+AC_SUBST(CONFIG_ARGS)
 
 # Minimum autoconf version we require.
 AC_PREREQ(2.60)
@@ -51,6 +53,9 @@ AC_PROG_CC
 AM_PROG_CC_C_O
 AC_PROG_CXX
 AC_PROG_CPP
+AC_PROG_MKDIR_P
+AC_WIRESHARK_CLANG_CHECK
+
 dnl Work around libtool bug (fixed in the version 1.5a?)
 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
 AC_LIBTOOL_DLOPEN
@@ -470,7 +475,7 @@ AC_SYS_LARGEFILE
 #
 AC_ARG_WITH([qt],
   AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
-                  [use Qt @<:@default=no@:>@]),
+                  [use Qt @<:@default=yes@:>@]),
   with_qt="$withval", with_qt="unspecified")
 
 AC_ARG_WITH([gtk2],
@@ -745,11 +750,17 @@ fi
 AC_SUBST(HAVE_OSX_PACKAGING)
 
 #
-# Some compilers have to be told to fail on unknown warning errors;
+# Some compilers have to be told to fail when passed an unknown -W flag;
 # make sure we do that.
 #
 AC_WIRESHARK_CHECK_UNKNOWN_WARNING_OPTION_ERROR
 
+#
+# Some C++ compilers have to be told to fail when passed a -W flag that
+# they don't think should apply to C++; make sure we do that.
+#
+AC_WIRESHARK_CHECK_NON_CXX_WARNING_OPTION_ERROR
+
 #
 # Try to add some additional gcc checks to CFLAGS
 #
@@ -813,13 +824,17 @@ AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpointer-arith)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-pointer-sign, C)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Warray-bounds)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wformat-security)
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fwrapv)
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-strict-overflow)
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-delete-null-pointer-checks)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wold-style-definition, C)
-AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshorten-64-to-32)
+# The Qt headers generate a ton of shortening errors on 64-bit systems
+# so only enable this for C for now.
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshorten-64-to-32, C)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wstrict-prototypes, C)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wjump-misses-init, C)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wvla)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Waddress)
-AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Warray-bounds)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wattributes)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdiv-by-zero)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wignored-qualifiers)
@@ -828,6 +843,7 @@ AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-overlength-strings)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wwrite-strings)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-long-long)
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wc++-compat, C)
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wheader-guard)
 
 #
 # XXX - OK for C++?
@@ -900,9 +916,9 @@ esac
 #
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fexcess-precision=fast)
 
-CFLAGS_before_fvhidden=$CFLAGS
+CFLAGS_before_fvhidden="$CFLAGS"
 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fvisibility=hidden)
-if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
+if test "x$CFLAGS" = "x$CFLAGS_before_fvhidden"
 then
        # TODO add other ways of hiding symbols
        AC_MSG_WARN(Compiler will export all symbols from shared libraries)
@@ -921,14 +937,14 @@ AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
 # privileges, and using PIE means the OS can run it at random locations
 # in the address space to make attacks more difficult.
 #
-CFLAGS_before_pie=$CFLAGS
-AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE, C)
-if test "x$CLFAGS" != "x$CFLAGS_before_pie"
+CFLAGS_before_pie="$CFLAGS"
+AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE)
+if test "x$CFLAGS" != "x$CFLAGS_before_pie"
 then
        # Restore CFLAGS
-       CFLAGS=$CFLAGS_before_pie
+       CFLAGS="$CFLAGS_before_pie"
 
-       LDFLAGS_before_pie=$LDFLAGS
+       LDFLAGS_before_pie="$LDFLAGS"
        AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
        if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
        then
@@ -937,7 +953,7 @@ then
                PIE_LDFLAGS="-pie"
 
                # Restore LDFLAGS
-               LDFLAGS=$LDFLAGS_before_pie
+               LDFLAGS="$LDFLAGS_before_pie"
        fi
 
 fi
@@ -1207,6 +1223,11 @@ esac
 #
 # Add any checks here that are necessary for other OSes.
 #
+AC_PATH_PROG(SED, sed)
+if test "x$SED" = x
+then
+       AC_MSG_ERROR(I couldn't find sed; make sure it's installed and in your path)
+fi
 AC_WIRESHARK_GNU_SED_CHECK
 if test "$HAVE_GNU_SED" = no ; then
        case "$host_os" in
@@ -1238,8 +1259,8 @@ AC_ARG_ENABLE(wireshark,
 
 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)
+                  [add support for packet editor in Wireshark @<:@default=yes@:>@]),
+    enable_packet_editor=$enableval,enable_packet_editor=yes)
 if test x$enable_packet_editor = xyes; then
        AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
 fi
@@ -1323,8 +1344,9 @@ if test "x$enable_wireshark" = "xyes"; then
                "x$with_gtk3" = "xunspecified" -a \
                "x$with_qt" = "xunspecified"; then
                #
-               # No GUI toolkit was explicitly specified; pick GTK+ 3.
+               # No GUI toolkit was explicitly specified; pick Qt and GTK+ 3.
                #
+               with_qt=yes
                with_gtk3=yes
        fi
        if test "x$with_qt" = "xyes"; then
@@ -1343,7 +1365,7 @@ if test "x$enable_wireshark" = "xyes"; then
                [
                        CFLAGS="$CFLAGS $Qt_CFLAGS"
                        CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
-                       have_qt=yes             
+                       have_qt=yes
                        GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-qt"
                        OSX_APP_FLAGS="$OSX_APP_FLAGS -qt"
                        OSX_DMG_FLAGS="-qt"
@@ -1473,7 +1495,13 @@ if test "$have_gtk" = "yes" ; then
 
        CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
        CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
-       CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
+       if test \( $gtk_config_major_version -eq 3 -a $gtk_config_minor_version -ge 10 \) ; then
+               ## Allow use of deprecated & disable deprecated warnings if Gtk >= 3.10;
+               ##  The deprecations in Gtk 3.10 will not be fixed ...
+               CPPFLAGS="-DGDK_DISABLE_DEPRECATION_WARNINGS $CPPFLAGS"
+       else
+               CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
+       fi
        CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
        if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
                # Enable GSEAL when building with GTK > 2.20
@@ -1704,9 +1732,7 @@ AM_CONDITIONAL(HAVE_GTK, test "$have_gtk" = "yes")
 AC_SUBST(OSX_APP_FLAGS)
 AC_SUBST(OSX_DMG_FLAGS)
 
-
 # Enable/disable tshark
-
 AC_ARG_ENABLE(tshark,
   AC_HELP_STRING( [--enable-tshark],
                   [build TShark @<:@default=yes@:>@]),
@@ -1722,9 +1748,23 @@ else
 fi
 AC_SUBST(tshark_bin)
 AC_SUBST(tshark_man)
-AC_SUBST(wiresharkfilter_man)
 
+# Enable/disable tfshark
+AC_ARG_ENABLE(tfshark,
+  AC_HELP_STRING( [--enable-tfshark],
+                  [build TFShark @<:@default=no@:>@]),
+    tfshark=$enableval,enable_tfshark=no)
 
+if test "x$enable_tfshark" = "xyes" ; then
+       tfshark_bin="tfshark\$(EXEEXT)"
+       tfshark_man="tfshark.1"
+       wiresharkfilter_man="wireshark-filter.4"
+else
+       tfshark_bin=""
+       tfshark_man=""
+fi
+AC_SUBST(tfshark_bin)
+AC_SUBST(tfshark_man)
 
 # Enable/disable editcap
 
@@ -1743,8 +1783,6 @@ fi
 AC_SUBST(editcap_bin)
 AC_SUBST(editcap_man)
 
-
-
 # Enable/disable echld
 
 AC_ARG_ENABLE(echld,
@@ -1766,7 +1804,6 @@ fi
 AC_SUBST(echld_test_bin)
 AC_SUBST(echld_dir)
 
-
 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
 # or not)
 
@@ -1787,6 +1824,22 @@ fi
 AC_SUBST(capinfos_bin)
 AC_SUBST(capinfos_man)
 
+# Enable/disable captype
+
+AC_ARG_ENABLE(captype,
+  AC_HELP_STRING( [--enable-captype],
+                  [build captype @<:@default=yes@:>@]),
+    enable_captype=$enableval,enable_captype=yes)
+
+if test "x$enable_captype" = "xyes" ; then
+       captype_bin="captype\$(EXEEXT)"
+       captype_man="captype.1"
+else
+       captype_bin=""
+       captype_man=""
+fi
+AC_SUBST(captype_bin)
+AC_SUBST(captype_man)
 
 # Enable/disable mergecap
 
@@ -1805,7 +1858,6 @@ fi
 AC_SUBST(mergecap_bin)
 AC_SUBST(mergecap_man)
 
-
 # Enable/disable reordercap
 
 AC_ARG_ENABLE(reordercap,
@@ -1823,7 +1875,6 @@ fi
 AC_SUBST(reordercap_bin)
 AC_SUBST(reordercap_man)
 
-
 # Enable/disable text2pcap
 
 AC_ARG_ENABLE(text2pcap,
@@ -1841,7 +1892,6 @@ fi
 AC_SUBST(text2pcap_bin)
 AC_SUBST(text2pcap_man)
 
-
 # Enable/disable dftest
 
 AC_ARG_ENABLE(dftest,
@@ -1859,7 +1909,6 @@ fi
 AC_SUBST(dftest_bin)
 AC_SUBST(dftest_man)
 
-
 # Enable/disable randpkt
 
 AC_ARG_ENABLE(randpkt,
@@ -1877,7 +1926,7 @@ fi
 AC_SUBST(randpkt_bin)
 AC_SUBST(randpkt_man)
 
-
+AC_SUBST(wiresharkfilter_man)
 
 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
 dnl "gethostbyname()".
@@ -2628,6 +2677,43 @@ case $host_cpu in
                ;;
 esac
 
+# Gather only the "--with*" arguments and also a list of --with arguments for rpmbuild
+for f in $CONFIG_ARGS
+do
+       case $f in
+       --with-gtk2*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with gtk2"
+               ;;
+       --without-gtk2*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without gtk2"
+               ;;
+       --with-gtk3*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with gtk3"
+               ;;
+       --without-gtk3*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without gtk3"
+               ;;
+       --with-qt*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt"
+               ;;
+       --without-qt*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without qt"
+               ;;
+       --with*)
+               CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
+               ;;
+       esac
+
+done
+AC_SUBST(CONFIG_WITH_ARGS)
+AC_SUBST(RPMBUILD_WITH_ARGS)
+
 dnl libtool defs
 #
 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
@@ -2684,7 +2770,6 @@ AC_OUTPUT(
   asn1/dsp/Makefile
   asn1/ess/Makefile
   asn1/ftam/Makefile
-  asn1/gnm/Makefile
   asn1/goose/Makefile
   asn1/gprscdr/Makefile
   asn1/gsm_map/Makefile
@@ -2702,6 +2787,7 @@ AC_OUTPUT(
   asn1/HI2Operations/Makefile
   asn1/hnbap/Makefile
   asn1/idmp/Makefile
+  asn1/ilp/Makefile
   asn1/inap/Makefile
   asn1/isdn-sup/Makefile
   asn1/kerberos/Makefile
@@ -2718,6 +2804,7 @@ AC_OUTPUT(
   asn1/mpeg-pes/Makefile
   asn1/nbap/Makefile
   asn1/ns_cert_exts/Makefile
+  asn1/novell_pkis/Makefile
   asn1/ocsp/Makefile
   asn1/p1/Makefile
   asn1/p22/Makefile
@@ -2777,6 +2864,7 @@ AC_OUTPUT(
   epan/wmem/Makefile
   epan/wslua/Makefile
   epan/wspython/Makefile
+  filetap/Makefile
   codecs/Makefile
   ui/Makefile
   ui/doxygen.cfg
@@ -2799,7 +2887,6 @@ AC_OUTPUT(
   packaging/svr4/checkinstall
   packaging/svr4/pkginfo
   plugins/Makefile
-  plugins/asn1/Makefile
   plugins/docsis/Makefile
   plugins/ethercat/Makefile
   plugins/gryphon/Makefile
@@ -2931,7 +3018,9 @@ echo "The Wireshark package has been configured with the following options."
 echo "             Build wireshark (Gtk+) : $have_gtk""$gtk_lib_message"
 echo "                 Build wireshark-qt : $enable_qtshark"
 echo "                       Build tshark : $enable_tshark"
+echo "                      Build tfshark : $enable_tfshark"
 echo "                     Build capinfos : $enable_capinfos"
+echo "                      Build captype : $enable_captype"
 echo "                      Build editcap : $enable_editcap"
 echo "                      Build dumpcap : $enable_dumpcap"
 echo "                     Build mergecap : $enable_mergecap"