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)
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
# Let the user specify an OS X release to use as a
# deplayment target; if they specify that we should
# have a deployment target but don't specify the
- # deployment target, pick the OS version on which the
- # build is being done. This also causes the build to
- # be done against an SDK rather than against the headers
- # and libraries in /usr/include and /usr/lib.
+ # deployment target, then, if we have SDKs available,
+ # pick the OS version on which the build is being done.
+ # This also causes the build to be done against an SDK
+ # rather than against the headers and libraries in
+ # /usr/include and /usr/lib.
#
# Check for an OS X deployment target early, so that
# as many tests using the compiler are done using the
#
# Yes.
#
- # Default to targeting the major version number of
- # the version of OS X on which we're running.
+ # If we have SDKs available, default to targeting the major
+ # version number of the version of OS X on which we're
+ # running.
#
# (We quote the command so that we can use autoconf's
# M4 quoting characters, [ and ], in the sed expression.)
#
- [deploy_target=`sw_vers -productVersion | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.[0-9]*/\1.\2/'`]
+ for i in /Developer/SDKs \
+ /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
+ /Library/Developer/CommandLineTools/SDKs
+ do
+ if test -d "$i"
+ then
+ [deploy_target=`sw_vers -productVersion | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.[0-9]*/\1.\2/'`]
+ break
+ fi
+ done
;;
*)
# functions not to work with 64-bit userland
# code, so capturing won't work.
#
- CFLAGS="-arch i386 $CFLAGS"
- CXXFLAGS="-arch i386 $CXXFLAGS"
- LDFLAGS="-arch i386 $LDFLAGS"
+ CFLAGS="-m32 $CFLAGS"
+ CXXFLAGS="-m32 $CXXFLAGS"
+ LDFLAGS="-m32 $LDFLAGS"
;;
esac
else
#
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],
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
#
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)
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++?
#
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)
# 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
PIE_LDFLAGS="-pie"
# Restore LDFLAGS
- LDFLAGS=$LDFLAGS_before_pie
+ LDFLAGS="$LDFLAGS_before_pie"
fi
fi
# libraries in the rpath, rather than having a script tweak
# DYLD_LIBRARY_PATH.
#
- LDFLAGS="-Wl,-search_paths_first -Wl,-rpath,@executable_path/../lib -Wl,-rpath,/usr/local/lib $LDFLAGS"
+ LDFLAGS="-Wl,-search_paths_first -Wl,-rpath,@executable_path/../lib -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,/usr/local/lib $LDFLAGS"
AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first, and rpaths])
;;
cygwin*)
AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
AC_SUBST(COREFOUNDATION_FRAMEWORKS)
-AC_SUBST(OSX_APP_FLAGS)
+
+#
+# On Solaris, check whether we have getexecname().
+#
+case "$host_os" in
+solaris*)
+ AC_CHECK_FUNC(getexecname)
+ ;;
+esac
dnl Look in /usr/local for header files and libraries ?
dnl XXX FIXME don't include /usr/local if it is already in the system
#
# 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
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
"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
CFLAGS="$CFLAGS $Qt_CFLAGS"
CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
have_qt=yes
- ]
- , [AC_MSG_ERROR([Qt is not available])])
+ GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-qt"
+ OSX_APP_FLAGS="$OSX_APP_FLAGS -qt"
+ OSX_DMG_FLAGS="-qt"
+ ],
+ [AC_MSG_ERROR([Qt is not available])])
#
# XXX - greasy hack to make ui/gtk/recent.c
CFLAGS="$CFLAGS $GTK_CFLAGS"
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
have_gtk=yes
- ], have_gtk=no)
+ GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk3"
+ ],
+ [AC_MSG_ERROR([GTK+ 3 is not available])])
elif test "x$with_gtk2" = "xyes"; then
#
# GTK+ 3 wasn't specified, and GTK+ 2 was specified;
CFLAGS="$CFLAGS $GTK_CFLAGS"
CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
have_gtk=yes
- ], have_gtk=no)
+ GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk2"
+ ],
+ [AC_MSG_ERROR([GTK+ 2 is not available])])
fi
fi
+AC_SUBST(GUI_CONFIGURE_FLAGS)
GLIB_MIN_VERSION=2.16.0
AC_SUBST(GLIB_MIN_VERSION)
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
AC_SUBST(wireshark_man)
AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
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@:>@]),
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
AC_SUBST(editcap_bin)
AC_SUBST(editcap_man)
-
-
# Enable/disable echld
AC_ARG_ENABLE(echld,
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)
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
AC_SUBST(mergecap_bin)
AC_SUBST(mergecap_man)
-
# Enable/disable reordercap
AC_ARG_ENABLE(reordercap,
AC_SUBST(reordercap_bin)
AC_SUBST(reordercap_man)
-
# Enable/disable text2pcap
AC_ARG_ENABLE(text2pcap,
AC_SUBST(text2pcap_bin)
AC_SUBST(text2pcap_man)
-
# Enable/disable dftest
AC_ARG_ENABLE(dftest,
AC_SUBST(dftest_bin)
AC_SUBST(dftest_man)
-
# Enable/disable randpkt
AC_ARG_ENABLE(randpkt,
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()".
have_inet_aton=no)
if test "$have_inet_aton" = no; then
INET_ATON_LO="inet_aton.lo"
- AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
+ AC_DEFINE(HAVE_INET_ATON_H, 0, [Define unless inet/aton.h needs to be included])
else
INET_ATON_LO=""
fi
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)
;;
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)
asn1/dsp/Makefile
asn1/ess/Makefile
asn1/ftam/Makefile
- asn1/gnm/Makefile
asn1/goose/Makefile
asn1/gprscdr/Makefile
asn1/gsm_map/Makefile
asn1/HI2Operations/Makefile
asn1/hnbap/Makefile
asn1/idmp/Makefile
+ asn1/ilp/Makefile
asn1/inap/Makefile
asn1/isdn-sup/Makefile
asn1/kerberos/Makefile
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
epan/wmem/Makefile
epan/wslua/Makefile
epan/wspython/Makefile
+ filetap/Makefile
codecs/Makefile
ui/Makefile
ui/doxygen.cfg
packaging/svr4/checkinstall
packaging/svr4/pkginfo
plugins/Makefile
- plugins/asn1/Makefile
plugins/docsis/Makefile
plugins/ethercat/Makefile
plugins/gryphon/Makefile
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"