X-Git-Url: http://git.samba.org/?a=blobdiff_plain;f=configure.in;h=ce8c389a6510c722bc63cfc7643211ad8f3898a7;hb=8d88f3a7902d1e44d782fdc96157e70884a9ebf2;hp=354bc8a04e649b0a2bdda97f419fb7eb53e1f527;hpb=ab71d9d92b5b1936a13a73d354349a98c9db3a77;p=metze%2Fwireshark%2Fwip.git diff --git a/configure.in b/configure.in index 354bc8a04e..ce8c389a65 100644 --- a/configure.in +++ b/configure.in @@ -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 @@ -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 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"