2 # Autoconf script for Wireshark
6 # Define variables for the components of the Wireshark version number.
8 m4_define([version_major], [2])
9 m4_define([version_minor], [1])
10 m4_define([version_micro], [0])
11 m4_define([version_micro_extra], version_micro)
12 m4_append([version_micro_extra], [])
14 AC_INIT(wireshark, [version_major.version_minor.version_micro_extra], http://bugs.wireshark.org/, , http://www.wireshark.org/)
18 # Minimum autoconf version we require.
20 # Variable expansion doesn't work in AC_PREREQ()
22 AC_SUBST(AC_MIN_VERSION)
24 dnl Make sure to keep ACLOCAL_AMFLAGS in Makefile.am and AC_CONFIG_MACRO_DIRS
25 dnl in configure.ac in sync, otherwise there will be an error running autogen.sh.
26 m4_ifdef([AC_CONFIG_MACRO_DIRS],AC_CONFIG_MACRO_DIRS([./aclocal-fallback]))
28 dnl Check for CPU / vendor / OS
29 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
30 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
31 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
34 dnl As nothing in the Wireshark is itself a build tool (we are not,
35 dnl for example, a compiler that generates machine code), we probably
36 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
37 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
38 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
39 dnl lemon, that need to be built for the build machine, not for the
40 dnl host machine, so we might need both.
42 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
44 dnl AC_CANONICAL_BUILD
48 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip subdir-objects])
50 # Make Wireshark's version available in config.h
51 AC_DEFINE(VERSION_MAJOR, version_major, [Wireshark's major version])
52 AC_DEFINE(VERSION_MINOR, version_minor, [Wireshark's minor version])
53 AC_DEFINE(VERSION_MICRO, version_micro, [Wireshark's micro version])
55 AC_DEFINE(VERSION_FLAVOR, "Development Build", [Wireshark's package flavor])
60 # Checks for programs used in the main build process.
63 if test "$ac_cv_prog_cc_stdc" == "no"
65 AC_MSG_ERROR([The C compiler does not support standard C])
72 dnl Work around libtool bug (fixed in the version 1.5a?)
73 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
76 if test ! -z "$CXX"; then
78 # OK, we found something AC_LANG_CXX thinks is a C++ compiler,
81 # Some UN*Xes have, by default, a case-insensitive file
82 # system, and AC_PROG_CXX looks for, among other things,
83 # "CC" as a C++ compiler, and, if you have a case-insensitive
84 # file system and a C compiler named "cc" (both true, by
85 # default, on OS X), AC_PROG_CXX may end up thinking it's
88 # So we check by feeding the purported C++ compiler a
89 # program using C++ features (iostream).
91 # We do this after AC_PROG_LIBTOOL; if we did so before, and
92 # cleared CXX if what we had isn't a C++ compiler, that'd
93 # get undone by AC_PROG_LIBTOOL for some reason.
95 AC_MSG_CHECKING(whether $CXX is a C++ compiler)
97 AC_LINK_IFELSE([AC_LANG_PROGRAM(
102 std::cout << "Hello World! ";
105 [AC_MSG_RESULT(yes)],
112 AC_PATH_PROG(PERL, perl)
115 AC_PATH_PROGS(PYTHON, python python3)
116 if test ! -z "$PYTHON"; then
118 # OK, we found Python; is it Python 2.5 or later?
119 # Note: we don't use named components for sys.version_info to get
120 # the major version number, as named components for version_info
121 # were apparently introduced in Python 2.7.
123 AC_MSG_CHECKING([whether $PYTHON is Python 2.5 or later])
124 python_major_version=`$PYTHON -c 'import sys; print (sys.version_info[[0]])'`
125 python_minor_version=`$PYTHON -c 'import sys; print (sys.version_info[[1]])'`
126 if test "$python_major_version" -eq 2 -a "$python_minor_version" -lt 5 ; then
128 AC_MSG_WARN([Building with Python $python_major_version.$python_minor_version may not work])
133 AC_MSG_ERROR(I couldn't find python; make sure it's installed and in your path)
137 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
138 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
139 # as the tarball should contain the results of running YACC/Bison on .y
140 # files and running Flex on .l files, but a user building from SVN
141 # will have to run YACC/Bison and Flex to process those files.
143 # On the other hand, what about users who use a distribution tarball to
144 # do development? They *shouldn't* - that's what the SVN repository is
145 # for - but they might. They'd get errors if they modify a .y or .l
146 # file and try to do a build - but the error should tell them that they
147 # need to get YACC/Bison and/or Flex.
149 # Then again, getting them shouldn't be too big of a burden.
151 # XXX - is the same true of pod2man and pod2html, or are they needed
152 # even when building from a distribution tarball?
156 AC_PATH_PROG(YACCDUMMY, $YACC)
157 if test "x$YACCDUMMY" = x
159 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
162 AC_PATH_PROG(LEX, flex)
165 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
167 AC_PATH_PROG(POD2MAN, pod2man)
168 if test "x$POD2MAN" = x
171 # The alternative is not to build the man pages....
173 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
175 AC_PATH_PROG(POD2HTML, pod2html)
176 if test "x$POD2HTML" = x
179 # The alternative is not to build the HTML man pages....
181 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
185 # Checks for programs used by Wireshark/TShark/etc.
189 # XXX - this looks for various HTML viewers on the host, not the target;
190 # we really want to know what's available on the target, for cross-builds.
191 # That would probably require us to, at run time, look for xdg-open and,
192 # if we don't find it, look for mozilla, htmlview, etc.
194 AC_PATH_PROG(HTML_VIEWER, xdg-open)
195 if test "x$HTML_VIEWER" != x
198 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
199 # Define some variable to be that, so we just run that?
201 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
204 # XXX - we have to define HTML_VIEWER for the prefs.c code that
205 # sets the default value of the Web browser preference, even
206 # though that preference won't be offered.
208 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
210 AC_PATH_PROG(HTML_VIEWER, htmlview)
211 if test "x$HTML_VIEWER" = x
213 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
215 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
220 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
221 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
222 # we assume GCC and clang do; other compilers should be added here.
224 # This is done to avoid getting tripped up by compilers that support
225 # those flags but give them a different meaning.
227 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
228 ac_supports_gcc_flags=yes
231 if test "x$CC_FOR_BUILD" = x
235 AC_SUBST(CC_FOR_BUILD)
236 AC_SUBST(CFLAGS_FOR_BUILD)
239 AC_PATH_PROG(DOXYGEN, doxygen)
240 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
241 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
244 # Check for pkg-config and set PKG_CONFIG accordingly.
246 # This is referenced via AC_REQUIRE([PKG_PROG_PKG_CONFIG] in some macros
247 # like PKG_CHECK_MODULES. If the first call to such a macro is under an
248 # "if" statement, it's safer to call PKG_PROG_PKG_CONFIG directly, see
249 # the comments in acolocal.m4
251 # We want version 0.7 or better. (XXX - explain why. Is that just
252 # because our Qt tests were originally based on AM_PATH_GTK, and *it*
253 # requires 0.7 or better?)
255 PKG_PROG_PKG_CONFIG(0.7)
256 if test -z "$PKG_CONFIG"; then
257 AC_MSG_ERROR(I couldn't find pkg-config; make sure it's installed and in your path)
260 AC_ARG_ENABLE(osx-deploy-target,
261 AC_HELP_STRING( [--enable-osx-deploy-target],
262 [choose an OS X deployment target @<:@default=major release on which you're building@:>@]),
272 # Let the user specify an OS X release to use as a
273 # deplayment target; if they specify that we should
274 # have a deployment target but don't specify the
275 # deployment target, then, if we have SDKs available,
276 # pick the OS version on which the build is being done.
277 # This also causes the build to be done against an SDK
278 # rather than against the headers and libraries in
279 # /usr/include and /usr/lib.
281 # Check for an OS X deployment target early, so that
282 # as many tests using the compiler are done using the
283 # flags that we'll be using when building.
285 if test $enableval = no
288 # The user explicitly said
289 # --disable-osx-deploy-target, so don't build
293 elif test $enableval = yes
296 # The user said --enable-osx-deploy-target, but
297 # didn't say what version to target; target the
298 # major version number of the version of OS X on
299 # which we're running.
301 # (We quote the command so that we can use
302 # autoconf's M4 quoting characters, [ and ], in
303 # the sed expression.)
305 [deploy_target=`sw_vers -productVersion | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.[0-9]*/\1.\2/'`]
307 deploy_target="$enableval"
313 # No. Fail, because whatever the user intended for us to
314 # do, we can't do it.
316 AC_MSG_ERROR([--enable-osx-deploy-target specified on an OS other than OS X])
328 # If we have SDKs available, default to targeting the major
329 # version number of the version of OS X on which we're
332 # (We quote the command so that we can use autoconf's
333 # M4 quoting characters, [ and ], in the sed expression.)
335 for i in /Developer/SDKs \
336 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
337 /Library/Developer/CommandLineTools/SDKs
341 [deploy_target=`sw_vers -productVersion | sed 's/\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.[0-9]*/\1.\2/'`]
349 # No. There's nothing to do.
355 if test ! -z "$deploy_target"
357 AC_MSG_CHECKING([whether we can build for OS X $deploy_target])
358 case $deploy_target in
362 # I'm not sure this would even work.
365 AC_ERROR([We don't support building for OS X $deploy_target])
370 # XXX - never tested.
373 SDKPATH="/Developer/SDKs/MacOSX10.3.9.sdk"
378 # Look for the oldest SDK we can find that's
379 # for an OS equal to or later than this one.
381 # XXX - for 10.4, do we need 10.4u? We're
382 # not currently doing fat builds (we'd need
383 # fat versions of the support libraries for
384 # that to be useful), but, if we do, we'd
389 # Get the real version - strip off the "10.".
390 # We'll worry about that if, as, and when there's ever
393 deploy_real_version=`echo "$deploy_target" | sed -n 's/10\.\(.*\)/\1/p'`
396 # Search each directory that might contain SDKs.
399 for sdksdir in /Developer/SDKs \
400 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs \
401 /Library/Developer/CommandLineTools/SDKs
404 # Get a list of all the SDKs.
406 if ! test -d "$sdksdir"
409 # There is no directory with that name.
410 # Move on to the next one in the list,
417 # Get a list of all the SDKs in that directory,
420 # We have to use @<:@ for [ and @:>@ for ] to
421 # avoid m4 removing the square brackets.
423 sdklist=`(cd "$sdksdir"; ls -d MacOSX10.@<:@0-9@:>@*.sdk 2>/dev/null)`
428 # Get the real version for this SDK.
430 sdk_real_version=`echo "$sdk" | sed -n 's/MacOSX10\.\(.*\)\.sdk/\1/p'`
433 # Is it for the deployment target or
434 # some later release?
436 if test "$sdk_real_version" -ge "$deploy_real_version"
441 sdkpath="$sdksdir/$sdk"
446 if test -z "$sdkpath"
449 AC_MSG_ERROR([We couldn't find an SDK for OS X $deploy_target or later])
452 AC_MSG_RESULT([yes, with the 10.$sdk_real_version SDK])
457 # Add a -mmacosx-version-min flag to force tests that
458 # use the compiler, as well as the build itself, not to,
459 # for example, use compiler or linker features not supported
460 # by the minimum targeted version of the OS.
462 # Add an -isysroot flag to use the SDK.
464 CFLAGS="-mmacosx-version-min=$deploy_target -isysroot $SDKPATH $CFLAGS"
465 CXXFLAGS="-mmacosx-version-min=$deploy_target -isysroot $SDKPATH $CXXFLAGS"
466 LDFLAGS="-mmacosx-version-min=$deploy_target -isysroot $SDKPATH $LDFLAGS"
469 # Add a -sdkroot flag to use with osx-app.sh.
471 OSX_APP_FLAGS="-sdkroot $SDKPATH"
474 # XXX - do we need this to build the Wireshark wrapper?
475 # XXX - is this still necessary with the -mmacosx-version-min
478 OSX_DEPLOY_TARGET="MACOSX_DEPLOYMENT_TARGET=$deploy_target"
481 # In the installer package XML file, give the deployment target
482 # as the minimum version.
484 OSX_MIN_VERSION="$deploy_target"
486 case $deploy_target in
490 # Only 32-bit builds are supported. 10.5
491 # (and 10.4?) had a bug that causes some BPF
492 # functions not to work with 64-bit userland
493 # code, so capturing won't work.
495 CFLAGS="-m32 $CFLAGS"
496 CXXFLAGS="-m32 $CXXFLAGS"
497 LDFLAGS="-m32 $LDFLAGS"
509 # In the installer package XML file, give the current OS
510 # version, minor version and all, as the minimum version.
511 # We can't guarantee that the resulting binary will work
512 # on older OS versions, not even older minor versions
513 # (original release or earlier software updates).
515 OSX_MIN_VERSION=`sw_vers -productVersion`
519 AC_SUBST(OSX_MIN_VERSION)
522 # Try to arrange for large file support.
527 # Look for math functions; use libm if necessary.
529 AC_SEARCH_LIBS(floor, m)
530 AC_SEARCH_LIBS(ceil, m)
531 AC_SEARCH_LIBS(exp, m)
532 AC_SEARCH_LIBS(log, m)
533 AC_SEARCH_LIBS(log10, m)
534 AC_SEARCH_LIBS(floorl, m,
537 AC_DEFINE(HAVE_FLOORL, 1, [Define if you have the floorl function.])
539 FLOORL_LO="floorl.lo")
544 # GUI toolkit options
547 AC_HELP_STRING( [--with-qt=@<:@yes/no/4/5@:>@],
548 [use Qt @<:@default=yes@:>@]),
549 with_qt="$withval", with_qt="unspecified")
552 AC_HELP_STRING( [--with-gtk2=@<:@yes/no@:>@],
553 [use GTK+ 2.0 @<:@default=no@:>@]),
554 with_gtk2="$withval", with_gtk2="unspecified")
557 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
558 [use GTK+ 3.0 instead of 2.0 @<:@default=yes@:>@]),
559 with_gtk3="$withval", with_gtk3="unspecified")
562 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+, then switched back to
563 # LGPLv2.1+ in version 3.1.10.
564 # GnuTLS depends on GMP which switched from LGPLv2.1+ to LGPLv3+ in
565 # version 4.2.2, the switched to LGPLv3+ / GPLv2+ in version 6.0.0.
568 want_gnutls="if_available"
569 AC_ARG_WITH([gnutls],
570 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
571 [use GnuTLS library @<:@default=yes, if available@:>@]),
572 [ with_gnutls="$withval"; want_gnutls="yes" ], with_gnutls="yes")
574 if test "x$with_gnutls" = "xyes"; then
575 have_license_compatible_gnutls="no"
576 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.1.10 ],
577 [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.1.10 not found " ]
580 if test "x$have_license_compatible_gnutls" != "xyes"; then
581 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
582 [ have_license_compatible_gnutls="yes" ] , [ echo "GnuTLS >= 1.2.0, < 3.0 not found " ]
586 if test "x$have_license_compatible_gnutls" = "xyes"; then
587 echo "GnuTLS found, enabling SSL decryption"
588 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
591 echo "GnuTLS with compatible license not found, disabling SSL decryption"
594 # Error out if the user explicitly requested gnutls
595 if test "x$want_gnutls" = "xyes"; then
596 AC_MSG_ERROR([GnuTLS crypto library was requested, but is not available])
603 want_gcrypt="if_available"
604 AC_ARG_WITH([gcrypt],
605 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
606 [use gcrypt library @<:@default=yes, if available@:>@]),
607 [ with_gcrypt="$withval"; want_gcrypt="yes" ], with_gcrypt="yes")
609 if test "x$with_gcrypt" = "xyes"; then
610 AM_PATH_LIBGCRYPT(1.4.2,
612 echo "libgcrypt found, enabling decryption for ipsec, ssl, etc."
613 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
617 if test x$libgcrypt_config_prefix != x ; then
618 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
620 echo "libgcrypt not found, disabling decryption for ipsec, ssl, etc."
624 # Error out if the user explicitly requested gcrypt
625 if test "x$want_gcrypt" = "xyes"; then
626 AC_MSG_ERROR([libgcrypt library was requested, but is not available])
633 AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
634 [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
636 if test "x$withval" = "xno"
639 elif test "x$withval" = "xyes"
643 elif test "x$withval" = "x1"
647 elif test "x$withval" = "x2"
651 elif test "x$withval" = "x3"
656 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
660 # Use libnl if it's present, otherwise don't.
662 want_libnl=ifavailable
666 # Libnl is Linux-specific.
671 AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
673 if test x$want_libnl = "xno"; then
678 # Test for specific libnl versions only if no version
679 # was specified by the user or if the version in question
680 # was requested by the user.
682 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
683 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
685 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
686 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
688 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
689 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
691 if (test "${have_libnl3}" = "yes"); then
692 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
693 LIBS="$LIBS $LIBNL3_LIBS"
694 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
695 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
696 libnl_message="yes (v3)"
698 elif (test "${have_libnl2}" = "yes"); then
699 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
700 LIBS="$LIBS $LIBNL2_LIBS"
701 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
702 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
703 libnl_message="yes (v2)"
705 elif (test "${have_libnl1}" = "yes"); then
706 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
707 LIBS="$LIBS $LIBNL1_LIBS"
708 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
709 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
710 libnl_message="yes (v1)"
713 if test x$want_libnl = "xyes"; then
714 case "$libnl_version" in
717 AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
721 AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
728 AC_MSG_CHECKING([if nl80211.h is new enough])
729 AC_TRY_COMPILE([#include <linux/nl80211.h>],
730 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
731 x |= NL80211_ATTR_SUPPORTED_IFTYPES;
732 x |= NL80211_ATTR_SUPPORTED_COMMANDS;
733 x |= NL80211_ATTR_WIPHY_FREQ;
734 x |= NL80211_CHAN_NO_HT;
736 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
739 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
740 AC_TRY_COMPILE([#include <linux/nl80211.h>],
741 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
742 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
745 AC_MSG_CHECKING([for NL80211_SPLIT_WIPHY_DUMP])
746 AC_TRY_COMPILE([#include <linux/nl80211.h>],
747 [enum nl80211_protocol_features x = NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP;],
748 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_SPLIT_WIPHY_DUMP, 1, [SPLIT_WIPHY_DUMP is supported])],
753 if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
754 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
759 # FIXME: currently the path argument to with-libsmi is being ignored
763 # Check for programs used when building DocBook documentation.
766 # Check for a2x (convert asciidoc to another format)
767 AC_PATH_PROG(A2X, a2x)
768 AC_CHECK_PROG(HAVE_A2X, a2x, "yes", "no")
769 AM_CONDITIONAL(HAVE_A2X, test x$HAVE_A2X = xyes)
771 # Check for fop (translate .fo to e.g. pdf)
772 AC_PATH_PROG(FOP, fop)
773 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
774 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
776 # TODO: HAVE_LYNX and HAVE_W3M are unused. Maybe require one of them
777 # to be found when a2x is enabled? Otherwise it will fail later...
778 # Check for lynx (asciidoc text format from html)
779 AC_PATH_PROG(LYNX, lynx)
780 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
781 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
783 # Check for w3m (asciidoc text format from html)
784 AC_PATH_PROG(W3M, w3m)
785 AC_CHECK_PROG(HAVE_W3M, w3m, "yes", "no")
786 AM_CONDITIONAL(HAVE_W3M, test x$HAVE_W3M = xyes)
789 AC_PATH_PROG(XMLLINT, xmllint)
790 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
791 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
794 AC_PATH_PROG(XSLTPROC, xsltproc)
795 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
796 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
799 # Check for packaging utilities
800 # For now, we check to see if the various packaging utilites are in our
801 # path. I'm too lazy to write code to go hunt for them. - Gerald
805 # (Lets you install the desktop files.)
807 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
810 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
811 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
812 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
814 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
815 -a x$HAVE_PKGTRANS = xyes ; then
816 HAVE_SVR4_PACKAGING=yes
818 HAVE_SVR4_PACKAGING=no
820 AC_SUBST(HAVE_SVR4_PACKAGING)
823 AC_WIRESHARK_RPM_CHECK
827 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
830 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
831 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
832 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
834 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
835 -a x$HAVE_BLESS = xyes ; then
836 HAVE_OSX_PACKAGING=yes
838 HAVE_OSX_PACKAGING=no
840 AC_SUBST(HAVE_OSX_PACKAGING)
843 # Use this as a proxy for "is this OS X" (just in case somebody actually
844 # built and installed Darwin as an OS, perhaps with some X11-based GUI,
845 # don't look for Darwin).
847 AC_CHECK_PROG(have_sw_vers, sw_vers, "yes", "no")
848 AM_CONDITIONAL(NOT_OS_X, test "x$have_sw_vers" = "xno")
851 # Some compilers have to be told to fail when passed an unknown -W flag;
852 # make sure we do that.
854 AC_WIRESHARK_CHECK_UNKNOWN_WARNING_OPTION_ERROR
857 # Some C++ compilers have to be told to fail when passed a -W flag that
858 # they don't think should apply to C++; make sure we do that.
860 AC_WIRESHARK_CHECK_NON_CXX_WARNING_OPTION_ERROR
863 # Try to add some additional checks to CFLAGS.
864 # These are not enabled by default, because the warnings they produce
865 # are very hard or impossible to eliminate.
867 AC_ARG_ENABLE(extra-compiler-warnings,
868 AC_HELP_STRING( [--enable-extra-compiler-warnings],
869 [do additional compiler warnings @<:@default=no@:>@]),
871 wireshark_extra_flags=$enableval
872 if test $enableval != no
875 # The following are for C and C++
877 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpedantic)
878 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-variadic-macros)
880 # Various code blocks this one.
882 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Woverflow)
883 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
885 # Due to various places where APIs we don't control
886 # require us to cast away constness, we can probably
887 # never enable this one with -Werror.
889 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-qual)
891 # Some generated ASN.1 dissectors block this one;
892 # multiple function declarations for the same
893 # function are being generated.
895 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wredundant-decls)
897 # Some loops are safe, but it's hard to convince the
900 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunsafe-loop-optimizations)
902 # All the registration functions block these for now.
904 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-prototypes)
905 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-declarations)
907 # A bunch of "that might not work on SPARC" code blocks
910 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-align)
912 # Works only with Clang
914 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunreachable-code)
916 # Works only with Clang but generates a lot of warnings
917 # (about glib library not using Doxygen)
919 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdocumentation)
922 # The following are C only, not C++
924 # Due to various places where APIs we don't control
925 # require us to cast away constness, we can probably
926 # never enable this one with -Werror.
928 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wbad-function-cast, C)
932 # Try to add ASAN address analyze.
933 # Only needed for analyse
936 AC_HELP_STRING( [--enable-asan],
937 [Enable AddressSanitizer (ASAN) for debugging (May be slow down)@<:@default=no@:>@]),
940 # With Clang >= 3.5 Leak detection is enable by default
941 # and no yet all leak is fixed...
942 # use ASAN_OPTIONS=detect_leaks=0 to disable detect_leaks
944 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fsanitize=address)
951 # The following are for C and C++
953 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
954 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wextra) # -W is now known as -Wextra
955 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wendif-labels)
956 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpointer-arith)
957 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Warray-bounds)
958 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wformat-security)
959 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fwrapv)
960 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-strict-overflow)
961 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-delete-null-pointer-checks)
962 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wvla)
963 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Waddress)
964 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wattributes)
965 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdiv-by-zero)
966 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wignored-qualifiers)
967 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpragmas)
968 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-overlength-strings)
969 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wwrite-strings)
970 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-long-long)
971 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wheader-guard)
972 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunused-const-variable)
974 # The following are C only, not C++
976 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wc++-compat, C)
977 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdeclaration-after-statement, C)
982 # Make sure -Wshadow doesn't complain about variables in function and
983 # function pointer declarations shadowing other variables; if not, don't
984 # turn it on, as some versions of GCC (including the one in at least
985 # some Xcode versions that came with Mac OS X 10.5) complain about
988 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshadow, C,
990 extern int bar(int a);
996 int (*fptr)(int a) = bar;
1001 [warns about variables in function declarations shadowing other variables])
1003 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-pointer-sign, C)
1004 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wold-style-definition, C)
1005 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wstrict-prototypes, C)
1007 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
1008 # is given a constant string.
1009 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
1010 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wlogical-op, C,
1014 int foo(const char *, int);
1018 foo(const char *sep, int c)
1020 if (strchr (sep, c) != NULL)
1029 return foo("<", 'a');
1032 [generates warnings from strchr()])
1034 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wjump-misses-init, C)
1035 # The Qt headers generate a ton of shortening errors on 64-bit systems
1036 # so only enable this for C for now.
1037 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshorten-64-to-32, C)
1040 # Use the faster pre gcc 4.5 floating point precision if available.
1042 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fexcess-precision=fast)
1045 # Try to have the compiler default to hiding symbols, so that only
1046 # symbols explicitly exported with WS_DLL_PUBLIC will be visible
1047 # outside (shared) libraries; that way, more UN*X builds will catch
1048 # failures to export symbols, rather than having that fail only on
1051 CFLAGS_before_fvhidden="$CFLAGS"
1053 # GCC and GCC-compatible compilers
1055 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fvisibility=hidden)
1056 if test "x$CFLAGS" = "x$CFLAGS_before_fvhidden"
1061 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-xldscope=hidden)
1062 if test "x$CFLAGS" = "x$CFLAGS_before_fvhidden"
1064 # TODO add other ways of hiding symbols
1065 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
1069 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
1070 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
1071 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
1072 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
1073 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
1074 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
1077 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
1078 # so that we can build dumpcap PIE - it may run with elevated
1079 # privileges, and using PIE means the OS can run it at random locations
1080 # in the address space to make attacks more difficult.
1082 CFLAGS_before_pie="$CFLAGS"
1083 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE)
1084 if test "x$CFLAGS" != "x$CFLAGS_before_pie"
1087 CFLAGS="$CFLAGS_before_pie"
1089 LDFLAGS_before_pie="$LDFLAGS"
1090 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
1091 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
1098 LDFLAGS="$LDFLAGS_before_pie"
1102 AC_SUBST(PIE_CFLAGS)
1103 AC_SUBST(PIE_LDFLAGS)
1105 CFLAGS_before_simd="$CFLAGS"
1106 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-msse4.2, C)
1107 if test "x$CFLAGS" != "x$CFLAGS_before_simd"
1110 # The compiler supports -msse4.2; use that to enable SSE 4.2.
1112 # Restore CFLAGS. We only want to apply -msse4.2 to
1113 # wsutil/ws_mempbrk_sse42.c, as the SSE4.2 code there
1114 # is run only if the hardware supports it, but other
1115 # code would do no such checks.
1117 CFLAGS="$CFLAGS_before_simd"
1118 ac_sse4_2_flag=-msse4.2
1121 # Try -xarch=sse4_2; that's the flag for Sun's compiler.
1123 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-xarch=sse4_2, C)
1124 if test "x$CFLAGS" != "x$CFLAGS_before_simd"
1127 # The compiler supports -xarch=sse4_2; use that to
1130 # Restore CFLAGS; see above.
1132 CFLAGS="$CFLAGS_before_simd"
1133 ac_sse4_2_flag=-xarch=sse4_2
1137 if test "x$ac_sse4_2_flag" != x; then
1139 # OK, we have a compiler flag to enable SSE 4.2.
1141 # Make sure we have the necessary headers for the SSE4.2 intrinsics
1142 # and that we can use them.
1144 # First, check whether we have emmintrin.h and can use it
1145 # *without* the SSE 4.2 flag.
1147 AC_MSG_CHECKING([whether there is emmintrin.h header and we can use it])
1149 [#include <emmintrin.h>],
1152 emmintrin_h_works=yes
1153 AC_MSG_RESULT([yes])
1156 emmintrin_h_works=no
1162 # OK, if that works, see whether we have nmmintrin.h and
1163 # can use it *with* the SSE 4.2 flag.
1165 if test "x$emmintrin_h_works" = "xyes"; then
1167 # Add the SSE4.2 flags to the beginning of CFLAGS,
1168 # in case the user explicitly specified -mno-sse4.2
1169 # (or in case Gentoo's build tools did so); if they
1170 # did so, we only want this to work if we can use
1171 # the #pragma to override that for ws_mempbrk_sse42.c,
1172 # and putting it at the beginning means that the
1173 # CFLAGS setting in the environment will come later
1176 AC_MSG_CHECKING([whether there is nmmintrin.h header and we can use it])
1177 saved_CFLAGS="$CFLAGS"
1178 CFLAGS="$ac_sse4_2_flag $CFLAGS"
1180 [#include <nmmintrin.h>],
1184 AC_DEFINE(HAVE_SSE4_2, 1, [Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
1185 CFLAGS_SSE42="$ac_sse4_2_flag"
1186 AC_MSG_RESULT([yes])
1193 CFLAGS="$saved_CFLAGS"
1200 dnl build libwsutil_sse42 only if there is SSE4.2
1201 AM_CONDITIONAL(SSE42_SUPPORTED, test "x$have_sse42" = "xyes")
1202 AC_SUBST(CFLAGS_SSE42)
1205 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
1206 # so we can use _U_ to flag unused function parameters and not get warnings
1207 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
1208 # to flag an unused function parameters will compile with other compilers.
1210 # XXX - similar hints for other compilers?
1212 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
1213 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
1215 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
1218 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
1219 # (only if the GCC 'optimization level' > 0).
1221 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
1222 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
1224 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
1225 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
1228 # If the compiler supports GCC-style flags, enable a barrier "stop on
1230 # This barrier is set for a very large part of the code. However, it is
1231 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
1233 warnings_as_errors_default="yes"
1234 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
1235 AC_ARG_ENABLE(warnings-as-errors,
1236 AC_HELP_STRING( [--enable-warnings-as-errors],
1237 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra compiler warnings are enabled@:>@]),
1239 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
1240 with_warnings_as_errors="yes"
1243 with_warnings_as_errors="no"
1248 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
1249 with_warnings_as_errors="yes"
1252 with_warnings_as_errors="no"
1257 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
1260 # Add any platform-specific compiler flags needed.
1262 AC_MSG_CHECKING(for platform-specific compiler flags)
1263 if test "x$GCC" = "xyes" ; then
1265 # GCC - do any platform-specific tweaking necessary.
1269 # the X11 headers don't automatically include prototype info
1270 # and a lot don't include the return type
1271 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
1272 CFLAGS="$CFLAGS -Wno-return-type"
1273 CXXFLAGS="$CXXFLAGS -Wno-return-type"
1274 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
1277 AC_MSG_RESULT(none needed)
1282 # Not GCC - assume it's the vendor's compiler.
1287 # AC_PROG_CC_STDC should already have added whatever
1288 # flags are necessary for ISO C - C99 if available,
1289 # otherwise C89 - with extensions.
1291 # Add +O2, for optimization, as suggested by Jost Martin.
1292 # XXX - works with "-g"?
1294 # +O2 is supported both by the C and C++ compiler.
1296 CFLAGS="+O2 $CFLAGS"
1297 if test "$CC" = "$CC_FOR_BUILD"; then
1299 # We're building the build tools with the same
1300 # compiler as the one with which we're building
1301 # Wireshark, so add the flags to the flags for
1302 # that compiler as well.
1304 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
1306 CXXFLAGS="+O2 $CFLAGS"
1307 AC_MSG_RESULT(HP C/C++ compiler - added +O2)
1311 # Crank up the warning level.
1314 CXXFLAGS="$CXXFLAGS +w2"
1317 AC_MSG_RESULT(none needed)
1323 # Add any platform-specific linker flags needed.
1325 AC_MSG_CHECKING(for platform-specific linker flags)
1329 # Add -Wl,-single_module to the LDFLAGS used with shared
1330 # libraries, to fix some error that show up in some cases;
1331 # some Apple documentation recommends it for most shared
1334 LDFLAGS_SHAREDLIB="-Wl,-single_module"
1336 # Add -Wl,-headerpad_max_install_names to the LDFLAGS, as
1337 # code-signing issues is running out of padding space.
1339 # Add -Wl,-search_paths_first to make sure that if we search
1340 # directories A and B, in that order, for a given library, a
1341 # non-shared version in directory A, rather than a shared
1342 # version in directory B, is chosen (so we can use
1343 # --with-pcap=/usr/local to force all programs to be linked
1344 # with a static version installed in /usr/local/lib rather than
1345 # the system version in /usr/lib).
1347 LDFLAGS="-Wl,-headerpad_max_install_names -Wl,-search_paths_first $LDFLAGS"
1348 AC_MSG_RESULT([Apple linker - added -Wl,-single_module to shared library linker flags and -Wl,-headerpad_max_install_names -Wl,-search_paths_first and -Wl,-headerpad_max_install_names to all linker flags])
1352 # Shared libraries in cygwin/Win32 must never contain
1353 # undefined symbols.
1355 LDFLAGS="$LDFLAGS -no-undefined"
1356 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
1359 AC_MSG_RESULT(none needed)
1362 AC_SUBST(LDFLAGS_SHAREDLIB)
1364 # Enable silent builds by default
1365 # Verbose builds can be enabled with "./configure
1366 # --enable-silent-rules ..." or "make V=1 ..."
1367 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
1368 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
1371 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
1372 # "just Darwin" (as we don't currently support iOS, and as I don't
1373 # think you can build and run "just Darwin" as an OS for PCs), we
1374 # arrange to build some programs with Application Services so they
1375 # can launch Web browsers and Finder windows, arrange to build some
1376 # programs with System Configuration so they can get "friendly names"
1377 # and other information about interfaces, and build any programs that
1378 # use either of those frameworks or that report version information
1379 # with Core Foundation as the frameworks in question use it and as we
1380 # get version information from plists and thus need Core Foundation
1381 # to process those plists.
1386 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
1387 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
1388 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
1389 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
1392 # OK, so we have the OS X frameworks; do they include
1393 # CFPropertyListCreateWithStream, or do we have
1394 # to fall back on CFPropertyListCreateFromStream?
1395 # (They only differ in the error return, which we
1396 # don't care about. And, no, we shouldn't just
1397 # use CFPropertyListCreateFromStream, because it's
1398 # deprecated in newer releases.)
1400 ac_save_LIBS="$LIBS"
1401 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
1402 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
1403 LIBS="$ac_save_LIBS"
1406 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
1407 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
1408 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
1411 # On Solaris, check whether we have getexecname().
1415 AC_CHECK_FUNC(getexecname)
1419 dnl Look in /usr/local for header files and libraries ?
1420 dnl XXX FIXME don't include /usr/local if it is already in the system
1421 dnl search path as this causes gcc 3.2 on Linux to complain about a change
1422 dnl of the system search order for includes
1423 AC_ARG_ENABLE(usr-local,
1424 AC_HELP_STRING( [--enable-usr-local],
1425 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
1426 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
1428 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
1429 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
1430 if test -d "/usr/local"; then
1433 # Arrange that we search for header files in the source directory
1434 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
1435 # as various packages we use ("libpcap", "zlib", "adns")
1436 # may have been installed under "/usr/local/include".
1438 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
1441 # Arrange that we search for libraries in "/usr/local/lib".
1443 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
1452 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
1457 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
1458 if test x$LD_LIBRARY_PATH != x ; then
1459 LIBS="$LIBS -R$LD_LIBRARY_PATH"
1460 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
1462 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
1468 # Check for versions of "sed" inadequate to handle, in libtool, a list
1469 # of object files as large as the list in Wireshark.
1471 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
1472 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
1473 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
1474 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
1475 # is the only "sed" that comes with Solaris that can handle Wireshark.
1477 # Add any checks here that are necessary for other OSes.
1479 AC_PATH_PROG(SED, sed)
1482 AC_MSG_ERROR(I couldn't find sed; make sure it's installed and in your path)
1484 AC_WIRESHARK_GNU_SED_CHECK
1485 if test "$HAVE_GNU_SED" = no ; then
1488 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
1490 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
1492 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
1507 # Enable/disable wireshark
1508 AC_ARG_ENABLE(wireshark,
1509 AC_HELP_STRING( [--enable-wireshark],
1510 [build the Wireshark GUI (with Gtk+, Qt, or both) @<:@default=yes@:>@]),
1511 enable_wireshark=$enableval,enable_wireshark=yes)
1512 AM_CONDITIONAL(BUILDING_WIRESHARK, test x$enable_wireshark = xyes)
1514 AC_ARG_ENABLE(packet-editor,
1515 AC_HELP_STRING( [--enable-packet-editor],
1516 [add support for packet editor in Wireshark @<:@default=yes@:>@]),
1517 enable_packet_editor=$enableval,enable_packet_editor=yes)
1518 if test x$enable_packet_editor = xyes; then
1519 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
1522 AC_ARG_ENABLE(profile-build,
1523 AC_HELP_STRING( [--enable-profile-build],
1524 [build profile-ready binaries @<:@default=no@:>@]),
1525 enable_profile_build=$enableval,enable_profile_build=no)
1526 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
1527 AC_MSG_CHECKING(if profile builds must be generated)
1528 if test "x$enable_profile_build" = "xyes" ; then
1529 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
1531 CFLAGS=" -pg $CFLAGS"
1532 CXXFLAGS=" -pg $CXXFLAGS"
1535 echo "Building profile binaries currently only supported for GCC and clang."
1541 # Create DATAFILE_DIR #define for config.h
1542 datafiledir=$datadir/wireshark
1544 test "x$prefix" = xNONE && prefix=$ac_default_prefix
1545 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1546 # Ugly hack, but I don't see how this problem can be solved
1547 # properly that DATAFILE_DIR had a value starting with
1548 # "${prefix}/" instead of e.g. "/usr/local/"
1549 eval eval echo "$datafiledir"
1551 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
1553 # Create DOC_DIR #define for config.h
1555 test "x$prefix" = xNONE && prefix=$ac_default_prefix
1556 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1557 # Ugly hack, but I don't see how this problem can be solved
1558 # properly that DOC_DIR had a value starting with
1559 # "${prefix}/" instead of e.g. "/usr/local/"
1560 eval eval echo "$docdir"
1562 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
1564 GTK2_MIN_VERSION=2.12.0
1565 AC_SUBST(GTK2_MIN_VERSION)
1566 GTK3_MIN_VERSION=3.0.0
1567 AC_SUBST(GTK3_MIN_VERSION)
1568 QT_MIN_VERSION=4.7.0
1569 AC_SUBST(QT_MIN_VERSION)
1570 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
1571 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
1573 # We only do those if we're going to be building Wireshark;
1574 # otherwise, we don't have any GUI to build, so we don't use
1577 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
1578 # force all programs to be built with GTK+ or Qt.
1580 # Release dates for GTK+ versions:
1581 # https://en.wikipedia.org/wiki/GTK+#Releases
1582 # 2.12.0: 14 Sep 2007
1583 # 2.14.0: 04 Sep 2008
1584 # 2.16.0: 13 Mar 2009
1585 # 2.18.0: 23 Sep 2009
1586 # 2.20.0: 23 Mar 2010
1587 # 2.22.0: 23 Sep 2010
1588 # 2.24.0: 30 Jan 2011
1589 # 3.0.0: 10 Feb 2011
1590 # 3.2.0: 25 Sep 2011
1591 # 3.4.0: 26 Mar 2012
1592 # 3.6.0: 24 Sep 2012
1593 # 3.8.0: 25 Mar 2013
1594 # 3.10.0: 23 Sep 2013
1595 # 3.12.0: 25 Mar 2014
1596 # 3.14.0: 30 Sep 2014
1597 # 3.16.0: 22 Mar 2015
1599 # Release dates for Qt versions:
1600 # https://en.wikipedia.org/wiki/List_of_Qt_releases
1601 # 4.6.0: 01 Dec 2009
1602 # 4.7.0: 21 Sep 2010
1603 # 4.8.0: 15 Dec 2011
1604 # 5.0.0: 19 Dec 2012
1605 # 5.1.0: 03 Jul 2013
1606 # 5.2.0: 12 Dec 2013
1607 # 5.3.0: 20 May 2014
1608 # 5.4.0: 10 Dec 2015
1609 # 5.5.0: 01 Jul 2015
1613 if test "x$enable_wireshark" = "xyes"; then
1614 if test "x$with_gtk2" = "xunspecified" -a \
1615 "x$with_gtk3" = "xunspecified" -a \
1616 "x$with_qt" = "xunspecified"; then
1618 # No GUI toolkits were explicitly specified; pick Qt
1623 elif test "x$with_gtk2" = "xunspecified" -a \
1624 "x$with_gtk3" = "xunspecified" -a \
1625 "x$with_qt" = "xno"; then
1627 # Qt was explicitly disabled, and neither GTK+ 2 nor
1628 # GTK+ 3 were explicitly specified; pick GTK+ 3.
1632 if test "x$with_qt" != "xno"; then
1634 # Qt was specified; make sure we have a C++ compiler.
1636 if test -z "$CXX"; then
1637 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1641 # Now make sure we have Qt and, if so, add the flags
1642 # for it to CFLAGS and CXXFLAGS.
1644 AC_WIRESHARK_QT_CHECK($QT_MIN_VERSION, "$with_qt",
1646 CFLAGS="$CFLAGS $Qt_CFLAGS"
1647 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1649 GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-qt"
1652 # XXX - greasy hack to make ui/gtk/recent.c
1655 CPPFLAGS="-DQT_GUI_LIB"
1658 # We're building with Qt, so we need the Qt build
1659 # tools in order to build the Wireshark GUI.
1660 # We've found a particular major version of Qt,
1661 # and we want that version's build tools; for
1662 # example, the Qt 4 version of uic produces files
1663 # that include Qt headers with paths that work
1664 # with Qt 4 but not Qt 5, so we can't use the
1665 # Qt 4 version of uic if we're building with Qt 5.
1666 AC_WIRESHARK_QT_TOOL_CHECK(UIC, uic, "$qt_version")
1668 AC_WIRESHARK_QT_TOOL_CHECK(MOC, moc, "$qt_version")
1670 AC_WIRESHARK_QT_TOOL_CHECK(RCC, rcc, "$qt_version")
1674 # On Darwin, find where the Qt frameworks are
1675 # located, and add that to the rpath, just in
1676 # case this is Qt 5.5 or later and the frameworks
1677 # have an install name that begins with @rpath
1678 # and aren't installed in a frameworks directory
1679 # that's searched by default.
1683 if test $qt_version -le 4
1685 Qt_LDFLAGS="-Wl,-rpath,"`$PKG_CONFIG --libs QtCore | sed -e 's/-F//' -e 's/ -framework.*//'`
1687 Qt_LDFLAGS="-Wl,-rpath,"`$PKG_CONFIG --libs Qt${qt_version}Core | sed -e 's/-F//' -e 's/ -framework.*//'`
1691 AC_SUBST(Qt_LDFLAGS)
1698 # They didn't explicitly ask for Qt,
1699 # so just don't build with it.
1704 AC_MSG_ERROR([Qt is not available])
1708 AC_MSG_ERROR([Qt 4 is not available])
1712 AC_MSG_ERROR([Qt 5 is not available])
1718 if test "x$with_gtk3" = "xyes"; then
1720 # GTK+ 3 was specified; make sure they didn't also
1721 # specify GTK+ 2, as we don't support building both
1722 # GTK+ 2 and GTK+ 3 versions at the same time.
1724 if test "x$with_gtk2" = "xyes"; then
1725 AC_MSG_ERROR([Both GTK+ 2 and GTK+ 3 were specified; choose one but not both])
1729 # Make sure we have GTK+ 3.
1731 AM_PATH_GTK_3_0(3.0.0,
1733 CFLAGS="$CFLAGS $GTK_CFLAGS"
1734 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1736 GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk3"
1738 [AC_MSG_ERROR([GTK+ 3 is not available])])
1739 elif test "x$with_gtk2" = "xyes"; then
1741 # GTK+ 3 wasn't specified, and GTK+ 2 was specified;
1742 # make sure we have GTK+ 2.
1744 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1746 CFLAGS="$CFLAGS $GTK_CFLAGS"
1747 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1749 GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk2"
1751 [AC_MSG_ERROR([GTK+ 2 is not available])])
1754 AC_SUBST(GUI_CONFIGURE_FLAGS)
1756 GLIB_MIN_VERSION=2.16.0
1757 AC_SUBST(GLIB_MIN_VERSION)
1758 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1759 # support, as we need that for dynamically loading plugins.
1760 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1761 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1762 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1763 # GLIB_CFLAGS to CFLAGS.
1764 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1765 # set when generating the Makefile, so we can make programs that require
1766 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1767 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1768 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1769 # programs to be built with GLib.
1771 # Release dates for GLib versions:
1772 # 2.14.0: 03 Aug 2007
1773 # 2.16.0: 10 Mar 2008
1774 # 2.18.0: 02 Sep 2008
1775 # 2.20.0: 13 Mar 2009
1776 # 2.22.0: 22 Sep 2009
1777 # 2.24.0: 28 Mar 2010
1778 # 2.26.0: 27 Sep 2010
1779 # 2.28.0: 08 Feb 2011
1780 # 2.30.0: 27 Sep 2011
1781 # 2.32.0: 24 Mar 2012
1782 # 2.34.0: 24 Sep 2012
1783 # 2.36.0: 25 Mar 2013
1784 # 2.38.0: 23 Sep 2013
1785 # 2.40.0: 24 Mar 2014
1786 # 2.42.0: 22 Sep 2014
1787 # 2.44.0: 23 Mar 2014
1789 use_glib_cflags="true"
1790 if test "$have_gtk" = "yes" -a "$have_qt" = "yes" ; then
1791 # We have both GTK and Qt and thus will be building both wireshark
1792 # and wireshark-gtk.
1794 wireshark_bin="wireshark\$(EXEEXT) wireshark-gtk\$(EXEEXT)"
1795 wireshark_man="wireshark.1"
1796 wireshark_SUBDIRS="codecs ui/qt ui/gtk"
1798 if test "$have_gtk" = "no" -a "$have_qt" = "yes" ; then
1799 # We don't have GTK+ but we have Qt.
1801 wireshark_bin="wireshark\$(EXEEXT)"
1802 wireshark_man="wireshark.1"
1803 wireshark_SUBDIRS="codecs ui/qt"
1805 if test "$have_gtk" = "yes" -a "$have_qt" = "no" ; then
1806 # We have GTK+ but not Qt.
1808 wireshark_bin="wireshark-gtk\$(EXEEXT)"
1809 wireshark_man="wireshark.1"
1810 wireshark_SUBDIRS="codecs ui/gtk"
1811 use_glib_cflags="false"
1812 OSX_APP_FLAGS="$OSX_APP_FLAGS -gtk"
1813 OSX_DMG_FLAGS="-gtk"
1815 if test "$have_gtk" = "no" -a "$have_qt" = "no" ; then
1816 # We have neither GTK+ nor Qt.
1818 # If they didn't explicitly say "--disable-wireshark",
1819 # fail (so that, unless they explicitly indicated that
1820 # they don't want Wireshark, we stop so they know they
1821 # won't be getting Wireshark unless they fix the GTK+/Qt
1824 if test "x$enable_wireshark" = "xyes"; then
1825 if test "x$with_gtk3" = "xyes"; then
1826 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK3_MIN_VERSION or later are available, so Wireshark can't be compiled])
1828 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1835 if test "$have_gtk" = "yes" ; then
1836 # If we have GTK then add flags for it.
1838 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1839 if test \( $gtk_config_major_version -eq 3 -a $gtk_config_minor_version -ge 10 \) ; then
1840 ## Allow use of deprecated & disable deprecated warnings if Gtk >= 3.10;
1841 ## The deprecations in Gtk 3.10 will not be fixed ...
1842 CPPFLAGS="-DGDK_DISABLE_DEPRECATION_WARNINGS $CPPFLAGS"
1844 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1846 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1847 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1848 # Enable GSEAL when building with GTK > 2.20
1849 # (Versions prior to 2.22 lacked some necessary accessors.)
1850 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1854 # XXX - Is this really necessary? When we build with both Gtk+ and Qt it works...
1855 if test "$use_glib_cflags" = "true"; then
1857 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1859 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1860 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1861 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1863 # Don't use GLIB_CFLAGS
1864 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1867 # Error out if a glib header other than a "top level" header
1868 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1870 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1872 # Error out on the usage of deprecated glib functions
1873 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1876 # Check whether GLib modules are supported, to determine whether we
1877 # can support plugins.
1879 AC_MSG_CHECKING(whether GLib supports loadable modules)
1880 ac_save_CFLAGS="$CFLAGS"
1881 ac_save_LIBS="$LIBS"
1882 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1883 LIBS="$GLIB_LIBS $LIBS"
1886 #include <gmodule.h>
1893 if (g_module_supported())
1894 return 0; /* success */
1896 return 1; /* failure */
1898 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1899 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1900 ac_cv_glib_supports_modules=yes])
1901 CFLAGS="$ac_save_CFLAGS"
1902 LIBS="$ac_save_LIBS"
1903 if test "$ac_cv_glib_supports_modules" = yes ; then
1906 plugins_dir="plugins"
1912 AC_SUBST(plugins_dir)
1915 # If we have <dlfcn.h>, check whether we have dladdr.
1917 if test "$ac_cv_header_dlfcn_h" = "yes"
1920 # Use GLib compiler flags and linker flags; GLib's gmodule
1921 # stuff uses the dl APIs if available, so it might know
1922 # what flags are needed.
1924 ac_save_CFLAGS="$CFLAGS"
1925 ac_save_LIBS="$LIBS"
1926 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1927 LIBS="$GLIB_LIBS $LIBS"
1928 AC_CHECK_FUNCS(dladdr)
1929 if test x$ac_cv_func_dladdr = xno
1932 # OK, try it with -ldl, in case you need that to get
1933 # dladdr(). For some reason, on Linux, that's not
1934 # part of the GLib flags; perhaps GLib itself is
1935 # linked with libdl, so that you can link with
1936 # Glib and it'll pull libdl in itself.
1939 AC_CHECK_FUNCS(dladdr)
1941 CFLAGS="$ac_save_CFLAGS"
1942 LIBS="$ac_save_LIBS"
1946 # Check whether GLib's printf supports thousands grouping. (This might
1947 # be different from the system's printf since GLib can optionally use
1948 # its own printf implementation.)
1950 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1951 ac_save_CFLAGS="$CFLAGS"
1952 ac_save_LIBS="$LIBS"
1953 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1954 LIBS="$GLIB_LIBS $LIBS"
1965 setlocale(LC_ALL, "en_US.UTF-8");
1966 str = g_strdup_printf("%'u", 123456);
1967 return (strcmp (str, "123,456") != 0);
1969 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1970 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1971 ac_cv_glib_supports_printf_grouping=no])
1972 CFLAGS="$ac_save_CFLAGS"
1973 LIBS="$ac_save_LIBS"
1974 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1976 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if GLib's printf functions support thousands grouping.])
1981 if test "x$have_gtk" = "xyes"
1984 # We have GTK+; do we want the OS X integration functions and,
1985 # if so, do we have them and, if so, which versions do we have,
1986 # the old Carbon-based ones or the new Cocoa-based ones?
1988 AC_MSG_CHECKING(whether to use OS X integration functions)
1990 AC_ARG_WITH(osx-integration,
1991 AC_HELP_STRING( [--with-osx-integration],
1992 [use OS X integration functions @<:@default=yes, if available@:>@]),
1994 if test $withval = no
1996 want_osx_integration=no
1998 want_osx_integration=yes
2001 want_osx_integration=yes
2003 if test "x$want_osx_integration" = "xno"; then
2007 AC_WIRESHARK_OSX_INTEGRATION_CHECK
2011 AC_SUBST(wireshark_bin)
2012 AC_SUBST(wireshark_man)
2013 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
2014 AM_CONDITIONAL(HAVE_GTK, test "$have_gtk" = "yes")
2015 AC_SUBST(OSX_APP_FLAGS)
2016 AC_SUBST(OSX_DMG_FLAGS)
2018 # Enable/disable tshark
2019 AC_ARG_ENABLE(tshark,
2020 AC_HELP_STRING( [--enable-tshark],
2021 [build tshark @<:@default=yes@:>@]),
2022 tshark=$enableval,enable_tshark=yes)
2024 if test "x$enable_tshark" = "xyes" ; then
2025 tshark_bin="tshark\$(EXEEXT)"
2026 tshark_man="tshark.1"
2027 wiresharkfilter_man="wireshark-filter.4"
2032 AC_SUBST(tshark_bin)
2033 AC_SUBST(tshark_man)
2035 # Enable/disable editcap
2037 AC_ARG_ENABLE(editcap,
2038 AC_HELP_STRING( [--enable-editcap],
2039 [build editcap @<:@default=yes@:>@]),
2040 enable_editcap=$enableval,enable_editcap=yes)
2042 if test "x$enable_editcap" = "xyes" ; then
2043 editcap_bin="editcap\$(EXEEXT)"
2044 editcap_man="editcap.1"
2049 AC_SUBST(editcap_bin)
2050 AC_SUBST(editcap_man)
2053 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
2056 # Enable/disable capinfos
2058 AC_ARG_ENABLE(capinfos,
2059 AC_HELP_STRING( [--enable-capinfos],
2060 [build capinfos @<:@default=yes@:>@]),
2061 enable_capinfos=$enableval,enable_capinfos=yes)
2063 if test "x$enable_capinfos" = "xyes" ; then
2064 capinfos_bin="capinfos\$(EXEEXT)"
2065 capinfos_man="capinfos.1"
2070 AC_SUBST(capinfos_bin)
2071 AC_SUBST(capinfos_man)
2073 # Enable/disable captype
2075 AC_ARG_ENABLE(captype,
2076 AC_HELP_STRING( [--enable-captype],
2077 [build captype @<:@default=yes@:>@]),
2078 enable_captype=$enableval,enable_captype=yes)
2080 if test "x$enable_captype" = "xyes" ; then
2081 captype_bin="captype\$(EXEEXT)"
2082 captype_man="captype.1"
2087 AC_SUBST(captype_bin)
2088 AC_SUBST(captype_man)
2090 # Enable/disable mergecap
2092 AC_ARG_ENABLE(mergecap,
2093 AC_HELP_STRING( [--enable-mergecap],
2094 [build mergecap @<:@default=yes@:>@]),
2095 enable_mergecap=$enableval,enable_mergecap=yes)
2097 if test "x$enable_mergecap" = "xyes" ; then
2098 mergecap_bin="mergecap\$(EXEEXT)"
2099 mergecap_man="mergecap.1"
2104 AC_SUBST(mergecap_bin)
2105 AC_SUBST(mergecap_man)
2107 # Enable/disable reordercap
2109 AC_ARG_ENABLE(reordercap,
2110 AC_HELP_STRING( [--enable-reordercap],
2111 [build reordercap @<:@default=yes@:>@]),
2112 enable_reordercap=$enableval,enable_reordercap=yes)
2114 if test "x$enable_reordercap" = "xyes" ; then
2115 reordercap_bin="reordercap\$(EXEEXT)"
2116 reordercap_man="reordercap.1"
2121 AC_SUBST(reordercap_bin)
2122 AC_SUBST(reordercap_man)
2124 # Enable/disable text2pcap
2126 AC_ARG_ENABLE(text2pcap,
2127 AC_HELP_STRING( [--enable-text2pcap],
2128 [build text2pcap @<:@default=yes@:>@]),
2129 text2pcap=$enableval,enable_text2pcap=yes)
2131 if test "x$enable_text2pcap" = "xyes" ; then
2132 text2pcap_bin="text2pcap\$(EXEEXT)"
2133 text2pcap_man="text2pcap.1"
2138 AC_SUBST(text2pcap_bin)
2139 AC_SUBST(text2pcap_man)
2141 # Enable/disable dftest
2143 AC_ARG_ENABLE(dftest,
2144 AC_HELP_STRING( [--enable-dftest],
2145 [build dftest @<:@default=yes@:>@]),
2146 enable_dftest=$enableval,enable_dftest=yes)
2148 if test "x$enable_dftest" = "xyes" ; then
2149 dftest_bin="dftest\$(EXEEXT)"
2150 dftest_man="dftest.1"
2155 AC_SUBST(dftest_bin)
2156 AC_SUBST(dftest_man)
2158 # Enable/disable randpkt
2160 AC_ARG_ENABLE(randpkt,
2161 AC_HELP_STRING( [--enable-randpkt],
2162 [build randpkt @<:@default=yes@:>@]),
2163 enable_randpkt=$enableval,enable_randpkt=yes)
2165 if test "x$enable_randpkt" = "xyes" ; then
2166 randpkt_bin="randpkt\$(EXEEXT)"
2167 randpkt_man="randpkt.1"
2172 AC_SUBST(randpkt_bin)
2173 AC_SUBST(randpkt_man)
2175 AC_SUBST(wiresharkfilter_man)
2177 dnl Checks for "connect()", used as a proxy for "socket()" - and
2178 dnl "-lsocket", if we need it to get "connect()".
2179 AC_WIRESHARK_SOCKET_LIB_CHECK
2182 AC_MSG_CHECKING(whether to use libpcap for packet capture)
2185 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
2186 [use libpcap for packet capturing @<:@default=yes@:>@]),
2188 if test $withval = no
2191 elif test $withval = yes
2202 if test "x$want_pcap" = "xno" ; then
2206 AC_WIRESHARK_PCAP_CHECK
2210 dnl Check for airpcap
2211 dnl We might want to remove this entirely unless we want to support
2212 dnl AutoTools on Windows.
2213 AC_MSG_CHECKING(whether to include airpcap support)
2214 AC_ARG_ENABLE(airpcap,
2215 AC_HELP_STRING( [--enable-airpcap],
2216 [use AirPcap in Wireshark @<:@default=no@:>@]),
2217 enable_airpcap=$enableval, enable_airpcap=no)
2219 if test x$enable_airpcap = xyes; then
2220 if test "x$want_pcap" = "xno" ; then
2222 AC_MSG_RESULT(pcap not available - disabling airpcap)
2225 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
2233 AC_MSG_CHECKING(whether to build dumpcap)
2235 AC_ARG_ENABLE(dumpcap,
2236 AC_HELP_STRING( [--enable-dumpcap],
2237 [build dumpcap @<:@default=yes@:>@]),
2238 enable_dumpcap=$enableval,enable_dumpcap=yes)
2240 if test "x$enable_dumpcap" = "xyes" ; then
2241 if test "x$want_pcap" = "xno" ; then
2243 AC_MSG_RESULT(pcap not available - disabling dumpcap)
2251 if test "x$enable_dumpcap" = "xyes" ; then
2252 dumpcap_bin="dumpcap\$(EXEEXT)"
2253 dumpcap_man="dumpcap.1"
2258 AC_SUBST(dumpcap_bin)
2259 AC_SUBST(dumpcap_man)
2261 # Enable/disable rawshark
2264 AC_MSG_CHECKING(whether to build rawshark)
2266 AC_ARG_ENABLE(rawshark,
2267 AC_HELP_STRING( [--enable-rawshark],
2268 [build rawshark @<:@default=yes@:>@]),
2269 rawshark=$enableval,enable_rawshark=yes)
2271 if test "x$enable_rawshark" = "xyes" ; then
2272 if test "x$want_pcap" = "xno" ; then
2274 AC_MSG_RESULT(pcap not available - disabling rawshark)
2282 if test "x$enable_rawshark" = "xyes" ; then
2283 rawshark_bin="rawshark\$(EXEEXT)"
2284 rawshark_man="rawshark.1"
2289 AC_SUBST(rawshark_bin)
2290 AC_SUBST(rawshark_man)
2292 dnl androiddump check
2293 AC_MSG_CHECKING(whether to build androiddump)
2295 AC_ARG_ENABLE(androiddump,
2296 AC_HELP_STRING( [--enable-androiddump],
2297 [build androiddump @<:@default=yes@:>@]),
2298 androiddump=$enableval,enable_androiddump=yes)
2300 if test "x$enable_androiddump" = "xyes" ; then
2306 AC_ARG_ENABLE(androiddump_use_libpcap,
2307 AC_HELP_STRING( [--enable-androiddump-use-libpcap],
2308 [build androiddump using libpcap @<:@default=no@:>@]),
2309 androiddump_use_libpcap=$enableval,enable_androiddump_use_libpcap=no)
2311 if test "x$enable_androiddump_use_libpcap" = "xyes" ; then
2312 AC_DEFINE(ANDROIDDUMP_USE_LIBPCAP, 1, [Androiddump will use Libpcap])
2315 if test "x$enable_androiddump" = "xyes" ; then
2316 androiddump_bin="androiddump\$(EXEEXT)"
2322 AC_SUBST(androiddump_bin)
2323 AC_SUBST(androiddump_man)
2325 # Enable/disable echld
2326 AC_ARG_ENABLE(echld,
2327 AC_HELP_STRING( [--enable-echld],
2328 [support echld (Experimental) @<:@default=no@:>@]),
2329 have_echld=$enableval,have_echld=no)
2331 AM_CONDITIONAL(HAVE_ECHLD, test "x$have_echld" = "xyes")
2332 if test "x$have_echld" = "xyes"
2334 AC_DEFINE(HAVE_ECHLD, 1, [Define if echld is enabled])
2335 echld_test_bin="echld_test\$(EXEEXT)"
2342 AC_SUBST(echld_test_bin)
2345 # Enable/disable tfshark
2346 AC_ARG_ENABLE(tfshark,
2347 AC_HELP_STRING( [--enable-tfshark],
2348 [build tfshark (Experimental) @<:@default=no@:>@]),
2349 tfshark=$enableval,enable_tfshark=no)
2351 if test "x$enable_tfshark" = "xyes" ; then
2352 tfshark_bin="tfshark\$(EXEEXT)"
2353 tfshark_man="tfshark.1"
2354 wiresharkfilter_man="wireshark-filter.4"
2359 AC_SUBST(tfshark_bin)
2360 AC_SUBST(tfshark_man)
2363 dnl Use pcap-ng by default
2364 AC_ARG_ENABLE(pcap-ng-default,
2365 AC_HELP_STRING( [--enable-pcap-ng-default],
2366 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
2367 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
2368 if test x$enable_pcap_ng_default = xyes; then
2369 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
2372 dnl pcap remote check
2373 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
2375 AC_ARG_WITH(pcap-remote,
2376 AC_HELP_STRING([--with-pcap-remote],
2377 [use libpcap remote capturing (requires libpcap)]),
2379 if test $withval = no
2383 want_pcap_remote=yes
2388 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
2392 AC_WIRESHARK_PCAP_REMOTE_CHECK
2396 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
2399 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
2400 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
2402 if test "x$withval" = "xno"
2405 elif test "x$withval" = "xyes"
2414 # Use zlib if it's present, otherwise don't.
2416 want_zlib=ifavailable
2419 if test "x$want_zlib" = "xno" ; then
2423 AC_WIRESHARK_ZLIB_CHECK
2424 if test "x$want_zlib" = "xno" ; then
2425 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
2427 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
2428 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
2435 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
2436 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
2438 if test $withval = no
2441 elif test $withval = yes
2446 want_lua_dir=$withval
2449 # By default use Lua if we can find it
2450 want_lua=ifavailable
2453 if test "x$want_lua" != "xno" ; then
2454 AC_WIRESHARK_LIBLUA_CHECK
2456 if test "x$want_lua" = "xyes" -a "x$have_lua" = "xno"
2458 AC_MSG_ERROR([Lua support was requested, but is not available])
2461 if test "x$have_lua" = "xyes"
2463 AC_DEFINE(HAVE_LUA, 1, [Define to use Lua])
2465 AM_CONDITIONAL(HAVE_LIBLUA, test x$have_lua = xyes)
2467 AC_SUBST(LUA_CFLAGS)
2471 AC_MSG_CHECKING(whether to use libportaudio for the GTK+ RTP player)
2473 AC_ARG_WITH(portaudio,
2474 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
2475 [use libportaudio (located in directory DIR, if supplied) for the GTK+ RTP player @<:@default=yes, if available@:>@]),
2477 if test $withval = no
2480 elif test $withval = yes
2485 portaudio_dir=$withval
2489 # Use libportaudio by default
2491 want_portaudio=ifavailable
2494 if test "x$want_portaudio" = "xno" ; then
2498 AC_WIRESHARK_LIBPORTAUDIO_CHECK
2499 if test "x$want_portaudio" = "xno" ; then
2500 AC_MSG_RESULT(libportaudio not found - disabling support for the GTK+ RTP player)
2503 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
2508 AC_HELP_STRING( [--enable-ipv6],
2509 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
2510 enable_ipv6=$enableval,enable_ipv6=yes)
2512 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
2513 if test "x$enable_ipv6" = "xno" ; then
2517 AC_WIRESHARK_IPV6_STACK
2521 dnl Check if dumpcap should be installed with filesystem capabilities
2522 AC_PATH_PROG(SETCAP, setcap)
2523 AC_ARG_ENABLE(setcap-install,
2524 AC_HELP_STRING( [--enable-setcap-install],
2525 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
2526 enable_setcap_install=$enableval,enable_setcap_install=no)
2528 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
2529 if test "x$enable_setcap_install" = "xno" ; then
2532 if test "x$SETCAP" = "x" ; then
2533 AC_MSG_RESULT(setcap not found)
2534 AC_MSG_ERROR([Setcap install was requested, but setcap was not found])
2535 elif test "x$enable_dumpcap" = "xno" ; then
2536 AC_MSG_RESULT(dumpcap disabled)
2537 AC_MSG_ERROR([Setcap install works only with dumpcap, but dumpcap is disabled])
2543 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
2545 dnl Check if dumpcap should be installed setuid
2546 AC_ARG_ENABLE(setuid-install,
2547 AC_HELP_STRING( [--enable-setuid-install],
2548 [install dumpcap as setuid @<:@default=no@:>@]),
2549 enable_setuid_install=$enableval,enable_setuid_install=no)
2551 AC_MSG_CHECKING(whether to install dumpcap setuid)
2552 if test "x$enable_setuid_install" = "xno" ; then
2555 if test "x$enable_setcap_install" = "xyes" ; then
2556 enable_setuid_install=no
2557 AC_MSG_RESULT(setcap and setuid both selected)
2558 AC_MSG_ERROR(You must choose one of setcap install and setuid install)
2559 elif test "x$enable_dumpcap" = "xno" ; then
2560 AC_MSG_RESULT(dumpcap disabled)
2561 AC_MSG_ERROR([Setuid install works only with dumpcap, but dumpcap is disabled])
2567 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
2568 AC_CHECK_FUNCS(setresuid setresgid)
2570 dnl ...but our Network Operations group is named "no"!
2572 AC_ARG_WITH(dumpcap-group,
2573 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
2574 [restrict dumpcap to GROUP]),
2576 if test "x$withval" = "xyes"; then
2577 AC_MSG_ERROR([No dumpcap group specified.])
2578 elif test "x$withval" != "xno"; then
2579 if test "x$enable_dumpcap" = "xno" ; then
2580 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
2582 AC_MSG_RESULT($withval)
2583 DUMPCAP_GROUP="$withval"
2586 AC_SUBST(DUMPCAP_GROUP)
2587 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
2589 dnl libcap (not libpcap) check
2591 AC_MSG_CHECKING(whether to use the libcap capabilities library)
2594 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
2595 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
2597 if test "x$withval" = "xno"; then
2599 elif test "x$withval" = "xyes"; then
2601 elif test -d "$withval"; then
2603 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2606 if test "x$with_libcap" = "xno" ; then
2610 AC_WIRESHARK_LIBCAP_CHECK
2612 AC_SUBST(LIBCAP_LIBS)
2614 dnl Checks for header files.
2615 dnl Some of these may not be needed: http://hacks.owlfolio.org/header-survey/
2616 dnl Note, however, that, whilst this script is generally run only on UN*Xes:
2618 dnl 1) we also support building on and for Windows and not all of those
2619 dnl headers are present on Windows, so the code has to check a
2620 dnl #define *anyway* to determine whether to include the header
2625 dnl 2) this might also be run on Windows with a sufficiently UNIXy
2626 dnl environment such as Cygwin (although Wireshark should be built
2627 dnl natively rather than using Cygwin).
2629 AC_CHECK_HEADERS(fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h unistd.h)
2630 AC_CHECK_HEADERS(sys/ioctl.h sys/param.h sys/socket.h sys/sockio.h sys/stat.h sys/time.h sys/types.h sys/utsname.h sys/wait.h)
2631 AC_CHECK_HEADERS(netinet/in.h)
2632 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
2635 # On Linux, check for some additional headers, which we need as a
2636 # workaround for a bonding driver bug and for libpcap's current lack
2637 # of its own workaround for that bug.
2641 AC_CHECK_HEADERS(linux/sockios.h linux/if_bonding.h,,,[#include <sys/socket.h>])
2647 AC_MSG_CHECKING(whether to use SSL library)
2650 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
2651 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
2653 if test "x$withval" = "xno"; then
2655 elif test "x$withval" = "xyes"; then
2657 elif test -d "$withval"; then
2659 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2664 if test "x$want_ssl" = "xyes"; then
2666 AC_CHECK_LIB(crypto,EVP_md5,
2671 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
2679 AC_MSG_CHECKING(whether to use Kerberos library)
2682 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
2683 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
2685 if test $withval = no
2688 elif test $withval = yes
2697 # Use Kerberos library if available, otherwise don't.
2699 want_krb5=ifavailable
2702 if test "x$want_krb5" = "xno" ; then
2706 AC_WIRESHARK_KRB5_CHECK
2712 AC_MSG_CHECKING(whether to use the c-ares library if available)
2715 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
2716 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
2718 if test "x$withval" = "xno"; then
2720 elif test "x$withval" = "xyes"; then
2722 elif test -d "$withval"; then
2724 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2727 if test "x$want_c_ares" = "xno" ; then
2731 AC_WIRESHARK_C_ARES_CHECK
2733 AC_SUBST(C_ARES_LIBS)
2737 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
2740 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
2741 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2743 if test "x$withval" = "xno"; then
2745 elif test "x$withval" = "xyes"; then
2747 elif test -d "$withval"; then
2749 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2752 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2756 AC_WIRESHARK_ADNS_CHECK
2760 if test "x$have_good_c_ares" != "xyes" -a "x$have_good_adns" != "xyes"; then
2761 # We don't have an asynchronous name resolver, look for a synchronous one
2763 dnl Checks for "getaddrinfo()" - and "-lnsl", if we need it to get
2764 dnl "getaddrinfo()".
2765 AC_WIRESHARK_GETADDRINFO_LIB_CHECK
2767 if test "x$ac_cv_func_getaddrinfo" != "xyes" ; then
2768 # We don't have the modern name resolver, try older stuff
2770 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
2771 dnl "gethostbyname()".
2772 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
2774 if test "x$ac_cv_func_gethostbyname" != "xyes" ; then
2775 # Hopefully this never actually happens.
2776 # The code works even without name resolvers but we
2777 # alert the user to this unusual condition.
2778 AC_MSG_ERROR(Couldn't find any name resolvers!)
2781 AC_CHECK_FUNCS(gethostbyname2)
2787 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2790 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2791 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2793 if test "x$withval" = "xno"; then
2795 elif test "x$withval" = "xyes"; then
2797 elif test -d "$withval"; then
2799 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2802 if test "x$want_geoip" = "xno"; then
2806 AC_WIRESHARK_GEOIP_CHECK
2808 AC_SUBST(GEOIP_LIBS)
2811 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2812 # never return (just like Charlie on the MTA).
2814 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2815 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2816 # follow the function name, so we need two different flavors of
2819 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2821 dnl Checks for typedefs, structures, and compiler characteristics.
2824 # Check how we can get the time zone abbreviation
2825 AC_WIRESHARK_TIMEZONE_ABBREV
2827 # We need to know whether "struct stat" has an "st_flags" member
2828 # for file_user_immutable().
2830 AC_WIRESHARK_STRUCT_ST_FLAGS
2832 # We need to know whether "struct sockaddr" has an "sa_len" member
2833 # for get_interface_list().
2835 AC_WIRESHARK_STRUCT_SA_LEN
2837 # We must know our byte order
2840 # Checks whether "-traditional" is needed when using "ioctl".
2841 # XXX - do we need this?
2842 AC_PROG_GCC_TRADITIONAL
2844 AC_CHECK_FUNC(getopt_long,
2847 AC_DEFINE(HAVE_GETOPT_LONG, 1, [Define to 1 if you have the getopt_long function.])
2850 # Do we have optreset?
2852 AC_MSG_CHECKING(whether optreset is defined)
2855 extern int optreset;
2859 ac_cv_pcap_debug_defined=yes,
2860 ac_cv_pcap_debug_defined=no)
2861 if test "$ac_cv_pcap_debug_defined" = yes ; then
2863 AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if you have the optreset variable])
2868 GETOPT_LO="wsgetopt.lo")
2871 AC_CHECK_FUNCS(mkstemp mkdtemp)
2873 AC_SEARCH_LIBS(inet_aton, [socket nsl],
2876 AC_DEFINE(HAVE_INET_ATON, 0, [Define to 1 if you have the inet_aton function.])
2878 INET_ATON_LO="inet_aton.lo")
2879 AC_SUBST(INET_ATON_LO)
2881 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2882 dnl check for pre-BIND82 inet_pton() bug.
2883 AC_MSG_CHECKING(for broken inet_pton)
2884 AC_TRY_RUN([#include <sys/types.h>
2885 #include <sys/socket.h>
2886 #include <netinet/in.h>
2887 #include <arpa/inet.h>
2892 /* this should return 0 (error) */
2893 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2897 }], [AC_MSG_RESULT(ok);
2898 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2899 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2900 have_inet_pton=no])],
2902 if test "$have_inet_pton" = no; then
2903 INET_PTON_LO="inet_pton.lo"
2907 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2908 AC_SUBST(INET_PTON_LO)
2910 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2911 AC_MSG_CHECKING([for inet_ntop prototype])
2912 AC_TRY_COMPILE([#include <stdio.h>
2913 #include <sys/types.h>
2914 #include <sys/socket.h>
2915 #include <netinet/in.h>
2916 #include <arpa/inet.h>
2918 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2920 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2921 [Define if inet_ntop() prototype exists])], [
2922 AC_TRY_COMPILE([#include <stdio.h>
2923 #include <sys/types.h>
2924 #include <sys/socket.h>
2925 #include <netinet/in.h>
2926 #include <arpa/inet.h>
2928 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2930 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2931 [Define if inet_ntop() prototype exists])], [
2932 AC_MSG_RESULT(no)])])
2934 INET_NTOP_LO="inet_ntop.lo"
2935 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2936 [Define if inet/v6defs.h needs to be included])])
2937 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2938 AC_SUBST(INET_NTOP_LO)
2940 AC_CHECK_FUNC(strptime,
2943 AC_DEFINE(HAVE_STRPTIME, 1, [Define if you have the strptime function.])
2945 STRPTIME_LO="strptime.lo")
2946 AC_SUBST(STRPTIME_LO)
2948 AC_CHECK_FUNC(popcount,
2951 AC_DEFINE(HAVE_POPCOUNT, 1, [Define if you have the popcount function.])
2953 POPCOUNT_LO="popcount.lo")
2954 AC_SUBST(POPCOUNT_LO)
2956 AC_CHECK_FUNCS(getprotobynumber)
2957 AC_CHECK_FUNCS(issetugid)
2958 AC_CHECK_FUNCS(sysconf)
2960 dnl blank for now, but will be used in future
2961 AC_SUBST(wireshark_SUBDIRS)
2963 # Check Bluetooth SBC codec for RTP Player
2964 # git://git.kernel.org/pub/scm/bluetooth/sbc.git
2966 AC_HELP_STRING( [--with-sbc=@<:@yes/no@:>@],
2967 [use SBC codec to play Bluetooth A2DP stream @<:@default=yes, if available@:>@]),
2968 with_sbc="$withval"; want_sbc="yes", with_sbc="yes")
2970 PKG_CHECK_MODULES(SBC, sbc >= 1.0, [have_sbc=yes], [have_sbc=no])
2971 if test "x$with_sbc" != "xno"; then
2972 if (test "${have_sbc}" = "yes"); then
2973 AC_DEFINE(HAVE_SBC, 1, [Define to support playing SBC by standalone BlueZ SBC library])
2974 elif test "x$want_sbc" = "xyes"; then
2975 # Error out if the user explicitly requested the sbc library
2976 AC_MSG_ERROR([SBC codec library was requested, but is not available])
2983 dnl check whether plugins should be enabled and, if they should be,
2984 dnl check for plugins directory - stolen from Amanda's configure.ac
2986 dnl we don't wish to expand ${libdir} yet
2987 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2988 AC_ARG_WITH(plugins,
2989 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2990 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2992 if test "x$withval" = "xno"; then
2994 elif test "x$have_plugins" = "xno"; then
2995 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2996 elif test "x$withval" != "xyes"; then
2997 plugindir="$withval"
3000 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
3001 if test x$have_plugins = xyes
3003 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
3006 CPPFLAGS="$CPPFLAGS '-DPLUGIN_INSTALL_DIR=\"\$(plugindir)\"'"
3009 # The plugin dissectors reside in ./plugins/PROTO/
3012 AC_SUBST(PLUGIN_LIBS)
3015 dnl Use extcap by default
3016 extcapdir='${datadir}/wireshark/extcap/'
3018 AC_HELP_STRING( [--with-extcap@<:@=DIR@:>@],
3019 [use extcap for external capture sources (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
3021 if test "x$withval" = "xno"; then
3023 elif test "x$withval" = "xyes"; then
3025 elif test "x$withval" != "xyes"; then
3027 extcapdir ="$withval"
3032 AM_CONDITIONAL(HAVE_EXTCAP, test "x$have_extcap" = "xyes")
3033 if test "x$have_extcap" = "xyes"
3035 AC_DEFINE(HAVE_EXTCAP, 1, [Define if external capture sources should be enabled])
3036 AC_DEFINE_UNQUOTED(EXTCAP_DIR,"$extcapdir", [Directory for extcap plugins])
3042 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
3043 # (autoconf? automake? libtool?) - with the newer version(s), it's
3044 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
3046 # With older version(s) of those tool(s), however, it's not just an
3047 # alias, and the configure scripts don't work without it.
3050 AC_SUBST(LIBTOOL_DEPS)
3052 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
3053 if test x$enable_static = xyes -a x$have_plugins = xyes
3055 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
3057 AC_SUBST(ENABLE_STATIC)
3059 # Gather which GUI we're building for rpmbuild
3060 if test "x$have_gtk" = "xyes"; then
3061 if test "x$with_gtk3" = "xyes"; then
3062 RPMBUILD_WITH_ARGS="--with gtk3 --without gtk2"
3064 RPMBUILD_WITH_ARGS="--without gtk3 --with gtk2"
3067 RPMBUILD_WITH_ARGS="--without gtk2 --without gtk3"
3069 if test "x$have_qt" = "xyes" ; then
3070 if test "$qt_version" -eq "5"; then
3071 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt5"
3073 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt"
3076 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without qt --without qt5"
3078 if test "x$have_lua" = "xyes" ; then
3079 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with lua"
3081 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without lua"
3083 AC_SUBST(RPMBUILD_WITH_ARGS)
3085 dnl Save the cacheable configure results to config.cache before recursing
3088 sinclude(plugins/Custom.m4) dnl
3089 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
3091 sinclude(asn1/Custom.m4) dnl
3092 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
3094 AC_CONFIG_HEADERS(config.h)
3099 _CUSTOM_ASN1_AC_OUTPUT_
3100 asn1/acp133/Makefile
3102 asn1/ansi_map/Makefile
3103 asn1/ansi_tcap/Makefile
3104 asn1/atn-cm/Makefile
3105 asn1/atn-cpdlc/Makefile
3106 asn1/atn-ulcs/Makefile
3110 asn1/charging_ase/Makefile
3115 asn1/credssp/Makefile
3123 asn1/gprscdr/Makefile
3124 asn1/gsm_map/Makefile
3133 asn1/h450-ros/Makefile
3136 asn1/HI2Operations/Makefile
3141 asn1/isdn-sup/Makefile
3142 asn1/kerberos/Makefile
3145 asn1/logotypecertextn/Makefile
3149 asn1/lte-rrc/Makefile
3152 asn1/mpeg-audio/Makefile
3153 asn1/mpeg-pes/Makefile
3155 asn1/ns_cert_exts/Makefile
3156 asn1/novell_pkis/Makefile
3164 asn1/pkcs12/Makefile
3165 asn1/pkinit/Makefile
3166 asn1/pkixac/Makefile
3167 asn1/pkix1explicit/Makefile
3168 asn1/pkix1implicit/Makefile
3169 asn1/pkixproxy/Makefile
3170 asn1/pkixqualified/Makefile
3171 asn1/pkixtsp/Makefile
3174 asn1/q932-ros/Makefile
3185 asn1/sbc-ap/Makefile
3188 asn1/spnego/Makefile
3196 asn1/wlancertextn/Makefile
3198 asn1/x509af/Makefile
3199 asn1/x509ce/Makefile
3200 asn1/x509if/Makefile
3201 asn1/x509sat/Makefile
3204 capchild/doxygen.cfg
3206 caputils/doxygen.cfg
3210 epan/compress/Makefile
3213 epan/dfilter/Makefile
3214 epan/dissectors/Makefile
3215 epan/dissectors/dcerpc/Makefile
3216 epan/dissectors/pidl/Makefile
3217 epan/ftypes/Makefile
3218 epan/nghttp2/Makefile
3231 packaging/macosx/Info.plist
3232 packaging/macosx/Makefile
3233 packaging/macosx/osx-dmg.sh
3234 packaging/macosx/Wireshark_package.pmdoc/index.xml
3235 packaging/nsis/Makefile
3236 packaging/rpm/Makefile
3237 packaging/rpm/SPECS/Makefile
3238 packaging/rpm/SPECS/wireshark.spec
3239 packaging/svr4/Makefile
3240 packaging/svr4/checkinstall
3241 packaging/svr4/pkginfo
3243 plugins/docsis/Makefile
3244 plugins/easy_codec/Makefile
3245 plugins/ethercat/Makefile
3246 plugins/gryphon/Makefile
3247 plugins/irda/Makefile
3248 plugins/m2m/Makefile
3249 plugins/mate/Makefile
3250 plugins/opcua/Makefile
3251 plugins/profinet/Makefile
3252 plugins/stats_tree/Makefile
3253 plugins/unistim/Makefile
3254 plugins/wimax/Makefile
3255 plugins/wimaxasncp/Makefile
3256 plugins/wimaxmacphy/Makefile
3258 tools/lemon/Makefile
3264 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
3269 if test "x$have_gtk" = "xyes"; then
3270 if test "x$with_gtk3" = "xyes"; then
3271 gtk_lib_message=" (with GTK+ 3"
3273 gtk_lib_message=" (with GTK+ 2"
3275 if test "x$have_ige_mac" = "xyes"; then
3276 gtk_lib_message="$gtk_lib_message and Mac OS X integration)"
3278 gtk_lib_message="$gtk_lib_message)"
3282 if test "x$have_qt" = "xyes" ; then
3283 enable_wireshark_qt="yes"
3284 qt_lib_message=" (with Qt $qt_version)"
3286 enable_wireshark_qt="no"
3289 if test "x$enable_setcap_install" = "xyes" ; then
3290 setcap_message="yes"
3295 if test "x$enable_setuid_install" = "xyes" ; then
3296 setuid_message="yes"
3301 if test "x$DUMPCAP_GROUP" = "x" ; then
3302 dumpcap_group_message="(none)"
3304 dumpcap_group_message="$DUMPCAP_GROUP"
3307 if test "x$want_zlib" = "xno" ; then
3313 if test "x$have_lua" = "xyes" ; then
3319 if test "x$have_qt_multimedia_lib" = "xyes" ; then
3320 qt_multimedia_message="yes"
3322 qt_multimedia_message="no"
3325 if test "x$want_portaudio" = "xyes" ; then
3326 portaudio_message="yes"
3328 portaudio_message="no"
3331 if test "x$want_ssl" = "xno" ; then
3337 if test "x$want_krb5" = "xno" ; then
3340 krb5_message="yes ($ac_krb5_version)"
3343 if test "x$have_good_c_ares" = "xyes" ; then
3344 c_ares_message="yes"
3349 if test "x$have_good_adns" = "xyes" ; then
3352 if test "x$have_good_c_ares" = "xyes" ; then
3353 adns_message="no (using c-ares instead)"
3359 if test "x$have_good_libcap" = "xyes" ; then
3360 libcap_message="yes"
3365 if test "x$have_good_geoip" = "xyes" ; then
3372 echo "The Wireshark package has been configured with the following options."
3373 echo " Build wireshark : $enable_wireshark_qt$qt_lib_message"
3374 echo " Build wireshark-gtk : $have_gtk""$gtk_lib_message"
3375 echo " Build tshark : $enable_tshark"
3376 echo " Build tfshark : $enable_tfshark"
3377 echo " Build capinfos : $enable_capinfos"
3378 echo " Build captype : $enable_captype"
3379 echo " Build editcap : $enable_editcap"
3380 echo " Build dumpcap : $enable_dumpcap"
3381 echo " Build mergecap : $enable_mergecap"
3382 echo " Build reordercap : $enable_reordercap"
3383 echo " Build text2pcap : $enable_text2pcap"
3384 echo " Build randpkt : $enable_randpkt"
3385 echo " Build dftest : $enable_dftest"
3386 echo " Build rawshark : $enable_rawshark"
3387 echo " Build androiddump : $enable_androiddump"
3388 echo " Build echld : $have_echld"
3390 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
3391 echo " Install dumpcap with capabilities : $setcap_message"
3392 echo " Install dumpcap setuid : $setuid_message"
3393 echo " Use dumpcap group : $dumpcap_group_message"
3394 echo " Use plugins : $have_plugins"
3395 echo " Use external capture sources : $have_extcap"
3396 echo " Use Lua library : $lua_message"
3397 echo " Build Qt RTP player : $qt_multimedia_message"
3398 echo " Build GTK+ RTP player : $portaudio_message"
3399 echo " Build profile binaries : $enable_profile_build"
3400 echo " Use pcap library : $want_pcap"
3401 echo " Use zlib library : $zlib_message"
3402 echo " Use kerberos library : $krb5_message"
3403 echo " Use c-ares library : $c_ares_message"
3404 echo " Use GNU ADNS library : $adns_message"
3405 echo " Use SMI MIB library : $libsmi_message"
3406 echo " Use GNU crypto library : $gcrypt_message"
3407 echo " Use SSL crypto library : $ssl_message"
3408 echo " Use IPv6 name resolution : $enable_ipv6"
3409 echo " Use gnutls library : $tls_message"
3410 echo " Use POSIX capabilities library : $libcap_message"
3411 echo " Use GeoIP library : $geoip_message"
3412 echo " Use nl library : $libnl_message"
3413 echo " Use SBC codec library : $have_sbc"