4 m4_define([version_major], [1])
5 m4_define([version_minor], [9])
6 m4_define([version_micro], [2])
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+.
196 AC_ARG_WITH([gnutls],
197 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
198 [use GnuTLS library @<:@default=yes@:>@]),
199 with_gnutls="$withval", with_gnutls="yes")
200 if test "x$with_gnutls" = "xyes"; then
201 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
203 echo "GnuTLS found, enabling SSL decryption"
204 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
208 echo "GnuTLS not found, disabling SSL decryption"
216 AC_ARG_WITH([gcrypt],
217 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
218 [use gcrypt library @<:@default=yes@:>@]),
219 with_gcrypt="$withval", with_gcrypt="yes")
220 if test "x$with_gcrypt" = "xyes"; then
221 AM_PATH_LIBGCRYPT(1.1.92,
223 echo "libgcrypt found, enabling ipsec decryption"
224 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
228 if test x$libgcrypt_config_prefix != x ; then
229 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
231 echo "libgcrypt not found, disabling ipsec decryption"
239 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
240 [use Qt instead of GTK+ @<:@default=no@:>@]),
241 with_qt="$withval", with_qt="no")
244 AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
245 [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
247 if test "x$withval" = "xno"
250 elif test "x$withval" = "xyes"
254 elif test "x$withval" = "x1"
258 elif test "x$withval" = "x2"
262 elif test "x$withval" = "x3"
267 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
271 # Use libnl if it's present, otherwise don't.
273 want_libnl=ifavailable
277 # Libnl is Linux-specific.
282 AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
284 if test x$want_libnl = "xno"; then
289 # Test for specific libnl versions only if no version
290 # was specified by the user or if the version in question
291 # was requested by the user.
293 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
294 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
296 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
297 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
299 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
300 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
302 if (test "${have_libnl3}" = "yes"); then
303 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
304 LIBS="$LIBS $LIBNL3_LIBS"
305 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
306 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
307 libnl_message="yes (v3)"
309 elif (test "${have_libnl2}" = "yes"); then
310 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
311 LIBS="$LIBS $LIBNL2_LIBS"
312 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
313 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
314 libnl_message="yes (v2)"
316 elif (test "${have_libnl1}" = "yes"); then
317 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
318 LIBS="$LIBS $LIBNL1_LIBS"
319 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
320 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
321 libnl_message="yes (v1)"
324 if test x$want_libnl = "xyes"; then
325 case "$libnl_version" in
328 AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
332 AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
339 AC_MSG_CHECKING([if nl80211.h is new enough])
340 AC_TRY_COMPILE([#include <linux/nl80211.h>],
341 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
342 x = NL80211_ATTR_SUPPORTED_IFTYPES;
343 x = NL80211_ATTR_SUPPORTED_COMMANDS;
344 x = NL80211_ATTR_WIPHY_FREQ;
345 x = NL80211_CHAN_NO_HT;],
346 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
349 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
350 AC_TRY_COMPILE([#include <linux/nl80211.h>],
351 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
352 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
357 if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
358 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
363 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
364 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
365 with_gtk3="$withval", with_gtk3="no")
368 # FIXME: currently the path argument to with-libsmi is being ignored
375 # Check for a2x (convert asciidoc to another format)
376 AC_PATH_PROG(A2X, a2x)
377 AC_CHECK_PROG(HAVE_A2X, a2x, "yes", "no")
378 AM_CONDITIONAL(HAVE_A2X, test x$HAVE_A2X = xyes)
380 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
382 # Want to control a tape drive? Use mt. Want to convert HTML to text?
383 # Uhhhhh... elinks? lynx? w3m? pandoc? html2text?
384 AC_PATH_PROG(ELINKS, elinks)
385 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
386 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
388 # Check for fop (translate .fo to e.g. pdf)
389 AC_PATH_PROG(FOP, fop)
390 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
391 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
393 # Check for lynx (html -> text)
394 AC_PATH_PROG(LYNX, lynx)
395 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
396 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
398 AC_PATH_PROG(PYTHON, python)
400 # Check for w3m (html -> text)
401 AC_PATH_PROG(W3M, w3m)
402 AC_CHECK_PROG(HAVE_W3M, w3m, "yes", "no")
403 AM_CONDITIONAL(HAVE_W3M, test x$HAVE_W3M = xyes)
406 AC_PATH_PROG(XMLLINT, xmllint)
407 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
408 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
411 AC_PATH_PROG(XSLTPROC, xsltproc)
412 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
413 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
416 # Check for packaging utilities
417 # For now, we check to see if the various packaging utilites are in our
418 # path. I'm too lazy to write code to go hunt for them. - Gerald
421 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
422 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
423 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
425 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
426 -a x$HAVE_PKGTRANS = xyes ; then
427 HAVE_SVR4_PACKAGING=yes
429 HAVE_SVR4_PACKAGING=no
431 AC_SUBST(HAVE_SVR4_PACKAGING)
434 AC_WIRESHARK_RPM_CHECK
438 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
441 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
442 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
443 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
445 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
446 -a x$HAVE_BLESS = xyes ; then
447 HAVE_OSX_PACKAGING=yes
449 HAVE_OSX_PACKAGING=no
451 AC_SUBST(HAVE_OSX_PACKAGING)
454 # Try to add some additional gcc checks to CFLAGS
456 AC_ARG_ENABLE(extra-gcc-checks,
457 AC_HELP_STRING( [--enable-extra-gcc-checks],
458 [do additional -W checks in GCC @<:@default=no@:>@]),
460 wireshark_extra_gcc_flags=$enableval
461 if test $enableval != no
463 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
465 # Various code blocks this one.
467 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
468 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
470 # Some memset() calls to clear out structures
471 # on the stack are getting flagged as "will never
472 # be executed" by this, at least by Apple's
473 # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on
474 # Apple Inc. build 5658) (LLVM build 2336.11.00), for
475 # some unknown reason.
477 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
479 # Due to various places where APIs we don't control
480 # require us to cast away constness, we can probably
481 # never enable these ones with -Werror.
483 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
484 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
486 # Some generated ASN.1 dissectors block this one;
487 # multiple function declarations for the same
488 # function are being generated.
490 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
492 # Some loops are safe, but it's hard to convince the
495 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
497 # All the registration functions block these for now.
499 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
500 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
503 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
504 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
505 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
506 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
507 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
508 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
509 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
510 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
511 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
512 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
513 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
514 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes, C)
515 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
516 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
517 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
518 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
519 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
520 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
521 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
522 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
523 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
524 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
525 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
526 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
531 # Make sure -Wshadow doesn't complain about variables in function and
532 # function pointer declarations shadowing other variables; if not, don't
533 # turn it on, as some versions of GCC (including the one in at least
534 # some Xcode versions that came with Mac OS X 10.5) complain about
537 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow, C,
539 extern int bar(int a);
545 int (*fptr)(int a) = bar;
550 [warns about variables in function declarations shadowing other variables])
552 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
553 # is given a constant string.
554 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
555 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op, C,
559 int foo(const char *, int);
563 foo(const char *sep, int c)
565 if (strchr (sep, c) != NULL)
574 return foo("<", 'a');
577 [generates warnings from strchr()])
580 ## AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable)
583 # Use the faster pre gcc 4.5 floating point precision if available;
584 # clang doesn't error out on -f options that it doesn't know about,
585 # it just warns and ignores them, so this check doesn't cause us
586 # to omit -fexcess-precision=fast, which produces a pile of
589 if test "x$CC" != "xclang" ; then
590 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
593 CFLAGS_before_fvhidden=$CFLAGS
594 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fvisibility=hidden)
595 if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
597 # TODO add other ways of hiding symbols
598 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
601 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
602 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
603 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
604 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
605 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
606 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
609 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
610 # so that we can build dumpcap PIE - it may run with elevated
611 # privileges, and using PIE means the OS can run it at random locations
612 # in the address space to make attacks more difficult.
614 CFLAGS_before_pie=$CFLAGS
615 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fPIE, C)
616 if test "x$CLFAGS" != "x$CFLAGS_before_pie"
619 CFLAGS=$CFLAGS_before_pie
621 LDFLAGS_before_pie=$LDFLAGS
622 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
623 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
630 LDFLAGS=$LDFLAGS_before_pie
635 AC_SUBST(PIE_LDFLAGS)
638 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
639 # so we can use _U_ to flag unused function parameters and not get warnings
640 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
641 # to flag an unused function parameters will compile with other compilers.
643 # XXX - similar hints for other compilers?
645 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
646 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
648 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
651 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
652 # (only if the GCC 'optimization level' > 0).
654 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
655 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
657 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
658 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
661 # If the compiler supports GCC-style flags, enable a barrier "stop on
663 # This barrier is set for a very large part of the code. However, it is
664 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
666 warnings_as_errors_default="yes"
667 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
668 AC_ARG_ENABLE(warnings-as-errors,
669 AC_HELP_STRING( [--enable-warnings-as-errors],
670 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]),
672 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
673 with_warnings_as_errors="yes"
676 with_warnings_as_errors="no"
681 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
682 with_warnings_as_errors="yes"
685 with_warnings_as_errors="no"
690 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
693 # Add any platform-specific compiler flags needed.
695 AC_MSG_CHECKING(for platform-specific compiler flags)
696 if test "x$GCC" = "xyes" ; then
698 # GCC - do any platform-specific tweaking necessary.
702 # the X11 headers don't automatically include prototype info
703 # and a lot don't include the return type
704 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
705 CFLAGS="$CFLAGS -Wno-return-type"
706 CXXFLAGS="$CXXFLAGS -Wno-return-type"
707 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
710 AC_MSG_RESULT(none needed)
715 # Not GCC - assume it's the vendor's compiler.
720 # HP's ANSI C compiler; flags suggested by Jost Martin.
721 # "-Ae" for ANSI C plus extensions such as "long long".
722 # "+O2", for optimization. XXX - works with "-g"?
724 # HP's ANSI C++ compiler doesn't support "-Ae", but
725 # does support "+O2", at least according to the
726 # documentation I can find online.
728 CFLAGS="-Ae +O2 $CFLAGS"
729 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
730 CXXFLAGS="+O2 $CFLAGS"
731 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
734 AC_MSG_RESULT(none needed)
740 # Add any platform-specific linker flags needed.
742 AC_MSG_CHECKING(for platform-specific linker flags)
746 # Add -Wl,-single_module to the LDFLAGS used with shared
747 # libraries, to fix some error that show up in some cases;
748 # some Apple documentation recommends it for most shared
751 LDFLAGS_SHAREDLIB="-Wl,-single_module"
753 # Add -Wl,-search_paths_first to make sure that if we search
754 # directories A and B, in that order, for a given library, a
755 # non-shared version in directory A, rather than a shared
756 # version in directory B, is chosen (so we can use
757 # --with-pcap=/usr/local to force all programs to be linked
758 # with a static version installed in /usr/local/lib rather than
759 # the system version in /usr/lib).
761 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
762 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
766 # Shared libraries in cygwin/Win32 must never contain
769 LDFLAGS="$LDFLAGS -no-undefined"
770 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
773 AC_MSG_RESULT(none needed)
776 AC_SUBST(LDFLAGS_SHAREDLIB)
778 # Enable silent builds by default
779 # Verbose builds can be enabled with "./configure
780 # --enable-silent-rules ..." or "make V=1 ..."
781 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
782 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
785 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
786 # "just Darwin" (as we don't currently support iOS, and as I don't
787 # think you can build and run "just Darwin" as an OS for PCs), we
788 # arrange to build some programs with Application Services so they
789 # can launch Web browsers and Finder windows, arrange to build some
790 # programs with System Configuration so they can get "friendly names"
791 # and other information about interfaces, and build any programs that
792 # use either of those frameworks or that report version information
793 # with Core Foundation as the frameworks in question use it and as we
794 # get version information from plists and thus need Core Foundation
795 # to process those plists.
800 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
801 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
802 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
803 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
806 # OK, so we have the OS X frameworks; do they include
807 # CFPropertyListCreateWithStream, or do we have
808 # to fall back on CFPropertyListCreateFromStream?
809 # (They only differ in the error return, which we
810 # don't care about. And, no, we shouldn't just
811 # use CFPropertyListCreateFromStream, because it's
812 # deprecated in newer releases.)
815 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
816 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
820 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
821 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
822 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
825 # If using $prefix we add "$prefix/include" to the include search path
826 # and "$prefix/lib" to the library search path.
828 if test "x$prefix" != "x" ; then
829 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
830 if test -d $prefix/include ; then
833 # Arrange that we search for header files in "$prefix/include", as
834 # various packages we use may have been installed under "$prefix/include".
836 CPPFLAGS="$CPPFLAGS -I$prefix/include"
839 # Arrange that we search for libraries in "$prefix/lib".
841 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
847 dnl Look in /usr/local for header files and libraries ?
848 dnl XXX FIXME don't include /usr/local if it is already in the system
849 dnl search path as this causes gcc 3.2 on Linux to complain about a change
850 dnl of the system search order for includes
851 AC_ARG_ENABLE(usr-local,
852 AC_HELP_STRING( [--enable-usr-local],
853 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
854 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
856 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
857 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
858 if test -d "/usr/local"; then
861 # Arrange that we search for header files in the source directory
862 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
863 # as various packages we use ("libpcap", "zlib", "adns")
864 # may have been installed under "/usr/local/include".
866 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
869 # Arrange that we search for libraries in "/usr/local/lib".
871 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
880 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
885 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
886 if test x$LD_LIBRARY_PATH != x ; then
887 LIBS="$LIBS -R$LD_LIBRARY_PATH"
888 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
890 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
896 # Check for versions of "sed" inadequate to handle, in libtool, a list
897 # of object files as large as the list in Wireshark.
899 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
900 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
901 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
902 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
903 # is the only "sed" that comes with Solaris that can handle Wireshark.
905 # Add any checks here that are necessary for other OSes.
907 AC_WIRESHARK_GNU_SED_CHECK
908 if test "$HAVE_GNU_SED" = no ; then
911 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
913 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
915 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
930 # Enable/disable wireshark
932 AC_ARG_ENABLE(wireshark,
933 AC_HELP_STRING( [--enable-wireshark],
934 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
935 enable_wireshark=$enableval,enable_wireshark=yes)
937 AC_ARG_ENABLE(packet-editor,
938 AC_HELP_STRING( [--enable-packet-editor],
939 [add support for packet editor in Wireshark @<:@default=no@:>@]),
940 enable_packet_editor=$enableval,enable_packet_editor=no)
941 if test x$enable_packet_editor = xyes; then
942 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
945 AC_ARG_ENABLE(profile-build,
946 AC_HELP_STRING( [--enable-profile-build],
947 [build profile-ready binaries @<:@default=no@:>@]),
948 enable_profile_build=$enableval,enable_profile_build=no)
949 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
950 AC_MSG_CHECKING(if profile builds must be generated)
951 if test "x$enable_profile_build" = "xyes" ; then
952 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
954 CFLAGS=" -pg $CFLAGS"
955 CXXFLAGS=" -pg $CXXFLAGS"
958 echo "Building profile binaries currently only supported for GCC and clang."
964 # Create DATAFILE_DIR #define for config.h
965 datafiledir=$datadir/wireshark
967 test "x$prefix" = xNONE && prefix=$ac_default_prefix
968 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
969 # Ugly hack, but I don't see how this problem can be solved
970 # properly that DATAFILE_DIR had a value starting with
971 # "${prefix}/" instead of e.g. "/usr/local/"
972 eval eval echo "$datafiledir"
974 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
976 # Create DOC_DIR #define for config.h
978 test "x$prefix" = xNONE && prefix=$ac_default_prefix
979 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
980 # Ugly hack, but I don't see how this problem can be solved
981 # properly that DOC_DIR had a value starting with
982 # "${prefix}/" instead of e.g. "/usr/local/"
983 eval eval echo "$docdir"
985 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
987 GTK2_MIN_VERSION=2.12.0
988 AC_SUBST(GTK2_MIN_VERSION)
989 GTK3_MIN_VERSION=3.0.0
990 AC_SUBST(GTK3_MIN_VERSION)
992 AC_SUBST(QT_MIN_VERSION)
993 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
994 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
996 # We only do those if we're going to be building Wireshark;
997 # otherwise, we don't have any GUI to build, so we don't use
1000 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
1001 # force all programs to be built with GTK+ or Qt.
1003 # Release dates for GTK+ versions:
1004 # 2.12.0: 14 Sep 2007
1005 # 2.14.0: 04 Sep 2008
1006 # 2.16.0: 13 Mar 2009
1007 # 2.18.0: 23 Sep 2009
1008 # 2.20.0: 23 Mar 2010
1009 # 2.22.0: 23 Sep 2010
1010 # 2.24.0: 30 Jan 2011
1011 # 3.0.0: 10 Feb 2011
1012 # 3.2.0: 25 Sep 2011
1013 # 3.4.0: 26 Mar 2012
1014 # 3.6.0: 24 Sep 2012
1015 # 3.8.0: 25 Mar 2012
1017 if test "x$enable_wireshark" = "xyes"; then
1018 if test "x$with_qt" = "xyes"; then
1020 AC_MSG_CHECKING(whether we have a working C++ compiler)
1022 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
1023 [AC_MSG_RESULT(yes)],
1026 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1030 AM_PATH_QT($QT_MIN_VERSION,
1032 CFLAGS="$CFLAGS $Qt_CFLAGS"
1033 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1036 , [AC_MSG_ERROR([Qt is not available])])
1039 # XXX - greasy hack to make ui/gtk/recent.c
1042 CPPFLAGS="-DQT_GUI_LIB"
1045 # We don't know whether we have GTK+, but we
1046 # won't be using it, so it's as if we don't
1052 # Not Qt - either GTK+ 3.x or 2.x.
1054 if test "x$with_gtk3" = "xyes"; then
1055 AM_PATH_GTK_3_0(3.0.0,
1057 CFLAGS="$CFLAGS $GTK_CFLAGS"
1058 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1060 AC_DEFINE(HAVE_GTK, 1,
1061 [Define to 1 if compiling with GTK])
1065 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1067 CFLAGS="$CFLAGS $GTK_CFLAGS"
1068 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1070 AC_DEFINE(HAVE_GTK, 1,
1071 [Define to 1 if compiling with GTK])
1080 GLIB_MIN_VERSION=2.14.0
1081 AC_SUBST(GLIB_MIN_VERSION)
1082 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1083 # support, as we need that for dynamically loading plugins.
1084 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1085 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1086 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1087 # GLIB_CFLAGS to CFLAGS.
1088 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1089 # set when generating the Makefile, so we can make programs that require
1090 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1091 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1092 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1093 # programs to be built with GLib.
1095 # Release dates for GLib versions:
1096 # 2.14.0: 03 Aug 2007
1097 # 2.16.0: 10 Mar 2008
1098 # 2.18.0: 02 Sep 2008
1099 # 2.20.0: 13 Mar 2009
1100 # 2.22.0: 22 Sep 2009
1101 # 2.24.0: 28 Mar 2010
1102 # 2.26.0: 27 Sep 2010
1103 # 2.28.0: 08 Feb 2011
1104 # 2.30.0: 27 Sep 2011
1105 # 2.32.0: 24 Mar 2012
1106 # 2.34.0: 24 Sep 2012
1108 have_wireshark_cxx="false"
1109 if test "$have_gtk" = "no" ; then
1111 # We don't have GTK+.
1113 if test "$have_qt" = "yes" ; then
1115 # However, we do have Qt, and thus will be building
1116 # Wireshark (if the user had explicitly disabled
1117 # Wireshark, we wouldn't have looked for Qt, so we
1118 # wouldn't think we had it, and thus wouldn't be here).
1120 wireshark_bin="wireshark\$(EXEEXT)"
1121 # Give automake a hint that it needs to use c++ linking.
1122 have_wireshark_cxx="yes"
1123 wireshark_man="wireshark.1"
1124 wireshark_SUBDIRS="codecs ui/qt"
1127 # We don't have Qt, either, which means we have no UI
1130 # If they didn't explicitly say "--disable-wireshark",
1131 # fail (so that, unless they explicitly indicated that
1132 # they don't want Wireshark, we stop so they know they
1133 # won't be getting Wireshark unless they fix the GTK+/Qt
1136 if test "x$enable_wireshark" = "xyes"; then
1137 if test "x$with_gtk3" = "xyes"; then
1138 AC_MSG_ERROR([GTK+ $GTK3_MIN_VERSION or later isn't available, so Wireshark can't be compiled])
1140 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1147 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1149 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1150 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1151 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1154 # We have GTK+, and thus will be building Wireshark (if the user
1155 # had explicitly disabled Wireshark, we wouldn't have looked for
1156 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
1158 wireshark_bin="wireshark\$(EXEEXT)"
1159 wireshark_man="wireshark.1"
1160 wireshark_SUBDIRS="codecs ui/gtk"
1161 # Don't use GLIB_CFLAGS
1162 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1164 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1165 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1166 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1167 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1168 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1169 # Enable GSEAL when building with GTK > 2.20
1170 # (Versions prior to 2.22 lacked some necessary accessors.)
1171 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1176 # "make dist" requires that we have the Qt build tools.
1178 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1179 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1180 # installed; if they're still doing that in current Fedora releases,
1181 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1183 AC_PATH_PROG(UIC, uic)
1186 AC_PATH_PROG(UIC, uic-qt4)
1189 if test "x$with_qt" = "xyes"; then
1191 # If you want to build with Qt, you'd better
1194 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1197 # We shouldn't fail here, as the user's not
1198 # building with Qt, and we shouldn't force them
1199 # to have Qt installed if they're not doing so.
1200 # "make dist" will fail if they do that, but
1201 # we don't know whether they'll be doing that,
1202 # so this is the best we can do.
1209 AC_PATH_PROG(MOC, moc)
1212 AC_PATH_PROG(MOC, moc-qt4)
1215 if test "x$with_qt" = "xyes"; then
1217 # If you want to build with Qt, you'd better
1220 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1223 # We shouldn't fail here, as the user's not
1224 # building with Qt, and we shouldn't force them
1225 # to have Qt installed if they're not doing so.
1226 # "make dist" will fail if they do that, but
1227 # we don't know whether they'll be doing that,
1228 # so this is the best we can do.
1236 # Error out if a glib header other than a "top level" header
1237 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1239 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1241 # Error out on the usage of deprecated glib functions
1242 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1245 # Check whether GLib modules are supported, to determine whether we
1246 # can support plugins.
1248 AC_MSG_CHECKING(whether GLib supports loadable modules)
1249 ac_save_CFLAGS="$CFLAGS"
1250 ac_save_LIBS="$LIBS"
1251 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1252 LIBS="$GLIB_LIBS $LIBS"
1255 #include <gmodule.h>
1262 if (g_module_supported())
1263 return 0; /* success */
1265 return 1; /* failure */
1267 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1268 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1269 ac_cv_glib_supports_modules=yes])
1270 CFLAGS="$ac_save_CFLAGS"
1271 LIBS="$ac_save_LIBS"
1272 if test "$ac_cv_glib_supports_modules" = yes ; then
1281 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1282 # filename (hopefully, a full pathname, but no guarantees) for
1285 if test "$ac_cv_header_dlfcn_h" = "yes"
1287 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1288 ac_save_CFLAGS="$CFLAGS"
1289 ac_save_LIBS="$LIBS"
1290 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1291 LIBS="$GLIB_LIBS $LIBS"
1293 #define _GNU_SOURCE /* required on Linux, sigh */
1301 if (!dladdr((void *)main, &info))
1302 return 1; /* failure */
1303 return 0; /* assume success */
1305 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1306 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1307 ac_cv_dladdr_finds_executable_path=yes])
1308 CFLAGS="$ac_save_CFLAGS"
1309 LIBS="$ac_save_LIBS"
1310 if test x$ac_cv_dladdr_finds_executable_path = xyes
1312 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1314 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1318 # Check whether GLib's printf supports thousands grouping. (This might
1319 # be different from the system's printf since GLib can optionally use
1320 # its own printf implementation.)
1322 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1323 ac_save_CFLAGS="$CFLAGS"
1324 ac_save_LIBS="$LIBS"
1325 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1326 LIBS="$GLIB_LIBS $LIBS"
1337 setlocale(LC_ALL, "en_US.UTF-8");
1338 str = g_strdup_printf("%'u", 123456);
1339 return (strcmp (str, "123,456") != 0);
1341 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1342 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1343 ac_cv_glib_supports_printf_grouping=no])
1344 CFLAGS="$ac_save_CFLAGS"
1345 LIBS="$ac_save_LIBS"
1346 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1348 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1353 if test "x$have_gtk" = "xyes"
1356 # We have GTK+; do we want the OS X integration functions and,
1357 # if so, do we have them and, if so, which versions do we have,
1358 # the old Carbon-based ones or the new Cocoa-based ones?
1360 AC_MSG_CHECKING(whether to use OS X integration functions)
1362 AC_ARG_WITH(osx-integration,
1363 AC_HELP_STRING( [--with-osx-integration],
1364 [use OS X integration functions @<:@default=yes, if available@:>@]),
1366 if test $withval = no
1368 want_osx_integration=no
1370 want_osx_integration=yes
1373 want_osx_integration=yes
1375 if test "x$want_osx_integration" = "xno"; then
1379 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1383 AC_SUBST(wireshark_bin)
1384 AC_SUBST(wireshark_man)
1385 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1386 AM_CONDITIONAL(HAVE_WIRESHARK_CXX, test "$have_wireshark_cxx" = "yes")
1389 # Enable/disable tshark
1391 AC_ARG_ENABLE(tshark,
1392 AC_HELP_STRING( [--enable-tshark],
1393 [build TShark @<:@default=yes@:>@]),
1394 tshark=$enableval,enable_tshark=yes)
1396 if test "x$enable_tshark" = "xyes" ; then
1397 tshark_bin="tshark\$(EXEEXT)"
1398 tshark_man="tshark.1"
1399 wiresharkfilter_man="wireshark-filter.4"
1404 AC_SUBST(tshark_bin)
1405 AC_SUBST(tshark_man)
1406 AC_SUBST(wiresharkfilter_man)
1410 # Enable/disable editcap
1412 AC_ARG_ENABLE(editcap,
1413 AC_HELP_STRING( [--enable-editcap],
1414 [build editcap @<:@default=yes@:>@]),
1415 enable_editcap=$enableval,enable_editcap=yes)
1417 if test "x$enable_editcap" = "xyes" ; then
1418 editcap_bin="editcap\$(EXEEXT)"
1419 editcap_man="editcap.1"
1424 AC_SUBST(editcap_bin)
1425 AC_SUBST(editcap_man)
1427 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1430 # Enable/disable capinfos
1432 AC_ARG_ENABLE(capinfos,
1433 AC_HELP_STRING( [--enable-capinfos],
1434 [build capinfos @<:@default=yes@:>@]),
1435 enable_capinfos=$enableval,enable_capinfos=yes)
1437 if test "x$enable_capinfos" = "xyes" ; then
1438 capinfos_bin="capinfos\$(EXEEXT)"
1439 capinfos_man="capinfos.1"
1444 AC_SUBST(capinfos_bin)
1445 AC_SUBST(capinfos_man)
1448 # Enable/disable mergecap
1450 AC_ARG_ENABLE(mergecap,
1451 AC_HELP_STRING( [--enable-mergecap],
1452 [build mergecap @<:@default=yes@:>@]),
1453 enable_mergecap=$enableval,enable_mergecap=yes)
1455 if test "x$enable_mergecap" = "xyes" ; then
1456 mergecap_bin="mergecap\$(EXEEXT)"
1457 mergecap_man="mergecap.1"
1462 AC_SUBST(mergecap_bin)
1463 AC_SUBST(mergecap_man)
1466 # Enable/disable reordercap
1468 AC_ARG_ENABLE(reordercap,
1469 AC_HELP_STRING( [--enable-reordercap],
1470 [build reordercap @<:@default=yes@:>@]),
1471 enable_reordercap=$enableval,enable_reordercap=yes)
1473 if test "x$enable_reordercap" = "xyes" ; then
1474 reordercap_bin="reordercap\$(EXEEXT)"
1475 reordercap_man="reordercap.1"
1480 AC_SUBST(reordercap_bin)
1481 AC_SUBST(reordercap_man)
1484 # Enable/disable text2pcap
1486 AC_ARG_ENABLE(text2pcap,
1487 AC_HELP_STRING( [--enable-text2pcap],
1488 [build text2pcap @<:@default=yes@:>@]),
1489 text2pcap=$enableval,enable_text2pcap=yes)
1491 if test "x$enable_text2pcap" = "xyes" ; then
1492 text2pcap_bin="text2pcap\$(EXEEXT)"
1493 text2pcap_man="text2pcap.1"
1498 AC_SUBST(text2pcap_bin)
1499 AC_SUBST(text2pcap_man)
1502 # Enable/disable dftest
1504 AC_ARG_ENABLE(dftest,
1505 AC_HELP_STRING( [--enable-dftest],
1506 [build dftest @<:@default=yes@:>@]),
1507 enable_dftest=$enableval,enable_dftest=yes)
1509 if test "x$enable_dftest" = "xyes" ; then
1510 dftest_bin="dftest\$(EXEEXT)"
1511 dftest_man="dftest.1"
1516 AC_SUBST(dftest_bin)
1517 AC_SUBST(dftest_man)
1520 # Enable/disable randpkt
1522 AC_ARG_ENABLE(randpkt,
1523 AC_HELP_STRING( [--enable-randpkt],
1524 [build randpkt @<:@default=yes@:>@]),
1525 enable_randpkt=$enableval,enable_randpkt=yes)
1527 if test "x$enable_randpkt" = "xyes" ; then
1528 randpkt_bin="randpkt\$(EXEEXT)"
1529 randpkt_man="randpkt.1"
1534 AC_SUBST(randpkt_bin)
1535 AC_SUBST(randpkt_man)
1539 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1540 dnl "gethostbyname()".
1541 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1543 dnl Checks for "connect()", used as a proxy for "socket()" - and
1544 dnl "-lsocket", if we need it to get "connect()".
1545 AC_WIRESHARK_SOCKET_LIB_CHECK
1548 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1551 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1552 [use libpcap for packet capturing @<:@default=yes@:>@]),
1554 if test $withval = no
1557 elif test $withval = yes
1568 if test "x$want_pcap" = "xno" ; then
1572 AC_WIRESHARK_PCAP_CHECK
1576 dnl Check for airpcap
1577 AC_MSG_CHECKING(whether to include airpcap support)
1578 AC_ARG_ENABLE(airpcap,
1579 AC_HELP_STRING( [--enable-airpcap],
1580 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1581 enable_airpcap=$enableval, enable_airpcap=yes)
1583 if test x$enable_airpcap = xyes; then
1584 if test "x$want_pcap" = "xno" ; then
1586 AC_MSG_RESULT(pcap not available - disabling airpcap)
1589 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1597 AC_MSG_CHECKING(whether to build dumpcap)
1599 AC_ARG_ENABLE(dumpcap,
1600 AC_HELP_STRING( [--enable-dumpcap],
1601 [build dumpcap @<:@default=yes@:>@]),
1602 enable_dumpcap=$enableval,enable_dumpcap=yes)
1604 if test "x$enable_dumpcap" = "xyes" ; then
1605 if test "x$want_pcap" = "xno" ; then
1607 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1615 if test "x$enable_dumpcap" = "xyes" ; then
1616 dumpcap_bin="dumpcap\$(EXEEXT)"
1617 dumpcap_man="dumpcap.1"
1622 AC_SUBST(dumpcap_bin)
1623 AC_SUBST(dumpcap_man)
1625 # Enable/disable rawshark
1628 AC_MSG_CHECKING(whether to build rawshark)
1630 AC_ARG_ENABLE(rawshark,
1631 AC_HELP_STRING( [--enable-rawshark],
1632 [build rawshark @<:@default=yes@:>@]),
1633 rawshark=$enableval,enable_rawshark=yes)
1635 if test "x$enable_rawshark" = "xyes" ; then
1636 if test "x$want_pcap" = "xno" ; then
1638 AC_MSG_RESULT(pcap not available - disabling rawshark)
1646 if test "x$enable_rawshark" = "xyes" ; then
1647 rawshark_bin="rawshark\$(EXEEXT)"
1648 rawshark_man="rawshark.1"
1653 AC_SUBST(rawshark_bin)
1654 AC_SUBST(rawshark_man)
1656 dnl Use pcap-ng by default
1657 AC_ARG_ENABLE(pcap-ng-default,
1658 AC_HELP_STRING( [--enable-pcap-ng-default],
1659 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1660 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1661 if test x$enable_pcap_ng_default = xyes; then
1662 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1665 dnl pcap remote check
1666 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1668 AC_ARG_WITH(pcap-remote,
1669 AC_HELP_STRING([--with-pcap-remote],
1670 [use libpcap remote capturing (requires libpcap)]),
1672 if test $withval = no
1676 want_pcap_remote=yes
1681 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1685 AC_WIRESHARK_PCAP_REMOTE_CHECK
1689 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1692 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1693 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1695 if test "x$withval" = "xno"
1698 elif test "x$withval" = "xyes"
1707 # Use zlib if it's present, otherwise don't.
1709 want_zlib=ifavailable
1712 if test "x$want_zlib" = "xno" ; then
1716 AC_WIRESHARK_ZLIB_CHECK
1717 if test "x$want_zlib" = "xno" ; then
1718 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1720 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1721 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1727 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1730 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1731 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1733 if test $withval = no
1736 elif test $withval = yes
1745 # Use liblua by default
1747 want_lua=ifavailable
1750 if test "x$want_lua" = "xno" ; then
1754 AC_WIRESHARK_LIBLUA_CHECK
1755 if test "x$want_lua" = "xno" ; then
1756 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1759 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1763 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1765 AC_ARG_WITH(portaudio,
1766 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1767 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1769 if test $withval = no
1772 elif test $withval = yes
1777 portaudio_dir=$withval
1781 # Use libportaudio by default
1783 want_portaudio=ifavailable
1786 if test "x$want_portaudio" = "xno" ; then
1790 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1791 if test "x$want_portaudio" = "xno" ; then
1792 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1795 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1800 AC_HELP_STRING( [--enable-ipv6],
1801 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1802 enable_ipv6=$enableval,enable_ipv6=yes)
1804 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1805 if test "x$enable_ipv6" = "xno" ; then
1809 AC_WIRESHARK_IPV6_STACK
1813 dnl Check if dumpcap should be installed with filesystem capabilities
1814 AC_PATH_PROG(SETCAP, setcap)
1815 AC_ARG_ENABLE(setcap-install,
1816 AC_HELP_STRING( [--enable-setcap-install],
1817 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1818 enable_setcap_install=$enableval,enable_setcap_install=no)
1820 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1821 if test "x$enable_setcap_install" = "xno" ; then
1824 if test "x$SETCAP" = "x" ; then
1825 AC_MSG_RESULT(no. Setcap not found)
1826 elif test "x$enable_dumpcap" = "xno" ; then
1827 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1833 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1835 dnl Check if dumpcap should be installed setuid
1836 AC_ARG_ENABLE(setuid-install,
1837 AC_HELP_STRING( [--enable-setuid-install],
1838 [install dumpcap as setuid @<:@default=no@:>@]),
1839 enable_setuid_install=$enableval,enable_setuid_install=no)
1841 AC_MSG_CHECKING(whether to install dumpcap setuid)
1842 if test "x$enable_setuid_install" = "xno" ; then
1845 if test "x$enable_setcap_install" = "xyes" ; then
1846 enable_setuid_install=no
1847 AC_MSG_RESULT(no; using setcap instead)
1848 elif test "x$enable_dumpcap" = "xno" ; then
1849 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1855 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1856 AC_CHECK_FUNCS(setresuid setresgid)
1858 dnl ...but our Network Operations group is named "no"!
1860 AC_ARG_WITH(dumpcap-group,
1861 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1862 [restrict dumpcap to GROUP]),
1864 if test "x$withval" = "xyes"; then
1865 AC_MSG_ERROR([No dumpcap group specified.])
1866 elif test "x$withval" != "xno"; then
1867 if test "x$enable_dumpcap" = "xno" ; then
1868 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1870 AC_MSG_RESULT($withval)
1871 DUMPCAP_GROUP="$withval"
1874 AC_SUBST(DUMPCAP_GROUP)
1875 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1877 dnl libcap (not libpcap) check
1879 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1882 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1883 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1885 if test "x$withval" = "xno"; then
1887 elif test "x$withval" = "xyes"; then
1889 elif test -d "$withval"; then
1891 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1894 if test "x$with_libcap" = "xno" ; then
1898 AC_WIRESHARK_LIBCAP_CHECK
1900 AC_SUBST(LIBCAP_LIBS)
1902 dnl Checks for header files.
1903 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1904 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)
1905 AC_CHECK_HEADERS(netinet/in.h)
1906 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1910 AC_MSG_CHECKING(whether to use SSL library)
1913 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1914 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1916 if test "x$withval" = "xno"; then
1918 elif test "x$withval" = "xyes"; then
1920 elif test -d "$withval"; then
1922 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1927 if test "x$want_ssl" = "xyes"; then
1929 AC_CHECK_LIB(crypto,EVP_md5,
1934 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1942 AC_MSG_CHECKING(whether to use Kerberos library)
1945 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1946 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1948 if test $withval = no
1951 elif test $withval = yes
1960 # Use Kerberos library if available, otherwise don't.
1962 want_krb5=ifavailable
1965 if test "x$want_krb5" = "xno" ; then
1969 AC_WIRESHARK_KRB5_CHECK
1975 AC_MSG_CHECKING(whether to use the c-ares library if available)
1978 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1979 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1981 if test "x$withval" = "xno"; then
1983 elif test "x$withval" = "xyes"; then
1985 elif test -d "$withval"; then
1987 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1990 if test "x$want_c_ares" = "xno" ; then
1994 AC_WIRESHARK_C_ARES_CHECK
1996 AC_SUBST(C_ARES_LIBS)
2000 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
2003 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
2004 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2006 if test "x$withval" = "xno"; then
2008 elif test "x$withval" = "xyes"; then
2010 elif test -d "$withval"; then
2012 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2015 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2019 AC_WIRESHARK_ADNS_CHECK
2025 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2028 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2029 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2031 if test "x$withval" = "xno"; then
2033 elif test "x$withval" = "xyes"; then
2035 elif test -d "$withval"; then
2037 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2040 if test "x$want_geoip" = "xno"; then
2044 AC_WIRESHARK_GEOIP_CHECK
2046 AC_SUBST(GEOIP_LIBS)
2048 dnl Python devel Check
2049 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
2052 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
2053 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
2055 pythondir='${libdir}/wireshark/python/${VERSION}'
2056 if test "x$withval" = "xno"
2059 elif test "x$withval" = "xyes"
2064 pythondir="$withval"
2067 # By default (user didn't explicitly enable Python), don't enable
2071 #pythondir='${libdir}/wireshark/python/${VERSION}'
2073 if test "x$want_python" = "xno" ; then
2077 AC_WIRESHARK_PYTHON_CHECK
2079 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2083 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2084 # never return (just like Charlie on the MTA).
2086 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2087 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2088 # follow the function name, so we need two different flavors of
2091 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2093 dnl Checks for typedefs, structures, and compiler characteristics.
2096 # Check how we can get the time zone abbreviation
2097 AC_WIRESHARK_TIMEZONE_ABBREV
2099 # We need to know whether "struct stat" has an "st_flags" member
2100 # for file_user_immutable().
2102 AC_WIRESHARK_STRUCT_ST_FLAGS
2104 # We need to know whether "struct sockaddr" has an "sa_len" member
2105 # for get_interface_list().
2107 AC_WIRESHARK_STRUCT_SA_LEN
2109 # We must know our byte order
2112 # Checks whether "-traditional" is needed when using "ioctl".
2113 # XXX - do we need this?
2114 AC_PROG_GCC_TRADITIONAL
2117 AC_CHECK_FUNC(getopt,
2119 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2121 GETOPT_LO="wsgetopt.lo"
2123 if test "$ac_cv_func_getopt" = no ; then
2124 GETOPT_LO="wsgetopt.lo"
2126 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2129 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2130 STRNCASECMP_LO="strncasecmp.lo")
2131 if test "$ac_cv_func_strncasecmp" = no ; then
2132 STRNCASECMP_LO="strncasecmp.lo"
2134 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2135 AC_SUBST(STRNCASECMP_LO)
2137 AC_CHECK_FUNCS(mkstemp mkdtemp)
2139 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2141 if test "$have_inet_aton" = no; then
2142 INET_ATON_LO="inet_aton.lo"
2143 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2147 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2148 AC_SUBST(INET_ATON_LO)
2150 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2151 dnl check for pre-BIND82 inet_pton() bug.
2152 AC_MSG_CHECKING(for broken inet_pton)
2153 AC_TRY_RUN([#include <sys/types.h>
2154 #include <sys/socket.h>
2155 #include <netinet/in.h>
2156 #include <arpa/inet.h>
2161 /* this should return 0 (error) */
2162 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2166 }], [AC_MSG_RESULT(ok);
2167 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2168 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2169 have_inet_pton=no])],
2171 if test "$have_inet_pton" = no; then
2172 INET_PTON_LO="inet_pton.lo"
2176 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2177 AC_SUBST(INET_PTON_LO)
2179 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2180 AC_MSG_CHECKING([for inet_ntop prototype])
2181 AC_TRY_COMPILE([#include <stdio.h>
2182 #include <sys/types.h>
2183 #include <sys/socket.h>
2184 #include <netinet/in.h>
2185 #include <arpa/inet.h>
2187 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2189 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2190 [Define if inet_ntop() prototype exists])], [
2191 AC_TRY_COMPILE([#include <stdio.h>
2192 #include <sys/types.h>
2193 #include <sys/socket.h>
2194 #include <netinet/in.h>
2195 #include <arpa/inet.h>
2197 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2199 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2200 [Define if inet_ntop() prototype exists])], [
2201 AC_MSG_RESULT(no)])])
2203 INET_NTOP_LO="inet_ntop.lo"
2204 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2205 [Define if inet/v6defs.h needs to be included])])
2206 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2207 AC_SUBST(INET_NTOP_LO)
2209 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2210 [STRPTIME_LO="strptime.lo"
2211 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2213 if test "$ac_cv_func_strptime" = no ; then
2214 STRPTIME_LO="strptime.lo"
2216 AC_SUBST(STRPTIME_C)
2217 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2218 AC_SUBST(STRPTIME_LO)
2220 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2221 AC_CHECK_FUNCS(issetugid)
2222 AC_CHECK_FUNCS(mmap mprotect sysconf)
2223 AC_CHECK_FUNCS(strtoll)
2225 dnl blank for now, but will be used in future
2226 AC_SUBST(wireshark_SUBDIRS)
2229 dnl check whether plugins should be enabled and, if they should be,
2230 dnl check for plugins directory - stolen from Amanda's configure.ac
2232 dnl we don't wish to expand ${libdir} yet
2233 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2234 AC_ARG_WITH(plugins,
2235 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2236 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2238 if test "x$withval" = "xno"; then
2240 elif test "x$have_plugins" = "xno"; then
2241 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2242 elif test "x$withval" != "xyes"; then
2243 plugindir="$withval"
2246 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2247 if test x$have_plugins = xyes
2249 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2252 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2255 # The plugin dissectors reside in ./plugins/PROTO/
2258 AC_SUBST(PLUGIN_LIBS)
2261 # Check if (emem) memory allocations must be 8-byte aligned.
2262 # I haven't been able to write C code that reliably makes that determination
2263 # (different versions of GCC with or without optimization give different
2264 # results) so just assume everything except (32-bit) x86 needs 8-byte
2265 # alignment (64-bit platforms either require 8-byte alignment for pointers
2266 # and 64-bit integral data types or may get better performance from that;
2267 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2268 # platforms would only require it, or get better performance from it,
2269 # for 64-bit floating-point values.).
2271 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2273 i386|i486|i586|i686)
2278 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2284 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2285 # (autoconf? automake? libtool?) - with the newer version(s), it's
2286 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2288 # With older version(s) of those tool(s), however, it's not just an
2289 # alias, and the configure scripts don't work without it.
2292 AC_SUBST(LIBTOOL_DEPS)
2294 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2295 if test x$enable_static = xyes -a x$have_plugins = xyes
2297 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2299 AC_SUBST(ENABLE_STATIC)
2301 dnl Save the cacheable configure results to config.cache before recursing
2304 sinclude(plugins/Custom.m4) dnl
2305 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2307 sinclude(asn1/Custom.m4) dnl
2308 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2310 AC_CONFIG_HEADERS(config.h)
2315 _CUSTOM_ASN1_AC_OUTPUT_
2316 asn1/acp133/Makefile
2318 asn1/ansi_map/Makefile
2319 asn1/ansi_tcap/Makefile
2323 asn1/charging_ase/Makefile
2328 asn1/credssp/Makefile
2337 asn1/gprscdr/Makefile
2338 asn1/gsm_map/Makefile
2347 asn1/h450-ros/Makefile
2350 asn1/HI2Operations/Makefile
2354 asn1/isdn-sup/Makefile
2355 asn1/kerberos/Makefile
2358 asn1/logotypecertextn/Makefile
2362 asn1/lte-rrc/Makefile
2365 asn1/mpeg-audio/Makefile
2366 asn1/mpeg-pes/Makefile
2368 asn1/ns_cert_exts/Makefile
2376 asn1/pkcs12/Makefile
2377 asn1/pkinit/Makefile
2378 asn1/pkixac/Makefile
2379 asn1/pkix1explicit/Makefile
2380 asn1/pkix1implicit/Makefile
2381 asn1/pkixproxy/Makefile
2382 asn1/pkixqualified/Makefile
2383 asn1/pkixtsp/Makefile
2386 asn1/q932-ros/Makefile
2397 asn1/sbc-ap/Makefile
2400 asn1/spnego/Makefile
2408 asn1/wlancertextn/Makefile
2410 asn1/x509af/Makefile
2411 asn1/x509ce/Makefile
2412 asn1/x509if/Makefile
2413 asn1/x509sat/Makefile
2420 epan/dfilter/Makefile
2421 epan/dissectors/Makefile
2422 epan/dissectors/dcerpc/Makefile
2423 epan/dissectors/pidl/Makefile
2424 epan/ftypes/Makefile
2427 epan/wspython/Makefile
2438 packaging/macosx/Info.plist
2439 packaging/macosx/Makefile
2440 packaging/macosx/osx-dmg.sh
2441 packaging/nsis/Makefile
2442 packaging/rpm/Makefile
2443 packaging/rpm/SPECS/Makefile
2444 packaging/rpm/SPECS/wireshark.spec
2445 packaging/svr4/Makefile
2446 packaging/svr4/checkinstall
2447 packaging/svr4/pkginfo
2449 plugins/asn1/Makefile
2450 plugins/docsis/Makefile
2451 plugins/ethercat/Makefile
2452 plugins/gryphon/Makefile
2453 plugins/irda/Makefile
2454 plugins/m2m/Makefile
2455 plugins/mate/Makefile
2456 plugins/opcua/Makefile
2457 plugins/profinet/Makefile
2458 plugins/stats_tree/Makefile
2459 plugins/unistim/Makefile
2460 plugins/wimax/Makefile
2461 plugins/wimaxasncp/Makefile
2462 plugins/wimaxmacphy/Makefile
2464 tools/lemon/Makefile
2469 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2474 if test "x$have_qt" = "xyes"; then
2475 gui_lib_message=" (with Qt)"
2477 if test "x$have_gtk" = "xyes"; then
2478 if test "x$with_gtk3" = "xyes"; then
2479 gui_lib_message=" (with GTK+ 3"
2481 gui_lib_message=" (with GTK+ 2"
2483 if test "x$have_ige_mac" = "xyes"; then
2484 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2486 gui_lib_message="$gui_lib_message)"
2491 if test "x$enable_setcap_install" = "xyes" ; then
2492 setcap_message="yes"
2497 if test "x$enable_setuid_install" = "xyes" ; then
2498 setuid_message="yes"
2503 if test "x$DUMPCAP_GROUP" = "x" ; then
2504 dumpcap_group_message="(none)"
2506 dumpcap_group_message="$DUMPCAP_GROUP"
2509 if test "x$want_zlib" = "xno" ; then
2515 if test "x$want_lua" = "xyes" ; then
2521 if test "x$want_python" = "xno"; then
2524 python_message="yes"
2527 if test "x$want_portaudio" = "xyes" ; then
2528 portaudio_message="yes"
2530 portaudio_message="no"
2533 if test "x$want_ssl" = "xno" ; then
2539 if test "x$want_krb5" = "xno" ; then
2542 krb5_message="yes ($ac_krb5_version)"
2545 if test "x$have_good_c_ares" = "xyes" ; then
2546 c_ares_message="yes"
2551 if test "x$have_good_adns" = "xyes" ; then
2554 if test "x$have_good_c_ares" = "xyes" ; then
2555 adns_message="no (using c-ares instead)"
2561 if test "x$have_good_libcap" = "xyes" ; then
2562 libcap_message="yes"
2567 if test "x$have_good_geoip" = "xyes" ; then
2574 echo "The Wireshark package has been configured with the following options."
2575 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2576 echo " Build tshark : $enable_tshark"
2577 echo " Build capinfos : $enable_capinfos"
2578 echo " Build editcap : $enable_editcap"
2579 echo " Build dumpcap : $enable_dumpcap"
2580 echo " Build mergecap : $enable_mergecap"
2581 echo " Build reordercap : $enable_reordercap"
2582 echo " Build text2pcap : $enable_text2pcap"
2583 echo " Build randpkt : $enable_randpkt"
2584 echo " Build dftest : $enable_dftest"
2585 echo " Build rawshark : $enable_rawshark"
2587 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2588 echo " Install dumpcap with capabilities : $setcap_message"
2589 echo " Install dumpcap setuid : $setuid_message"
2590 echo " Use dumpcap group : $dumpcap_group_message"
2591 echo " Use plugins : $have_plugins"
2592 echo " Use Lua library : $lua_message"
2593 echo " Use Python binding : $python_message"
2594 echo " Build rtp_player : $portaudio_message"
2595 echo " Build profile binaries : $enable_profile_build"
2596 echo " Use pcap library : $want_pcap"
2597 echo " Use zlib library : $zlib_message"
2598 echo " Use kerberos library : $krb5_message"
2599 echo " Use c-ares library : $c_ares_message"
2600 echo " Use GNU ADNS library : $adns_message"
2601 echo " Use SMI MIB library : $libsmi_message"
2602 echo " Use GNU crypto library : $gcrypt_message"
2603 echo " Use SSL crypto library : $ssl_message"
2604 echo " Use IPv6 name resolution : $enable_ipv6"
2605 echo " Use gnutls library : $tls_message"
2606 echo " Use POSIX capabilities library : $libcap_message"
2607 echo " Use GeoIP library : $geoip_message"
2608 echo " Use nl library : $libnl_message"