4 m4_define([version_major], [1])
5 m4_define([version_minor], [9])
6 m4_define([version_micro], [3])
7 m4_define([version_micro_extra], version_micro)
8 m4_append([version_micro_extra], [])
10 AC_INIT(wireshark, [version_major.version_minor.version_micro_extra], http://bugs.wireshark.org/, , http://www.wireshark.org/)
12 # Minimum autoconf version we require.
14 # Variable expansion doesn't work in AC_PREREQ()
16 AC_SUBST(AC_MIN_VERSION)
18 dnl Check for CPU / vendor / OS
19 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
20 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
21 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
24 dnl As nothing in the Wireshark is itself a build tool (we are not,
25 dnl for example, a compiler that generates machine code), we probably
26 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
27 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
28 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
29 dnl lemon, that need to be built for the build machine, not for the
30 dnl host machine, so we might need both.
32 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
34 dnl AC_CANONICAL_BUILD
38 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
40 # Make Wireshark's version available in config.h
41 AC_DEFINE(VERSION_MAJOR, version_major, [Wireshark's major version])
42 AC_DEFINE(VERSION_MINOR, version_minor, [Wireshark's minor version])
43 AC_DEFINE(VERSION_MICRO, version_micro, [Wireshark's micro version])
47 dnl Checks for programs.
52 dnl Work around libtool bug (fixed in the version 1.5a?)
53 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
56 AC_PATH_PROG(PERL, perl)
58 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
59 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
60 # as the tarball should contain the results of running YACC/Bison on .y
61 # files and running Flex on .l files, but a user building from SVN
62 # will have to run YACC/Bison and Flex to process those files.
64 # On the other hand, what about users who use a distribution tarball to
65 # do development? They *shouldn't* - that's what the SVN repository is
66 # for - but they might. They'd get errors if they modify a .y or .l
67 # file and try to do a build - but the error should tell them that they
68 # need to get YACC/Bison and/or Flex.
70 # Then again, getting them shouldn't be too big of a burden.
72 # XXX - is the same true of pod2man and pod2html, or are they needed
73 # even when building from a distribution tarball?
77 AC_PATH_PROG(YACCDUMMY, $YACC)
78 if test "x$YACCDUMMY" = x
80 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
83 AC_PATH_PROG(LEX, flex)
86 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
88 AC_PATH_PROG(POD2MAN, pod2man)
89 if test "x$POD2MAN" = x
92 # The alternative is not to build the man pages....
94 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
96 AC_PATH_PROG(POD2HTML, pod2html)
97 if test "x$POD2HTML" = x
100 # The alternative is not to build the HTML man pages....
102 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
106 # XXX - this looks for various HTML viewers on the host, not the target;
107 # we really want to know what's available on the target, for cross-builds.
108 # That would probably require us to, at run time, look for xdg-open and,
109 # if we don't find it, look for mozilla, htmlview, etc.
111 AC_PATH_PROG(HTML_VIEWER, xdg-open)
112 if test "x$HTML_VIEWER" != x
115 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
116 # Define some variable to be that, so we just run that?
118 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
121 # XXX - we have to define HTML_VIEWER for the prefs.c code that
122 # sets the default value of the Web browser preference, even
123 # though that preference won't be offered.
125 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
127 AC_PATH_PROG(HTML_VIEWER, htmlview)
128 if test "x$HTML_VIEWER" = x
130 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
132 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
143 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
144 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
145 # we assume GCC and clang do; other compilers should be added here.
147 # This is done to avoid getting tripped up by compilers that support
148 # those flags but give them a different meaning.
150 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
151 ac_supports_gcc_flags=yes
155 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
156 # support "-Wl,{options}" to pass options through to the linker.
157 # Currently, we assume GCC, xlc, and clang do; other compilers should
160 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
161 ac_supports_W_linker_passthrough=yes
165 # Set "ac_supports_attribute_unused" if the compiler is known to
166 # support "__attribute__(unused)".
167 # Currently, we assume GCC and clang do; other compilers should
170 # XXX - do this with a compiler test?
172 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
173 ac_supports_W_linker_passthrough=yes
176 if test "x$CC_FOR_BUILD" = x
180 AC_SUBST(CC_FOR_BUILD)
181 AC_SUBST(CFLAGS_FOR_BUILD)
184 AC_PATH_PROG(DOXYGEN, doxygen)
185 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
186 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
189 # Try to arrange for large file support.
194 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+, then switched back to
195 # LGPLv2.1+ in version 3.1.10
197 AC_ARG_WITH([gnutls],
198 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
199 [use GnuTLS library @<:@default=yes@:>@]),
200 with_gnutls="$withval", with_gnutls="yes")
201 if test "x$with_gnutls" = "xyes"; then
202 have_license_compatible_gnutls="no"
203 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.1.10 ],
204 [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.1.10 not found " ]
207 if test "x$have_license_compatible_gnutls" != "xyes"; then
208 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
209 [ have_license_compatible_gnutls="yes" ] , [ echo "GnuTLS >= 1.2.0, < 3.0 not found " ]
213 if test "x$have_license_compatible_gnutls" = "xyes"; then
214 echo "GnuTLS found, enabling SSL decryption"
215 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
218 echo "GnuTLS with compatible license not found, disabling SSL decryption"
225 AC_ARG_WITH([gcrypt],
226 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
227 [use gcrypt library @<:@default=yes@:>@]),
228 with_gcrypt="$withval", with_gcrypt="yes")
229 if test "x$with_gcrypt" = "xyes"; then
230 AM_PATH_LIBGCRYPT(1.1.92,
232 echo "libgcrypt found, enabling ipsec decryption"
233 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
237 if test x$libgcrypt_config_prefix != x ; then
238 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
240 echo "libgcrypt not found, disabling ipsec decryption"
248 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
249 [use Qt instead of GTK+ @<:@default=no@:>@]),
250 with_qt="$withval", with_qt="no")
253 AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
254 [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
256 if test "x$withval" = "xno"
259 elif test "x$withval" = "xyes"
263 elif test "x$withval" = "x1"
267 elif test "x$withval" = "x2"
271 elif test "x$withval" = "x3"
276 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
280 # Use libnl if it's present, otherwise don't.
282 want_libnl=ifavailable
286 # Libnl is Linux-specific.
291 AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
293 if test x$want_libnl = "xno"; then
298 # Test for specific libnl versions only if no version
299 # was specified by the user or if the version in question
300 # was requested by the user.
302 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
303 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
305 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
306 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
308 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
309 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
311 if (test "${have_libnl3}" = "yes"); then
312 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
313 LIBS="$LIBS $LIBNL3_LIBS"
314 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
315 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
316 libnl_message="yes (v3)"
318 elif (test "${have_libnl2}" = "yes"); then
319 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
320 LIBS="$LIBS $LIBNL2_LIBS"
321 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
322 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
323 libnl_message="yes (v2)"
325 elif (test "${have_libnl1}" = "yes"); then
326 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
327 LIBS="$LIBS $LIBNL1_LIBS"
328 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
329 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
330 libnl_message="yes (v1)"
333 if test x$want_libnl = "xyes"; then
334 case "$libnl_version" in
337 AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
341 AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
348 AC_MSG_CHECKING([if nl80211.h is new enough])
349 AC_TRY_COMPILE([#include <linux/nl80211.h>],
350 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
351 x = NL80211_ATTR_SUPPORTED_IFTYPES;
352 x = NL80211_ATTR_SUPPORTED_COMMANDS;
353 x = NL80211_ATTR_WIPHY_FREQ;
354 x = NL80211_CHAN_NO_HT;],
355 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
358 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
359 AC_TRY_COMPILE([#include <linux/nl80211.h>],
360 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
361 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
366 if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
367 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
372 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
373 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
374 with_gtk3="$withval", with_gtk3="no")
377 # FIXME: currently the path argument to with-libsmi is being ignored
384 # Check for a2x (convert asciidoc to another format)
385 AC_PATH_PROG(A2X, a2x)
386 AC_CHECK_PROG(HAVE_A2X, a2x, "yes", "no")
387 AM_CONDITIONAL(HAVE_A2X, test x$HAVE_A2X = xyes)
389 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
391 # Want to control a tape drive? Use mt. Want to convert HTML to text?
392 # Uhhhhh... elinks? lynx? w3m? pandoc? html2text?
393 AC_PATH_PROG(ELINKS, elinks)
394 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
395 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
397 # Check for fop (translate .fo to e.g. pdf)
398 AC_PATH_PROG(FOP, fop)
399 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
400 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
402 # Check for lynx (html -> text)
403 AC_PATH_PROG(LYNX, lynx)
404 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
405 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
407 AC_PATH_PROG(PYTHON, python)
409 # Check for w3m (html -> text)
410 AC_PATH_PROG(W3M, w3m)
411 AC_CHECK_PROG(HAVE_W3M, w3m, "yes", "no")
412 AM_CONDITIONAL(HAVE_W3M, test x$HAVE_W3M = xyes)
415 AC_PATH_PROG(XMLLINT, xmllint)
416 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
417 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
420 AC_PATH_PROG(XSLTPROC, xsltproc)
421 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
422 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
425 # Check for packaging utilities
426 # For now, we check to see if the various packaging utilites are in our
427 # path. I'm too lazy to write code to go hunt for them. - Gerald
430 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
431 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
432 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
434 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
435 -a x$HAVE_PKGTRANS = xyes ; then
436 HAVE_SVR4_PACKAGING=yes
438 HAVE_SVR4_PACKAGING=no
440 AC_SUBST(HAVE_SVR4_PACKAGING)
443 AC_WIRESHARK_RPM_CHECK
447 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
450 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
451 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
452 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
454 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
455 -a x$HAVE_BLESS = xyes ; then
456 HAVE_OSX_PACKAGING=yes
458 HAVE_OSX_PACKAGING=no
460 AC_SUBST(HAVE_OSX_PACKAGING)
463 # Try to add some additional gcc checks to CFLAGS
465 AC_ARG_ENABLE(extra-gcc-checks,
466 AC_HELP_STRING( [--enable-extra-gcc-checks],
467 [do additional -W checks in GCC @<:@default=no@:>@]),
469 wireshark_extra_gcc_flags=$enableval
470 if test $enableval != no
472 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
474 # Various code blocks this one.
476 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
477 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
479 # Some memset() calls to clear out structures
480 # on the stack are getting flagged as "will never
481 # be executed" by this, at least by Apple's
482 # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on
483 # Apple Inc. build 5658) (LLVM build 2336.11.00), for
484 # some unknown reason.
486 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
488 # Due to various places where APIs we don't control
489 # require us to cast away constness, we can probably
490 # never enable these ones with -Werror.
492 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
493 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
495 # Some generated ASN.1 dissectors block this one;
496 # multiple function declarations for the same
497 # function are being generated.
499 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
501 # Some loops are safe, but it's hard to convince the
504 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
506 # All the registration functions block these for now.
508 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
509 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
512 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
513 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
514 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
515 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
516 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
517 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
518 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
519 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
520 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
521 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
522 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
523 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes, C)
524 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
525 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
526 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
527 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
528 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
529 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
530 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
531 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
532 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
533 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
534 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
535 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
540 # Make sure -Wshadow doesn't complain about variables in function and
541 # function pointer declarations shadowing other variables; if not, don't
542 # turn it on, as some versions of GCC (including the one in at least
543 # some Xcode versions that came with Mac OS X 10.5) complain about
546 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow, C,
548 extern int bar(int a);
554 int (*fptr)(int a) = bar;
559 [warns about variables in function declarations shadowing other variables])
561 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
562 # is given a constant string.
563 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
564 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op, C,
568 int foo(const char *, int);
572 foo(const char *sep, int c)
574 if (strchr (sep, c) != NULL)
583 return foo("<", 'a');
586 [generates warnings from strchr()])
589 ## AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable)
592 # Use the faster pre gcc 4.5 floating point precision if available;
593 # clang doesn't error out on -f options that it doesn't know about,
594 # it just warns and ignores them, so this check doesn't cause us
595 # to omit -fexcess-precision=fast, which produces a pile of
598 if test "x$CC" != "xclang" ; then
599 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
602 CFLAGS_before_fvhidden=$CFLAGS
603 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fvisibility=hidden)
604 if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
606 # TODO add other ways of hiding symbols
607 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
610 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
611 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
612 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
613 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
614 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
615 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
618 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
619 # so that we can build dumpcap PIE - it may run with elevated
620 # privileges, and using PIE means the OS can run it at random locations
621 # in the address space to make attacks more difficult.
623 CFLAGS_before_pie=$CFLAGS
624 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fPIE, C)
625 if test "x$CLFAGS" != "x$CFLAGS_before_pie"
628 CFLAGS=$CFLAGS_before_pie
630 LDFLAGS_before_pie=$LDFLAGS
631 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
632 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
639 LDFLAGS=$LDFLAGS_before_pie
644 AC_SUBST(PIE_LDFLAGS)
647 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
648 # so we can use _U_ to flag unused function parameters and not get warnings
649 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
650 # to flag an unused function parameters will compile with other compilers.
652 # XXX - similar hints for other compilers?
654 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
655 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
657 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
660 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
661 # (only if the GCC 'optimization level' > 0).
663 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
664 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
666 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
667 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
670 # If the compiler supports GCC-style flags, enable a barrier "stop on
672 # This barrier is set for a very large part of the code. However, it is
673 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
675 warnings_as_errors_default="yes"
676 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
677 AC_ARG_ENABLE(warnings-as-errors,
678 AC_HELP_STRING( [--enable-warnings-as-errors],
679 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]),
681 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
682 with_warnings_as_errors="yes"
685 with_warnings_as_errors="no"
690 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
691 with_warnings_as_errors="yes"
694 with_warnings_as_errors="no"
699 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
702 # Add any platform-specific compiler flags needed.
704 AC_MSG_CHECKING(for platform-specific compiler flags)
705 if test "x$GCC" = "xyes" ; then
707 # GCC - do any platform-specific tweaking necessary.
711 # the X11 headers don't automatically include prototype info
712 # and a lot don't include the return type
713 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
714 CFLAGS="$CFLAGS -Wno-return-type"
715 CXXFLAGS="$CXXFLAGS -Wno-return-type"
716 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
719 AC_MSG_RESULT(none needed)
724 # Not GCC - assume it's the vendor's compiler.
729 # HP's ANSI C compiler; flags suggested by Jost Martin.
730 # "-Ae" for ANSI C plus extensions such as "long long".
731 # "+O2", for optimization. XXX - works with "-g"?
733 # HP's ANSI C++ compiler doesn't support "-Ae", but
734 # does support "+O2", at least according to the
735 # documentation I can find online.
737 CFLAGS="-Ae +O2 $CFLAGS"
738 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
739 CXXFLAGS="+O2 $CFLAGS"
740 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
743 AC_MSG_RESULT(none needed)
749 # Add any platform-specific linker flags needed.
751 AC_MSG_CHECKING(for platform-specific linker flags)
755 # Add -Wl,-single_module to the LDFLAGS used with shared
756 # libraries, to fix some error that show up in some cases;
757 # some Apple documentation recommends it for most shared
760 LDFLAGS_SHAREDLIB="-Wl,-single_module"
762 # Add -Wl,-search_paths_first to make sure that if we search
763 # directories A and B, in that order, for a given library, a
764 # non-shared version in directory A, rather than a shared
765 # version in directory B, is chosen (so we can use
766 # --with-pcap=/usr/local to force all programs to be linked
767 # with a static version installed in /usr/local/lib rather than
768 # the system version in /usr/lib).
770 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
771 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
775 # Shared libraries in cygwin/Win32 must never contain
778 LDFLAGS="$LDFLAGS -no-undefined"
779 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
782 AC_MSG_RESULT(none needed)
785 AC_SUBST(LDFLAGS_SHAREDLIB)
787 # Enable silent builds by default
788 # Verbose builds can be enabled with "./configure
789 # --enable-silent-rules ..." or "make V=1 ..."
790 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
791 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
794 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
795 # "just Darwin" (as we don't currently support iOS, and as I don't
796 # think you can build and run "just Darwin" as an OS for PCs), we
797 # arrange to build some programs with Application Services so they
798 # can launch Web browsers and Finder windows, arrange to build some
799 # programs with System Configuration so they can get "friendly names"
800 # and other information about interfaces, and build any programs that
801 # use either of those frameworks or that report version information
802 # with Core Foundation as the frameworks in question use it and as we
803 # get version information from plists and thus need Core Foundation
804 # to process those plists.
809 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
810 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
811 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
812 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
815 # OK, so we have the OS X frameworks; do they include
816 # CFPropertyListCreateWithStream, or do we have
817 # to fall back on CFPropertyListCreateFromStream?
818 # (They only differ in the error return, which we
819 # don't care about. And, no, we shouldn't just
820 # use CFPropertyListCreateFromStream, because it's
821 # deprecated in newer releases.)
824 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
825 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
829 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
830 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
831 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
833 dnl Look in /usr/local for header files and libraries ?
834 dnl XXX FIXME don't include /usr/local if it is already in the system
835 dnl search path as this causes gcc 3.2 on Linux to complain about a change
836 dnl of the system search order for includes
837 AC_ARG_ENABLE(usr-local,
838 AC_HELP_STRING( [--enable-usr-local],
839 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
840 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
842 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
843 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
844 if test -d "/usr/local"; then
847 # Arrange that we search for header files in the source directory
848 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
849 # as various packages we use ("libpcap", "zlib", "adns")
850 # may have been installed under "/usr/local/include".
852 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
855 # Arrange that we search for libraries in "/usr/local/lib".
857 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
866 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
871 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
872 if test x$LD_LIBRARY_PATH != x ; then
873 LIBS="$LIBS -R$LD_LIBRARY_PATH"
874 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
876 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
882 # Check for versions of "sed" inadequate to handle, in libtool, a list
883 # of object files as large as the list in Wireshark.
885 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
886 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
887 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
888 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
889 # is the only "sed" that comes with Solaris that can handle Wireshark.
891 # Add any checks here that are necessary for other OSes.
893 AC_WIRESHARK_GNU_SED_CHECK
894 if test "$HAVE_GNU_SED" = no ; then
897 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
899 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
901 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
916 # Enable/disable wireshark
918 AC_ARG_ENABLE(wireshark,
919 AC_HELP_STRING( [--enable-wireshark],
920 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
921 enable_wireshark=$enableval,enable_wireshark=yes)
923 AC_ARG_ENABLE(packet-editor,
924 AC_HELP_STRING( [--enable-packet-editor],
925 [add support for packet editor in Wireshark @<:@default=no@:>@]),
926 enable_packet_editor=$enableval,enable_packet_editor=no)
927 if test x$enable_packet_editor = xyes; then
928 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
931 AC_ARG_ENABLE(profile-build,
932 AC_HELP_STRING( [--enable-profile-build],
933 [build profile-ready binaries @<:@default=no@:>@]),
934 enable_profile_build=$enableval,enable_profile_build=no)
935 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
936 AC_MSG_CHECKING(if profile builds must be generated)
937 if test "x$enable_profile_build" = "xyes" ; then
938 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
940 CFLAGS=" -pg $CFLAGS"
941 CXXFLAGS=" -pg $CXXFLAGS"
944 echo "Building profile binaries currently only supported for GCC and clang."
950 # Create DATAFILE_DIR #define for config.h
951 datafiledir=$datadir/wireshark
953 test "x$prefix" = xNONE && prefix=$ac_default_prefix
954 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
955 # Ugly hack, but I don't see how this problem can be solved
956 # properly that DATAFILE_DIR had a value starting with
957 # "${prefix}/" instead of e.g. "/usr/local/"
958 eval eval echo "$datafiledir"
960 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
962 # Create DOC_DIR #define for config.h
964 test "x$prefix" = xNONE && prefix=$ac_default_prefix
965 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
966 # Ugly hack, but I don't see how this problem can be solved
967 # properly that DOC_DIR had a value starting with
968 # "${prefix}/" instead of e.g. "/usr/local/"
969 eval eval echo "$docdir"
971 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
973 GTK2_MIN_VERSION=2.12.0
974 AC_SUBST(GTK2_MIN_VERSION)
975 GTK3_MIN_VERSION=3.0.0
976 AC_SUBST(GTK3_MIN_VERSION)
978 AC_SUBST(QT_MIN_VERSION)
979 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
980 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
982 # We only do those if we're going to be building Wireshark;
983 # otherwise, we don't have any GUI to build, so we don't use
986 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
987 # force all programs to be built with GTK+ or Qt.
989 # Release dates for GTK+ versions:
990 # 2.12.0: 14 Sep 2007
991 # 2.14.0: 04 Sep 2008
992 # 2.16.0: 13 Mar 2009
993 # 2.18.0: 23 Sep 2009
994 # 2.20.0: 23 Mar 2010
995 # 2.22.0: 23 Sep 2010
996 # 2.24.0: 30 Jan 2011
1000 # 3.6.0: 24 Sep 2012
1001 # 3.8.0: 25 Mar 2013
1003 if test "x$enable_wireshark" = "xyes"; then
1004 if test "x$with_qt" = "xyes"; then
1006 AC_MSG_CHECKING(whether we have a working C++ compiler)
1008 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
1009 [AC_MSG_RESULT(yes)],
1012 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1016 AM_PATH_QT($QT_MIN_VERSION,
1018 CFLAGS="$CFLAGS $Qt_CFLAGS"
1019 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1022 , [AC_MSG_ERROR([Qt is not available])])
1025 # XXX - greasy hack to make ui/gtk/recent.c
1028 CPPFLAGS="-DQT_GUI_LIB"
1031 # We don't know whether we have GTK+, but we
1032 # won't be using it, so it's as if we don't
1038 # Not Qt - either GTK+ 3.x or 2.x.
1040 if test "x$with_gtk3" = "xyes"; then
1041 AM_PATH_GTK_3_0(3.0.0,
1043 CFLAGS="$CFLAGS $GTK_CFLAGS"
1044 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1046 AC_DEFINE(HAVE_GTK, 1,
1047 [Define to 1 if compiling with GTK])
1051 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1053 CFLAGS="$CFLAGS $GTK_CFLAGS"
1054 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1056 AC_DEFINE(HAVE_GTK, 1,
1057 [Define to 1 if compiling with GTK])
1066 GLIB_MIN_VERSION=2.14.0
1067 AC_SUBST(GLIB_MIN_VERSION)
1068 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1069 # support, as we need that for dynamically loading plugins.
1070 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1071 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1072 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1073 # GLIB_CFLAGS to CFLAGS.
1074 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1075 # set when generating the Makefile, so we can make programs that require
1076 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1077 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1078 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1079 # programs to be built with GLib.
1081 # Release dates for GLib versions:
1082 # 2.14.0: 03 Aug 2007
1083 # 2.16.0: 10 Mar 2008
1084 # 2.18.0: 02 Sep 2008
1085 # 2.20.0: 13 Mar 2009
1086 # 2.22.0: 22 Sep 2009
1087 # 2.24.0: 28 Mar 2010
1088 # 2.26.0: 27 Sep 2010
1089 # 2.28.0: 08 Feb 2011
1090 # 2.30.0: 27 Sep 2011
1091 # 2.32.0: 24 Mar 2012
1092 # 2.34.0: 24 Sep 2012
1093 # 2.36.0: 25 Mar 2013
1095 have_wireshark_cxx="false"
1096 if test "$have_gtk" = "no" ; then
1098 # We don't have GTK+.
1100 if test "$have_qt" = "yes" ; then
1102 # However, we do have Qt, and thus will be building
1103 # Wireshark (if the user had explicitly disabled
1104 # Wireshark, we wouldn't have looked for Qt, so we
1105 # wouldn't think we had it, and thus wouldn't be here).
1107 wireshark_bin="wireshark\$(EXEEXT)"
1108 # Give automake a hint that it needs to use c++ linking.
1109 have_wireshark_cxx="yes"
1110 wireshark_man="wireshark.1"
1111 wireshark_SUBDIRS="codecs ui/qt"
1114 # We don't have Qt, either, which means we have no UI
1117 # If they didn't explicitly say "--disable-wireshark",
1118 # fail (so that, unless they explicitly indicated that
1119 # they don't want Wireshark, we stop so they know they
1120 # won't be getting Wireshark unless they fix the GTK+/Qt
1123 if test "x$enable_wireshark" = "xyes"; then
1124 if test "x$with_gtk3" = "xyes"; then
1125 AC_MSG_ERROR([GTK+ $GTK3_MIN_VERSION or later isn't available, so Wireshark can't be compiled])
1127 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1134 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1136 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1137 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1138 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1141 # We have GTK+, and thus will be building Wireshark (if the user
1142 # had explicitly disabled Wireshark, we wouldn't have looked for
1143 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
1145 wireshark_bin="wireshark\$(EXEEXT)"
1146 wireshark_man="wireshark.1"
1147 wireshark_SUBDIRS="codecs ui/gtk"
1148 # Don't use GLIB_CFLAGS
1149 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1151 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1152 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1153 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1154 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1155 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1156 # Enable GSEAL when building with GTK > 2.20
1157 # (Versions prior to 2.22 lacked some necessary accessors.)
1158 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1163 # "make dist" requires that we have the Qt build tools.
1165 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1166 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1167 # installed; if they're still doing that in current Fedora releases,
1168 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1170 AC_PATH_PROG(UIC, uic)
1173 AC_PATH_PROG(UIC, uic-qt4)
1176 if test "x$with_qt" = "xyes"; then
1178 # If you want to build with Qt, you'd better
1181 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1184 # We shouldn't fail here, as the user's not
1185 # building with Qt, and we shouldn't force them
1186 # to have Qt installed if they're not doing so.
1187 # "make dist" will fail if they do that, but
1188 # we don't know whether they'll be doing that,
1189 # so this is the best we can do.
1196 AC_PATH_PROG(MOC, moc)
1199 AC_PATH_PROG(MOC, moc-qt4)
1202 if test "x$with_qt" = "xyes"; then
1204 # If you want to build with Qt, you'd better
1207 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1210 # We shouldn't fail here, as the user's not
1211 # building with Qt, and we shouldn't force them
1212 # to have Qt installed if they're not doing so.
1213 # "make dist" will fail if they do that, but
1214 # we don't know whether they'll be doing that,
1215 # so this is the best we can do.
1223 # Error out if a glib header other than a "top level" header
1224 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1226 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1228 # Error out on the usage of deprecated glib functions
1229 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1232 # Check whether GLib modules are supported, to determine whether we
1233 # can support plugins.
1235 AC_MSG_CHECKING(whether GLib supports loadable modules)
1236 ac_save_CFLAGS="$CFLAGS"
1237 ac_save_LIBS="$LIBS"
1238 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1239 LIBS="$GLIB_LIBS $LIBS"
1242 #include <gmodule.h>
1249 if (g_module_supported())
1250 return 0; /* success */
1252 return 1; /* failure */
1254 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1255 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1256 ac_cv_glib_supports_modules=yes])
1257 CFLAGS="$ac_save_CFLAGS"
1258 LIBS="$ac_save_LIBS"
1259 if test "$ac_cv_glib_supports_modules" = yes ; then
1268 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1269 # filename (hopefully, a full pathname, but no guarantees) for
1272 if test "$ac_cv_header_dlfcn_h" = "yes"
1274 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1275 ac_save_CFLAGS="$CFLAGS"
1276 ac_save_LIBS="$LIBS"
1277 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1278 LIBS="$GLIB_LIBS $LIBS"
1280 #define _GNU_SOURCE /* required on Linux, sigh */
1288 if (!dladdr((void *)main, &info))
1289 return 1; /* failure */
1290 return 0; /* assume success */
1292 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1293 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1294 ac_cv_dladdr_finds_executable_path=yes])
1295 CFLAGS="$ac_save_CFLAGS"
1296 LIBS="$ac_save_LIBS"
1297 if test x$ac_cv_dladdr_finds_executable_path = xyes
1299 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1301 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1305 # Check whether GLib's printf supports thousands grouping. (This might
1306 # be different from the system's printf since GLib can optionally use
1307 # its own printf implementation.)
1309 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1310 ac_save_CFLAGS="$CFLAGS"
1311 ac_save_LIBS="$LIBS"
1312 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1313 LIBS="$GLIB_LIBS $LIBS"
1324 setlocale(LC_ALL, "en_US.UTF-8");
1325 str = g_strdup_printf("%'u", 123456);
1326 return (strcmp (str, "123,456") != 0);
1328 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1329 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1330 ac_cv_glib_supports_printf_grouping=no])
1331 CFLAGS="$ac_save_CFLAGS"
1332 LIBS="$ac_save_LIBS"
1333 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1335 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1340 if test "x$have_gtk" = "xyes"
1343 # We have GTK+; do we want the OS X integration functions and,
1344 # if so, do we have them and, if so, which versions do we have,
1345 # the old Carbon-based ones or the new Cocoa-based ones?
1347 AC_MSG_CHECKING(whether to use OS X integration functions)
1349 AC_ARG_WITH(osx-integration,
1350 AC_HELP_STRING( [--with-osx-integration],
1351 [use OS X integration functions @<:@default=yes, if available@:>@]),
1353 if test $withval = no
1355 want_osx_integration=no
1357 want_osx_integration=yes
1360 want_osx_integration=yes
1362 if test "x$want_osx_integration" = "xno"; then
1366 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1370 AC_SUBST(wireshark_bin)
1371 AC_SUBST(wireshark_man)
1372 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1373 AM_CONDITIONAL(HAVE_WIRESHARK_CXX, test "$have_wireshark_cxx" = "yes")
1376 # Enable/disable tshark
1378 AC_ARG_ENABLE(tshark,
1379 AC_HELP_STRING( [--enable-tshark],
1380 [build TShark @<:@default=yes@:>@]),
1381 tshark=$enableval,enable_tshark=yes)
1383 if test "x$enable_tshark" = "xyes" ; then
1384 tshark_bin="tshark\$(EXEEXT)"
1385 tshark_man="tshark.1"
1386 wiresharkfilter_man="wireshark-filter.4"
1391 AC_SUBST(tshark_bin)
1392 AC_SUBST(tshark_man)
1393 AC_SUBST(wiresharkfilter_man)
1397 # Enable/disable editcap
1399 AC_ARG_ENABLE(editcap,
1400 AC_HELP_STRING( [--enable-editcap],
1401 [build editcap @<:@default=yes@:>@]),
1402 enable_editcap=$enableval,enable_editcap=yes)
1404 if test "x$enable_editcap" = "xyes" ; then
1405 editcap_bin="editcap\$(EXEEXT)"
1406 editcap_man="editcap.1"
1411 AC_SUBST(editcap_bin)
1412 AC_SUBST(editcap_man)
1414 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1417 # Enable/disable capinfos
1419 AC_ARG_ENABLE(capinfos,
1420 AC_HELP_STRING( [--enable-capinfos],
1421 [build capinfos @<:@default=yes@:>@]),
1422 enable_capinfos=$enableval,enable_capinfos=yes)
1424 if test "x$enable_capinfos" = "xyes" ; then
1425 capinfos_bin="capinfos\$(EXEEXT)"
1426 capinfos_man="capinfos.1"
1431 AC_SUBST(capinfos_bin)
1432 AC_SUBST(capinfos_man)
1435 # Enable/disable mergecap
1437 AC_ARG_ENABLE(mergecap,
1438 AC_HELP_STRING( [--enable-mergecap],
1439 [build mergecap @<:@default=yes@:>@]),
1440 enable_mergecap=$enableval,enable_mergecap=yes)
1442 if test "x$enable_mergecap" = "xyes" ; then
1443 mergecap_bin="mergecap\$(EXEEXT)"
1444 mergecap_man="mergecap.1"
1449 AC_SUBST(mergecap_bin)
1450 AC_SUBST(mergecap_man)
1453 # Enable/disable reordercap
1455 AC_ARG_ENABLE(reordercap,
1456 AC_HELP_STRING( [--enable-reordercap],
1457 [build reordercap @<:@default=yes@:>@]),
1458 enable_reordercap=$enableval,enable_reordercap=yes)
1460 if test "x$enable_reordercap" = "xyes" ; then
1461 reordercap_bin="reordercap\$(EXEEXT)"
1462 reordercap_man="reordercap.1"
1467 AC_SUBST(reordercap_bin)
1468 AC_SUBST(reordercap_man)
1471 # Enable/disable text2pcap
1473 AC_ARG_ENABLE(text2pcap,
1474 AC_HELP_STRING( [--enable-text2pcap],
1475 [build text2pcap @<:@default=yes@:>@]),
1476 text2pcap=$enableval,enable_text2pcap=yes)
1478 if test "x$enable_text2pcap" = "xyes" ; then
1479 text2pcap_bin="text2pcap\$(EXEEXT)"
1480 text2pcap_man="text2pcap.1"
1485 AC_SUBST(text2pcap_bin)
1486 AC_SUBST(text2pcap_man)
1489 # Enable/disable dftest
1491 AC_ARG_ENABLE(dftest,
1492 AC_HELP_STRING( [--enable-dftest],
1493 [build dftest @<:@default=yes@:>@]),
1494 enable_dftest=$enableval,enable_dftest=yes)
1496 if test "x$enable_dftest" = "xyes" ; then
1497 dftest_bin="dftest\$(EXEEXT)"
1498 dftest_man="dftest.1"
1503 AC_SUBST(dftest_bin)
1504 AC_SUBST(dftest_man)
1507 # Enable/disable randpkt
1509 AC_ARG_ENABLE(randpkt,
1510 AC_HELP_STRING( [--enable-randpkt],
1511 [build randpkt @<:@default=yes@:>@]),
1512 enable_randpkt=$enableval,enable_randpkt=yes)
1514 if test "x$enable_randpkt" = "xyes" ; then
1515 randpkt_bin="randpkt\$(EXEEXT)"
1516 randpkt_man="randpkt.1"
1521 AC_SUBST(randpkt_bin)
1522 AC_SUBST(randpkt_man)
1526 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1527 dnl "gethostbyname()".
1528 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1530 dnl Checks for "connect()", used as a proxy for "socket()" - and
1531 dnl "-lsocket", if we need it to get "connect()".
1532 AC_WIRESHARK_SOCKET_LIB_CHECK
1535 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1538 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1539 [use libpcap for packet capturing @<:@default=yes@:>@]),
1541 if test $withval = no
1544 elif test $withval = yes
1555 if test "x$want_pcap" = "xno" ; then
1559 AC_WIRESHARK_PCAP_CHECK
1563 dnl Check for airpcap
1564 AC_MSG_CHECKING(whether to include airpcap support)
1565 AC_ARG_ENABLE(airpcap,
1566 AC_HELP_STRING( [--enable-airpcap],
1567 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1568 enable_airpcap=$enableval, enable_airpcap=yes)
1570 if test x$enable_airpcap = xyes; then
1571 if test "x$want_pcap" = "xno" ; then
1573 AC_MSG_RESULT(pcap not available - disabling airpcap)
1576 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1584 AC_MSG_CHECKING(whether to build dumpcap)
1586 AC_ARG_ENABLE(dumpcap,
1587 AC_HELP_STRING( [--enable-dumpcap],
1588 [build dumpcap @<:@default=yes@:>@]),
1589 enable_dumpcap=$enableval,enable_dumpcap=yes)
1591 if test "x$enable_dumpcap" = "xyes" ; then
1592 if test "x$want_pcap" = "xno" ; then
1594 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1602 if test "x$enable_dumpcap" = "xyes" ; then
1603 dumpcap_bin="dumpcap\$(EXEEXT)"
1604 dumpcap_man="dumpcap.1"
1609 AC_SUBST(dumpcap_bin)
1610 AC_SUBST(dumpcap_man)
1612 # Enable/disable rawshark
1615 AC_MSG_CHECKING(whether to build rawshark)
1617 AC_ARG_ENABLE(rawshark,
1618 AC_HELP_STRING( [--enable-rawshark],
1619 [build rawshark @<:@default=yes@:>@]),
1620 rawshark=$enableval,enable_rawshark=yes)
1622 if test "x$enable_rawshark" = "xyes" ; then
1623 if test "x$want_pcap" = "xno" ; then
1625 AC_MSG_RESULT(pcap not available - disabling rawshark)
1633 if test "x$enable_rawshark" = "xyes" ; then
1634 rawshark_bin="rawshark\$(EXEEXT)"
1635 rawshark_man="rawshark.1"
1640 AC_SUBST(rawshark_bin)
1641 AC_SUBST(rawshark_man)
1643 dnl Use pcap-ng by default
1644 AC_ARG_ENABLE(pcap-ng-default,
1645 AC_HELP_STRING( [--enable-pcap-ng-default],
1646 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1647 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1648 if test x$enable_pcap_ng_default = xyes; then
1649 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1652 dnl pcap remote check
1653 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1655 AC_ARG_WITH(pcap-remote,
1656 AC_HELP_STRING([--with-pcap-remote],
1657 [use libpcap remote capturing (requires libpcap)]),
1659 if test $withval = no
1663 want_pcap_remote=yes
1668 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1672 AC_WIRESHARK_PCAP_REMOTE_CHECK
1676 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1679 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1680 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1682 if test "x$withval" = "xno"
1685 elif test "x$withval" = "xyes"
1694 # Use zlib if it's present, otherwise don't.
1696 want_zlib=ifavailable
1699 if test "x$want_zlib" = "xno" ; then
1703 AC_WIRESHARK_ZLIB_CHECK
1704 if test "x$want_zlib" = "xno" ; then
1705 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1707 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1708 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1714 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1717 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1718 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1720 if test $withval = no
1723 elif test $withval = yes
1732 # Use liblua by default
1734 want_lua=ifavailable
1737 if test "x$want_lua" = "xno" ; then
1741 AC_WIRESHARK_LIBLUA_CHECK
1742 if test "x$want_lua" = "xno" ; then
1743 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1746 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1750 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1752 AC_ARG_WITH(portaudio,
1753 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1754 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1756 if test $withval = no
1759 elif test $withval = yes
1764 portaudio_dir=$withval
1768 # Use libportaudio by default
1770 want_portaudio=ifavailable
1773 if test "x$want_portaudio" = "xno" ; then
1777 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1778 if test "x$want_portaudio" = "xno" ; then
1779 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1782 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1787 AC_HELP_STRING( [--enable-ipv6],
1788 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1789 enable_ipv6=$enableval,enable_ipv6=yes)
1791 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1792 if test "x$enable_ipv6" = "xno" ; then
1796 AC_WIRESHARK_IPV6_STACK
1800 dnl Check if dumpcap should be installed with filesystem capabilities
1801 AC_PATH_PROG(SETCAP, setcap)
1802 AC_ARG_ENABLE(setcap-install,
1803 AC_HELP_STRING( [--enable-setcap-install],
1804 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1805 enable_setcap_install=$enableval,enable_setcap_install=no)
1807 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1808 if test "x$enable_setcap_install" = "xno" ; then
1811 if test "x$SETCAP" = "x" ; then
1812 AC_MSG_RESULT(no. Setcap not found)
1813 elif test "x$enable_dumpcap" = "xno" ; then
1814 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1820 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1822 dnl Check if dumpcap should be installed setuid
1823 AC_ARG_ENABLE(setuid-install,
1824 AC_HELP_STRING( [--enable-setuid-install],
1825 [install dumpcap as setuid @<:@default=no@:>@]),
1826 enable_setuid_install=$enableval,enable_setuid_install=no)
1828 AC_MSG_CHECKING(whether to install dumpcap setuid)
1829 if test "x$enable_setuid_install" = "xno" ; then
1832 if test "x$enable_setcap_install" = "xyes" ; then
1833 enable_setuid_install=no
1834 AC_MSG_RESULT(no; using setcap instead)
1835 elif test "x$enable_dumpcap" = "xno" ; then
1836 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1842 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1843 AC_CHECK_FUNCS(setresuid setresgid)
1845 dnl ...but our Network Operations group is named "no"!
1847 AC_ARG_WITH(dumpcap-group,
1848 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1849 [restrict dumpcap to GROUP]),
1851 if test "x$withval" = "xyes"; then
1852 AC_MSG_ERROR([No dumpcap group specified.])
1853 elif test "x$withval" != "xno"; then
1854 if test "x$enable_dumpcap" = "xno" ; then
1855 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1857 AC_MSG_RESULT($withval)
1858 DUMPCAP_GROUP="$withval"
1861 AC_SUBST(DUMPCAP_GROUP)
1862 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1864 dnl libcap (not libpcap) check
1866 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1869 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1870 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1872 if test "x$withval" = "xno"; then
1874 elif test "x$withval" = "xyes"; then
1876 elif test -d "$withval"; then
1878 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1881 if test "x$with_libcap" = "xno" ; then
1885 AC_WIRESHARK_LIBCAP_CHECK
1887 AC_SUBST(LIBCAP_LIBS)
1889 dnl Checks for header files.
1890 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1891 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)
1892 AC_CHECK_HEADERS(netinet/in.h)
1893 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1897 AC_MSG_CHECKING(whether to use SSL library)
1900 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1901 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1903 if test "x$withval" = "xno"; then
1905 elif test "x$withval" = "xyes"; then
1907 elif test -d "$withval"; then
1909 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1914 if test "x$want_ssl" = "xyes"; then
1916 AC_CHECK_LIB(crypto,EVP_md5,
1921 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1929 AC_MSG_CHECKING(whether to use Kerberos library)
1932 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1933 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1935 if test $withval = no
1938 elif test $withval = yes
1947 # Use Kerberos library if available, otherwise don't.
1949 want_krb5=ifavailable
1952 if test "x$want_krb5" = "xno" ; then
1956 AC_WIRESHARK_KRB5_CHECK
1962 AC_MSG_CHECKING(whether to use the c-ares library if available)
1965 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1966 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1968 if test "x$withval" = "xno"; then
1970 elif test "x$withval" = "xyes"; then
1972 elif test -d "$withval"; then
1974 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1977 if test "x$want_c_ares" = "xno" ; then
1981 AC_WIRESHARK_C_ARES_CHECK
1983 AC_SUBST(C_ARES_LIBS)
1987 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1990 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1991 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1993 if test "x$withval" = "xno"; then
1995 elif test "x$withval" = "xyes"; then
1997 elif test -d "$withval"; then
1999 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2002 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2006 AC_WIRESHARK_ADNS_CHECK
2012 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2015 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2016 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2018 if test "x$withval" = "xno"; then
2020 elif test "x$withval" = "xyes"; then
2022 elif test -d "$withval"; then
2024 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2027 if test "x$want_geoip" = "xno"; then
2031 AC_WIRESHARK_GEOIP_CHECK
2033 AC_SUBST(GEOIP_LIBS)
2035 dnl Python devel Check
2036 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
2039 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
2040 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
2042 pythondir='${libdir}/wireshark/python/${VERSION}'
2043 if test "x$withval" = "xno"
2046 elif test "x$withval" = "xyes"
2051 pythondir="$withval"
2054 # By default (user didn't explicitly enable Python), don't enable
2058 #pythondir='${libdir}/wireshark/python/${VERSION}'
2060 if test "x$want_python" = "xno" ; then
2064 AC_WIRESHARK_PYTHON_CHECK
2066 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2070 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2071 # never return (just like Charlie on the MTA).
2073 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2074 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2075 # follow the function name, so we need two different flavors of
2078 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2080 dnl Checks for typedefs, structures, and compiler characteristics.
2083 # Check how we can get the time zone abbreviation
2084 AC_WIRESHARK_TIMEZONE_ABBREV
2086 # We need to know whether "struct stat" has an "st_flags" member
2087 # for file_user_immutable().
2089 AC_WIRESHARK_STRUCT_ST_FLAGS
2091 # We need to know whether "struct sockaddr" has an "sa_len" member
2092 # for get_interface_list().
2094 AC_WIRESHARK_STRUCT_SA_LEN
2096 # We must know our byte order
2099 # Checks whether "-traditional" is needed when using "ioctl".
2100 # XXX - do we need this?
2101 AC_PROG_GCC_TRADITIONAL
2104 AC_CHECK_FUNC(getopt,
2106 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2108 GETOPT_LO="wsgetopt.lo"
2110 if test "$ac_cv_func_getopt" = no ; then
2111 GETOPT_LO="wsgetopt.lo"
2113 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2116 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2117 STRNCASECMP_LO="strncasecmp.lo")
2118 if test "$ac_cv_func_strncasecmp" = no ; then
2119 STRNCASECMP_LO="strncasecmp.lo"
2121 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2122 AC_SUBST(STRNCASECMP_LO)
2124 AC_CHECK_FUNCS(mkstemp mkdtemp)
2126 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2128 if test "$have_inet_aton" = no; then
2129 INET_ATON_LO="inet_aton.lo"
2130 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2134 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2135 AC_SUBST(INET_ATON_LO)
2137 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2138 dnl check for pre-BIND82 inet_pton() bug.
2139 AC_MSG_CHECKING(for broken inet_pton)
2140 AC_TRY_RUN([#include <sys/types.h>
2141 #include <sys/socket.h>
2142 #include <netinet/in.h>
2143 #include <arpa/inet.h>
2148 /* this should return 0 (error) */
2149 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2153 }], [AC_MSG_RESULT(ok);
2154 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2155 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2156 have_inet_pton=no])],
2158 if test "$have_inet_pton" = no; then
2159 INET_PTON_LO="inet_pton.lo"
2163 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2164 AC_SUBST(INET_PTON_LO)
2166 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2167 AC_MSG_CHECKING([for inet_ntop prototype])
2168 AC_TRY_COMPILE([#include <stdio.h>
2169 #include <sys/types.h>
2170 #include <sys/socket.h>
2171 #include <netinet/in.h>
2172 #include <arpa/inet.h>
2174 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2176 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2177 [Define if inet_ntop() prototype exists])], [
2178 AC_TRY_COMPILE([#include <stdio.h>
2179 #include <sys/types.h>
2180 #include <sys/socket.h>
2181 #include <netinet/in.h>
2182 #include <arpa/inet.h>
2184 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2186 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2187 [Define if inet_ntop() prototype exists])], [
2188 AC_MSG_RESULT(no)])])
2190 INET_NTOP_LO="inet_ntop.lo"
2191 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2192 [Define if inet/v6defs.h needs to be included])])
2193 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2194 AC_SUBST(INET_NTOP_LO)
2196 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2197 [STRPTIME_LO="strptime.lo"
2198 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2200 if test "$ac_cv_func_strptime" = no ; then
2201 STRPTIME_LO="strptime.lo"
2203 AC_SUBST(STRPTIME_C)
2204 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2205 AC_SUBST(STRPTIME_LO)
2207 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2208 AC_CHECK_FUNCS(issetugid)
2209 AC_CHECK_FUNCS(mmap mprotect sysconf)
2210 AC_CHECK_FUNCS(strtoll)
2212 dnl blank for now, but will be used in future
2213 AC_SUBST(wireshark_SUBDIRS)
2216 dnl check whether plugins should be enabled and, if they should be,
2217 dnl check for plugins directory - stolen from Amanda's configure.ac
2219 dnl we don't wish to expand ${libdir} yet
2220 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2221 AC_ARG_WITH(plugins,
2222 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2223 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2225 if test "x$withval" = "xno"; then
2227 elif test "x$have_plugins" = "xno"; then
2228 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2229 elif test "x$withval" != "xyes"; then
2230 plugindir="$withval"
2233 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2234 if test x$have_plugins = xyes
2236 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2239 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2242 # The plugin dissectors reside in ./plugins/PROTO/
2245 AC_SUBST(PLUGIN_LIBS)
2248 # Check if (emem) memory allocations must be 8-byte aligned.
2249 # I haven't been able to write C code that reliably makes that determination
2250 # (different versions of GCC with or without optimization give different
2251 # results) so just assume everything except (32-bit) x86 needs 8-byte
2252 # alignment (64-bit platforms either require 8-byte alignment for pointers
2253 # and 64-bit integral data types or may get better performance from that;
2254 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2255 # platforms would only require it, or get better performance from it,
2256 # for 64-bit floating-point values.).
2258 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2260 i386|i486|i586|i686)
2265 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2271 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2272 # (autoconf? automake? libtool?) - with the newer version(s), it's
2273 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2275 # With older version(s) of those tool(s), however, it's not just an
2276 # alias, and the configure scripts don't work without it.
2279 AC_SUBST(LIBTOOL_DEPS)
2281 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2282 if test x$enable_static = xyes -a x$have_plugins = xyes
2284 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2286 AC_SUBST(ENABLE_STATIC)
2288 dnl Save the cacheable configure results to config.cache before recursing
2291 sinclude(plugins/Custom.m4) dnl
2292 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2294 sinclude(asn1/Custom.m4) dnl
2295 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2297 AC_CONFIG_HEADERS(config.h)
2302 _CUSTOM_ASN1_AC_OUTPUT_
2303 asn1/acp133/Makefile
2305 asn1/ansi_map/Makefile
2306 asn1/ansi_tcap/Makefile
2310 asn1/charging_ase/Makefile
2315 asn1/credssp/Makefile
2324 asn1/gprscdr/Makefile
2325 asn1/gsm_map/Makefile
2334 asn1/h450-ros/Makefile
2337 asn1/HI2Operations/Makefile
2341 asn1/isdn-sup/Makefile
2342 asn1/kerberos/Makefile
2345 asn1/logotypecertextn/Makefile
2349 asn1/lte-rrc/Makefile
2352 asn1/mpeg-audio/Makefile
2353 asn1/mpeg-pes/Makefile
2355 asn1/ns_cert_exts/Makefile
2363 asn1/pkcs12/Makefile
2364 asn1/pkinit/Makefile
2365 asn1/pkixac/Makefile
2366 asn1/pkix1explicit/Makefile
2367 asn1/pkix1implicit/Makefile
2368 asn1/pkixproxy/Makefile
2369 asn1/pkixqualified/Makefile
2370 asn1/pkixtsp/Makefile
2373 asn1/q932-ros/Makefile
2384 asn1/sbc-ap/Makefile
2387 asn1/spnego/Makefile
2395 asn1/wlancertextn/Makefile
2397 asn1/x509af/Makefile
2398 asn1/x509ce/Makefile
2399 asn1/x509if/Makefile
2400 asn1/x509sat/Makefile
2407 epan/dfilter/Makefile
2408 epan/dissectors/Makefile
2409 epan/dissectors/dcerpc/Makefile
2410 epan/dissectors/pidl/Makefile
2411 epan/ftypes/Makefile
2414 epan/wspython/Makefile
2425 packaging/macosx/Info.plist
2426 packaging/macosx/Makefile
2427 packaging/macosx/osx-dmg.sh
2428 packaging/nsis/Makefile
2429 packaging/rpm/Makefile
2430 packaging/rpm/SPECS/Makefile
2431 packaging/rpm/SPECS/wireshark.spec
2432 packaging/svr4/Makefile
2433 packaging/svr4/checkinstall
2434 packaging/svr4/pkginfo
2436 plugins/asn1/Makefile
2437 plugins/docsis/Makefile
2438 plugins/ethercat/Makefile
2439 plugins/gryphon/Makefile
2440 plugins/irda/Makefile
2441 plugins/m2m/Makefile
2442 plugins/mate/Makefile
2443 plugins/opcua/Makefile
2444 plugins/profinet/Makefile
2445 plugins/stats_tree/Makefile
2446 plugins/unistim/Makefile
2447 plugins/wimax/Makefile
2448 plugins/wimaxasncp/Makefile
2449 plugins/wimaxmacphy/Makefile
2451 tools/lemon/Makefile
2456 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2461 if test "x$have_qt" = "xyes"; then
2462 gui_lib_message=" (with Qt)"
2464 if test "x$have_gtk" = "xyes"; then
2465 if test "x$with_gtk3" = "xyes"; then
2466 gui_lib_message=" (with GTK+ 3"
2468 gui_lib_message=" (with GTK+ 2"
2470 if test "x$have_ige_mac" = "xyes"; then
2471 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2473 gui_lib_message="$gui_lib_message)"
2478 if test "x$enable_setcap_install" = "xyes" ; then
2479 setcap_message="yes"
2484 if test "x$enable_setuid_install" = "xyes" ; then
2485 setuid_message="yes"
2490 if test "x$DUMPCAP_GROUP" = "x" ; then
2491 dumpcap_group_message="(none)"
2493 dumpcap_group_message="$DUMPCAP_GROUP"
2496 if test "x$want_zlib" = "xno" ; then
2502 if test "x$want_lua" = "xyes" ; then
2508 if test "x$want_python" = "xno"; then
2511 python_message="yes"
2514 if test "x$want_portaudio" = "xyes" ; then
2515 portaudio_message="yes"
2517 portaudio_message="no"
2520 if test "x$want_ssl" = "xno" ; then
2526 if test "x$want_krb5" = "xno" ; then
2529 krb5_message="yes ($ac_krb5_version)"
2532 if test "x$have_good_c_ares" = "xyes" ; then
2533 c_ares_message="yes"
2538 if test "x$have_good_adns" = "xyes" ; then
2541 if test "x$have_good_c_ares" = "xyes" ; then
2542 adns_message="no (using c-ares instead)"
2548 if test "x$have_good_libcap" = "xyes" ; then
2549 libcap_message="yes"
2554 if test "x$have_good_geoip" = "xyes" ; then
2561 echo "The Wireshark package has been configured with the following options."
2562 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2563 echo " Build tshark : $enable_tshark"
2564 echo " Build capinfos : $enable_capinfos"
2565 echo " Build editcap : $enable_editcap"
2566 echo " Build dumpcap : $enable_dumpcap"
2567 echo " Build mergecap : $enable_mergecap"
2568 echo " Build reordercap : $enable_reordercap"
2569 echo " Build text2pcap : $enable_text2pcap"
2570 echo " Build randpkt : $enable_randpkt"
2571 echo " Build dftest : $enable_dftest"
2572 echo " Build rawshark : $enable_rawshark"
2574 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2575 echo " Install dumpcap with capabilities : $setcap_message"
2576 echo " Install dumpcap setuid : $setuid_message"
2577 echo " Use dumpcap group : $dumpcap_group_message"
2578 echo " Use plugins : $have_plugins"
2579 echo " Use Lua library : $lua_message"
2580 echo " Use Python binding : $python_message"
2581 echo " Build rtp_player : $portaudio_message"
2582 echo " Build profile binaries : $enable_profile_build"
2583 echo " Use pcap library : $want_pcap"
2584 echo " Use zlib library : $zlib_message"
2585 echo " Use kerberos library : $krb5_message"
2586 echo " Use c-ares library : $c_ares_message"
2587 echo " Use GNU ADNS library : $adns_message"
2588 echo " Use SMI MIB library : $libsmi_message"
2589 echo " Use GNU crypto library : $gcrypt_message"
2590 echo " Use SSL crypto library : $ssl_message"
2591 echo " Use IPv6 name resolution : $enable_ipv6"
2592 echo " Use gnutls library : $tls_message"
2593 echo " Use POSIX capabilities library : $libcap_message"
2594 echo " Use GeoIP library : $geoip_message"
2595 echo " Use nl library : $libnl_message"