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)
824 dnl Look in /usr/local for header files and libraries ?
825 dnl XXX FIXME don't include /usr/local if it is already in the system
826 dnl search path as this causes gcc 3.2 on Linux to complain about a change
827 dnl of the system search order for includes
828 AC_ARG_ENABLE(usr-local,
829 AC_HELP_STRING( [--enable-usr-local],
830 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
831 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
833 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
834 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
835 if test -d "/usr/local"; then
838 # Arrange that we search for header files in the source directory
839 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
840 # as various packages we use ("libpcap", "zlib", "adns")
841 # may have been installed under "/usr/local/include".
843 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
846 # Arrange that we search for libraries in "/usr/local/lib".
848 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
857 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
862 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
863 if test x$LD_LIBRARY_PATH != x ; then
864 LIBS="$LIBS -R$LD_LIBRARY_PATH"
865 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
867 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
873 # Check for versions of "sed" inadequate to handle, in libtool, a list
874 # of object files as large as the list in Wireshark.
876 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
877 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
878 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
879 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
880 # is the only "sed" that comes with Solaris that can handle Wireshark.
882 # Add any checks here that are necessary for other OSes.
884 AC_WIRESHARK_GNU_SED_CHECK
885 if test "$HAVE_GNU_SED" = no ; then
888 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
890 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
892 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
907 # Enable/disable wireshark
909 AC_ARG_ENABLE(wireshark,
910 AC_HELP_STRING( [--enable-wireshark],
911 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
912 enable_wireshark=$enableval,enable_wireshark=yes)
914 AC_ARG_ENABLE(packet-editor,
915 AC_HELP_STRING( [--enable-packet-editor],
916 [add support for packet editor in Wireshark @<:@default=no@:>@]),
917 enable_packet_editor=$enableval,enable_packet_editor=no)
918 if test x$enable_packet_editor = xyes; then
919 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
922 AC_ARG_ENABLE(profile-build,
923 AC_HELP_STRING( [--enable-profile-build],
924 [build profile-ready binaries @<:@default=no@:>@]),
925 enable_profile_build=$enableval,enable_profile_build=no)
926 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
927 AC_MSG_CHECKING(if profile builds must be generated)
928 if test "x$enable_profile_build" = "xyes" ; then
929 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
931 CFLAGS=" -pg $CFLAGS"
932 CXXFLAGS=" -pg $CXXFLAGS"
935 echo "Building profile binaries currently only supported for GCC and clang."
941 # Create DATAFILE_DIR #define for config.h
942 datafiledir=$datadir/wireshark
944 test "x$prefix" = xNONE && prefix=$ac_default_prefix
945 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
946 # Ugly hack, but I don't see how this problem can be solved
947 # properly that DATAFILE_DIR had a value starting with
948 # "${prefix}/" instead of e.g. "/usr/local/"
949 eval eval echo "$datafiledir"
951 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
953 # Create DOC_DIR #define for config.h
955 test "x$prefix" = xNONE && prefix=$ac_default_prefix
956 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
957 # Ugly hack, but I don't see how this problem can be solved
958 # properly that DOC_DIR had a value starting with
959 # "${prefix}/" instead of e.g. "/usr/local/"
960 eval eval echo "$docdir"
962 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
964 GTK2_MIN_VERSION=2.12.0
965 AC_SUBST(GTK2_MIN_VERSION)
966 GTK3_MIN_VERSION=3.0.0
967 AC_SUBST(GTK3_MIN_VERSION)
969 AC_SUBST(QT_MIN_VERSION)
970 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
971 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
973 # We only do those if we're going to be building Wireshark;
974 # otherwise, we don't have any GUI to build, so we don't use
977 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
978 # force all programs to be built with GTK+ or Qt.
980 # Release dates for GTK+ versions:
981 # 2.12.0: 14 Sep 2007
982 # 2.14.0: 04 Sep 2008
983 # 2.16.0: 13 Mar 2009
984 # 2.18.0: 23 Sep 2009
985 # 2.20.0: 23 Mar 2010
986 # 2.22.0: 23 Sep 2010
987 # 2.24.0: 30 Jan 2011
994 if test "x$enable_wireshark" = "xyes"; then
995 if test "x$with_qt" = "xyes"; then
997 AC_MSG_CHECKING(whether we have a working C++ compiler)
999 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
1000 [AC_MSG_RESULT(yes)],
1003 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1007 AM_PATH_QT($QT_MIN_VERSION,
1009 CFLAGS="$CFLAGS $Qt_CFLAGS"
1010 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1013 , [AC_MSG_ERROR([Qt is not available])])
1016 # XXX - greasy hack to make ui/gtk/recent.c
1019 CPPFLAGS="-DQT_GUI_LIB"
1022 # We don't know whether we have GTK+, but we
1023 # won't be using it, so it's as if we don't
1029 # Not Qt - either GTK+ 3.x or 2.x.
1031 if test "x$with_gtk3" = "xyes"; then
1032 AM_PATH_GTK_3_0(3.0.0,
1034 CFLAGS="$CFLAGS $GTK_CFLAGS"
1035 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1037 AC_DEFINE(HAVE_GTK, 1,
1038 [Define to 1 if compiling with GTK])
1042 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1044 CFLAGS="$CFLAGS $GTK_CFLAGS"
1045 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1047 AC_DEFINE(HAVE_GTK, 1,
1048 [Define to 1 if compiling with GTK])
1057 GLIB_MIN_VERSION=2.14.0
1058 AC_SUBST(GLIB_MIN_VERSION)
1059 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1060 # support, as we need that for dynamically loading plugins.
1061 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1062 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1063 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1064 # GLIB_CFLAGS to CFLAGS.
1065 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1066 # set when generating the Makefile, so we can make programs that require
1067 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1068 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1069 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1070 # programs to be built with GLib.
1072 # Release dates for GLib versions:
1073 # 2.14.0: 03 Aug 2007
1074 # 2.16.0: 10 Mar 2008
1075 # 2.18.0: 02 Sep 2008
1076 # 2.20.0: 13 Mar 2009
1077 # 2.22.0: 22 Sep 2009
1078 # 2.24.0: 28 Mar 2010
1079 # 2.26.0: 27 Sep 2010
1080 # 2.28.0: 08 Feb 2011
1081 # 2.30.0: 27 Sep 2011
1082 # 2.32.0: 24 Mar 2012
1083 # 2.34.0: 24 Sep 2012
1085 have_wireshark_cxx="false"
1086 if test "$have_gtk" = "no" ; then
1088 # We don't have GTK+.
1090 if test "$have_qt" = "yes" ; then
1092 # However, we do have Qt, and thus will be building
1093 # Wireshark (if the user had explicitly disabled
1094 # Wireshark, we wouldn't have looked for Qt, so we
1095 # wouldn't think we had it, and thus wouldn't be here).
1097 wireshark_bin="wireshark\$(EXEEXT)"
1098 # Give automake a hint that it needs to use c++ linking.
1099 have_wireshark_cxx="yes"
1100 wireshark_man="wireshark.1"
1101 wireshark_SUBDIRS="codecs ui/qt"
1104 # We don't have Qt, either, which means we have no UI
1107 # If they didn't explicitly say "--disable-wireshark",
1108 # fail (so that, unless they explicitly indicated that
1109 # they don't want Wireshark, we stop so they know they
1110 # won't be getting Wireshark unless they fix the GTK+/Qt
1113 if test "x$enable_wireshark" = "xyes"; then
1114 if test "x$with_gtk3" = "xyes"; then
1115 AC_MSG_ERROR([GTK+ $GTK3_MIN_VERSION or later isn't available, so Wireshark can't be compiled])
1117 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1124 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1126 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1127 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1128 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1131 # We have GTK+, and thus will be building Wireshark (if the user
1132 # had explicitly disabled Wireshark, we wouldn't have looked for
1133 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
1135 wireshark_bin="wireshark\$(EXEEXT)"
1136 wireshark_man="wireshark.1"
1137 wireshark_SUBDIRS="codecs ui/gtk"
1138 # Don't use GLIB_CFLAGS
1139 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1141 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1142 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1143 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1144 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1145 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1146 # Enable GSEAL when building with GTK > 2.20
1147 # (Versions prior to 2.22 lacked some necessary accessors.)
1148 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1153 # "make dist" requires that we have the Qt build tools.
1155 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1156 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1157 # installed; if they're still doing that in current Fedora releases,
1158 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1160 AC_PATH_PROG(UIC, uic)
1163 AC_PATH_PROG(UIC, uic-qt4)
1166 if test "x$with_qt" = "xyes"; then
1168 # If you want to build with Qt, you'd better
1171 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1174 # We shouldn't fail here, as the user's not
1175 # building with Qt, and we shouldn't force them
1176 # to have Qt installed if they're not doing so.
1177 # "make dist" will fail if they do that, but
1178 # we don't know whether they'll be doing that,
1179 # so this is the best we can do.
1186 AC_PATH_PROG(MOC, moc)
1189 AC_PATH_PROG(MOC, moc-qt4)
1192 if test "x$with_qt" = "xyes"; then
1194 # If you want to build with Qt, you'd better
1197 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1200 # We shouldn't fail here, as the user's not
1201 # building with Qt, and we shouldn't force them
1202 # to have Qt installed if they're not doing so.
1203 # "make dist" will fail if they do that, but
1204 # we don't know whether they'll be doing that,
1205 # so this is the best we can do.
1213 # Error out if a glib header other than a "top level" header
1214 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1216 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1218 # Error out on the usage of deprecated glib functions
1219 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1222 # Check whether GLib modules are supported, to determine whether we
1223 # can support plugins.
1225 AC_MSG_CHECKING(whether GLib supports loadable modules)
1226 ac_save_CFLAGS="$CFLAGS"
1227 ac_save_LIBS="$LIBS"
1228 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1229 LIBS="$GLIB_LIBS $LIBS"
1232 #include <gmodule.h>
1239 if (g_module_supported())
1240 return 0; /* success */
1242 return 1; /* failure */
1244 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1245 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1246 ac_cv_glib_supports_modules=yes])
1247 CFLAGS="$ac_save_CFLAGS"
1248 LIBS="$ac_save_LIBS"
1249 if test "$ac_cv_glib_supports_modules" = yes ; then
1258 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1259 # filename (hopefully, a full pathname, but no guarantees) for
1262 if test "$ac_cv_header_dlfcn_h" = "yes"
1264 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1265 ac_save_CFLAGS="$CFLAGS"
1266 ac_save_LIBS="$LIBS"
1267 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1268 LIBS="$GLIB_LIBS $LIBS"
1270 #define _GNU_SOURCE /* required on Linux, sigh */
1278 if (!dladdr((void *)main, &info))
1279 return 1; /* failure */
1280 return 0; /* assume success */
1282 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1283 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1284 ac_cv_dladdr_finds_executable_path=yes])
1285 CFLAGS="$ac_save_CFLAGS"
1286 LIBS="$ac_save_LIBS"
1287 if test x$ac_cv_dladdr_finds_executable_path = xyes
1289 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1291 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1295 # Check whether GLib's printf supports thousands grouping. (This might
1296 # be different from the system's printf since GLib can optionally use
1297 # its own printf implementation.)
1299 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1300 ac_save_CFLAGS="$CFLAGS"
1301 ac_save_LIBS="$LIBS"
1302 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1303 LIBS="$GLIB_LIBS $LIBS"
1314 setlocale(LC_ALL, "en_US.UTF-8");
1315 str = g_strdup_printf("%'u", 123456);
1316 return (strcmp (str, "123,456") != 0);
1318 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1319 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1320 ac_cv_glib_supports_printf_grouping=no])
1321 CFLAGS="$ac_save_CFLAGS"
1322 LIBS="$ac_save_LIBS"
1323 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1325 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1330 if test "x$have_gtk" = "xyes"
1333 # We have GTK+; do we want the OS X integration functions and,
1334 # if so, do we have them and, if so, which versions do we have,
1335 # the old Carbon-based ones or the new Cocoa-based ones?
1337 AC_MSG_CHECKING(whether to use OS X integration functions)
1339 AC_ARG_WITH(osx-integration,
1340 AC_HELP_STRING( [--with-osx-integration],
1341 [use OS X integration functions @<:@default=yes, if available@:>@]),
1343 if test $withval = no
1345 want_osx_integration=no
1347 want_osx_integration=yes
1350 want_osx_integration=yes
1352 if test "x$want_osx_integration" = "xno"; then
1356 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1360 AC_SUBST(wireshark_bin)
1361 AC_SUBST(wireshark_man)
1362 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1363 AM_CONDITIONAL(HAVE_WIRESHARK_CXX, test "$have_wireshark_cxx" = "yes")
1366 # Enable/disable tshark
1368 AC_ARG_ENABLE(tshark,
1369 AC_HELP_STRING( [--enable-tshark],
1370 [build TShark @<:@default=yes@:>@]),
1371 tshark=$enableval,enable_tshark=yes)
1373 if test "x$enable_tshark" = "xyes" ; then
1374 tshark_bin="tshark\$(EXEEXT)"
1375 tshark_man="tshark.1"
1376 wiresharkfilter_man="wireshark-filter.4"
1381 AC_SUBST(tshark_bin)
1382 AC_SUBST(tshark_man)
1383 AC_SUBST(wiresharkfilter_man)
1387 # Enable/disable editcap
1389 AC_ARG_ENABLE(editcap,
1390 AC_HELP_STRING( [--enable-editcap],
1391 [build editcap @<:@default=yes@:>@]),
1392 enable_editcap=$enableval,enable_editcap=yes)
1394 if test "x$enable_editcap" = "xyes" ; then
1395 editcap_bin="editcap\$(EXEEXT)"
1396 editcap_man="editcap.1"
1401 AC_SUBST(editcap_bin)
1402 AC_SUBST(editcap_man)
1404 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1407 # Enable/disable capinfos
1409 AC_ARG_ENABLE(capinfos,
1410 AC_HELP_STRING( [--enable-capinfos],
1411 [build capinfos @<:@default=yes@:>@]),
1412 enable_capinfos=$enableval,enable_capinfos=yes)
1414 if test "x$enable_capinfos" = "xyes" ; then
1415 capinfos_bin="capinfos\$(EXEEXT)"
1416 capinfos_man="capinfos.1"
1421 AC_SUBST(capinfos_bin)
1422 AC_SUBST(capinfos_man)
1425 # Enable/disable mergecap
1427 AC_ARG_ENABLE(mergecap,
1428 AC_HELP_STRING( [--enable-mergecap],
1429 [build mergecap @<:@default=yes@:>@]),
1430 enable_mergecap=$enableval,enable_mergecap=yes)
1432 if test "x$enable_mergecap" = "xyes" ; then
1433 mergecap_bin="mergecap\$(EXEEXT)"
1434 mergecap_man="mergecap.1"
1439 AC_SUBST(mergecap_bin)
1440 AC_SUBST(mergecap_man)
1443 # Enable/disable reordercap
1445 AC_ARG_ENABLE(reordercap,
1446 AC_HELP_STRING( [--enable-reordercap],
1447 [build reordercap @<:@default=yes@:>@]),
1448 enable_reordercap=$enableval,enable_reordercap=yes)
1450 if test "x$enable_reordercap" = "xyes" ; then
1451 reordercap_bin="reordercap\$(EXEEXT)"
1452 reordercap_man="reordercap.1"
1457 AC_SUBST(reordercap_bin)
1458 AC_SUBST(reordercap_man)
1461 # Enable/disable text2pcap
1463 AC_ARG_ENABLE(text2pcap,
1464 AC_HELP_STRING( [--enable-text2pcap],
1465 [build text2pcap @<:@default=yes@:>@]),
1466 text2pcap=$enableval,enable_text2pcap=yes)
1468 if test "x$enable_text2pcap" = "xyes" ; then
1469 text2pcap_bin="text2pcap\$(EXEEXT)"
1470 text2pcap_man="text2pcap.1"
1475 AC_SUBST(text2pcap_bin)
1476 AC_SUBST(text2pcap_man)
1479 # Enable/disable dftest
1481 AC_ARG_ENABLE(dftest,
1482 AC_HELP_STRING( [--enable-dftest],
1483 [build dftest @<:@default=yes@:>@]),
1484 enable_dftest=$enableval,enable_dftest=yes)
1486 if test "x$enable_dftest" = "xyes" ; then
1487 dftest_bin="dftest\$(EXEEXT)"
1488 dftest_man="dftest.1"
1493 AC_SUBST(dftest_bin)
1494 AC_SUBST(dftest_man)
1497 # Enable/disable randpkt
1499 AC_ARG_ENABLE(randpkt,
1500 AC_HELP_STRING( [--enable-randpkt],
1501 [build randpkt @<:@default=yes@:>@]),
1502 enable_randpkt=$enableval,enable_randpkt=yes)
1504 if test "x$enable_randpkt" = "xyes" ; then
1505 randpkt_bin="randpkt\$(EXEEXT)"
1506 randpkt_man="randpkt.1"
1511 AC_SUBST(randpkt_bin)
1512 AC_SUBST(randpkt_man)
1516 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1517 dnl "gethostbyname()".
1518 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1520 dnl Checks for "connect()", used as a proxy for "socket()" - and
1521 dnl "-lsocket", if we need it to get "connect()".
1522 AC_WIRESHARK_SOCKET_LIB_CHECK
1525 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1528 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1529 [use libpcap for packet capturing @<:@default=yes@:>@]),
1531 if test $withval = no
1534 elif test $withval = yes
1545 if test "x$want_pcap" = "xno" ; then
1549 AC_WIRESHARK_PCAP_CHECK
1553 dnl Check for airpcap
1554 AC_MSG_CHECKING(whether to include airpcap support)
1555 AC_ARG_ENABLE(airpcap,
1556 AC_HELP_STRING( [--enable-airpcap],
1557 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1558 enable_airpcap=$enableval, enable_airpcap=yes)
1560 if test x$enable_airpcap = xyes; then
1561 if test "x$want_pcap" = "xno" ; then
1563 AC_MSG_RESULT(pcap not available - disabling airpcap)
1566 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1574 AC_MSG_CHECKING(whether to build dumpcap)
1576 AC_ARG_ENABLE(dumpcap,
1577 AC_HELP_STRING( [--enable-dumpcap],
1578 [build dumpcap @<:@default=yes@:>@]),
1579 enable_dumpcap=$enableval,enable_dumpcap=yes)
1581 if test "x$enable_dumpcap" = "xyes" ; then
1582 if test "x$want_pcap" = "xno" ; then
1584 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1592 if test "x$enable_dumpcap" = "xyes" ; then
1593 dumpcap_bin="dumpcap\$(EXEEXT)"
1594 dumpcap_man="dumpcap.1"
1599 AC_SUBST(dumpcap_bin)
1600 AC_SUBST(dumpcap_man)
1602 # Enable/disable rawshark
1605 AC_MSG_CHECKING(whether to build rawshark)
1607 AC_ARG_ENABLE(rawshark,
1608 AC_HELP_STRING( [--enable-rawshark],
1609 [build rawshark @<:@default=yes@:>@]),
1610 rawshark=$enableval,enable_rawshark=yes)
1612 if test "x$enable_rawshark" = "xyes" ; then
1613 if test "x$want_pcap" = "xno" ; then
1615 AC_MSG_RESULT(pcap not available - disabling rawshark)
1623 if test "x$enable_rawshark" = "xyes" ; then
1624 rawshark_bin="rawshark\$(EXEEXT)"
1625 rawshark_man="rawshark.1"
1630 AC_SUBST(rawshark_bin)
1631 AC_SUBST(rawshark_man)
1633 dnl Use pcap-ng by default
1634 AC_ARG_ENABLE(pcap-ng-default,
1635 AC_HELP_STRING( [--enable-pcap-ng-default],
1636 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1637 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1638 if test x$enable_pcap_ng_default = xyes; then
1639 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1642 dnl pcap remote check
1643 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1645 AC_ARG_WITH(pcap-remote,
1646 AC_HELP_STRING([--with-pcap-remote],
1647 [use libpcap remote capturing (requires libpcap)]),
1649 if test $withval = no
1653 want_pcap_remote=yes
1658 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1662 AC_WIRESHARK_PCAP_REMOTE_CHECK
1666 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1669 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1670 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1672 if test "x$withval" = "xno"
1675 elif test "x$withval" = "xyes"
1684 # Use zlib if it's present, otherwise don't.
1686 want_zlib=ifavailable
1689 if test "x$want_zlib" = "xno" ; then
1693 AC_WIRESHARK_ZLIB_CHECK
1694 if test "x$want_zlib" = "xno" ; then
1695 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1697 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1698 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1704 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1707 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1708 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1710 if test $withval = no
1713 elif test $withval = yes
1722 # Use liblua by default
1724 want_lua=ifavailable
1727 if test "x$want_lua" = "xno" ; then
1731 AC_WIRESHARK_LIBLUA_CHECK
1732 if test "x$want_lua" = "xno" ; then
1733 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1736 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1740 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1742 AC_ARG_WITH(portaudio,
1743 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1744 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1746 if test $withval = no
1749 elif test $withval = yes
1754 portaudio_dir=$withval
1758 # Use libportaudio by default
1760 want_portaudio=ifavailable
1763 if test "x$want_portaudio" = "xno" ; then
1767 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1768 if test "x$want_portaudio" = "xno" ; then
1769 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1772 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1777 AC_HELP_STRING( [--enable-ipv6],
1778 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1779 enable_ipv6=$enableval,enable_ipv6=yes)
1781 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1782 if test "x$enable_ipv6" = "xno" ; then
1786 AC_WIRESHARK_IPV6_STACK
1790 dnl Check if dumpcap should be installed with filesystem capabilities
1791 AC_PATH_PROG(SETCAP, setcap)
1792 AC_ARG_ENABLE(setcap-install,
1793 AC_HELP_STRING( [--enable-setcap-install],
1794 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1795 enable_setcap_install=$enableval,enable_setcap_install=no)
1797 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1798 if test "x$enable_setcap_install" = "xno" ; then
1801 if test "x$SETCAP" = "x" ; then
1802 AC_MSG_RESULT(no. Setcap not found)
1803 elif test "x$enable_dumpcap" = "xno" ; then
1804 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1810 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1812 dnl Check if dumpcap should be installed setuid
1813 AC_ARG_ENABLE(setuid-install,
1814 AC_HELP_STRING( [--enable-setuid-install],
1815 [install dumpcap as setuid @<:@default=no@:>@]),
1816 enable_setuid_install=$enableval,enable_setuid_install=no)
1818 AC_MSG_CHECKING(whether to install dumpcap setuid)
1819 if test "x$enable_setuid_install" = "xno" ; then
1822 if test "x$enable_setcap_install" = "xyes" ; then
1823 enable_setuid_install=no
1824 AC_MSG_RESULT(no; using setcap instead)
1825 elif test "x$enable_dumpcap" = "xno" ; then
1826 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1832 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1833 AC_CHECK_FUNCS(setresuid setresgid)
1835 dnl ...but our Network Operations group is named "no"!
1837 AC_ARG_WITH(dumpcap-group,
1838 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1839 [restrict dumpcap to GROUP]),
1841 if test "x$withval" = "xyes"; then
1842 AC_MSG_ERROR([No dumpcap group specified.])
1843 elif test "x$withval" != "xno"; then
1844 if test "x$enable_dumpcap" = "xno" ; then
1845 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1847 AC_MSG_RESULT($withval)
1848 DUMPCAP_GROUP="$withval"
1851 AC_SUBST(DUMPCAP_GROUP)
1852 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1854 dnl libcap (not libpcap) check
1856 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1859 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1860 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1862 if test "x$withval" = "xno"; then
1864 elif test "x$withval" = "xyes"; then
1866 elif test -d "$withval"; then
1868 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1871 if test "x$with_libcap" = "xno" ; then
1875 AC_WIRESHARK_LIBCAP_CHECK
1877 AC_SUBST(LIBCAP_LIBS)
1879 dnl Checks for header files.
1880 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1881 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)
1882 AC_CHECK_HEADERS(netinet/in.h)
1883 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1887 AC_MSG_CHECKING(whether to use SSL library)
1890 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1891 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1893 if test "x$withval" = "xno"; then
1895 elif test "x$withval" = "xyes"; then
1897 elif test -d "$withval"; then
1899 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1904 if test "x$want_ssl" = "xyes"; then
1906 AC_CHECK_LIB(crypto,EVP_md5,
1911 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1919 AC_MSG_CHECKING(whether to use Kerberos library)
1922 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1923 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1925 if test $withval = no
1928 elif test $withval = yes
1937 # Use Kerberos library if available, otherwise don't.
1939 want_krb5=ifavailable
1942 if test "x$want_krb5" = "xno" ; then
1946 AC_WIRESHARK_KRB5_CHECK
1952 AC_MSG_CHECKING(whether to use the c-ares library if available)
1955 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1956 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1958 if test "x$withval" = "xno"; then
1960 elif test "x$withval" = "xyes"; then
1962 elif test -d "$withval"; then
1964 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1967 if test "x$want_c_ares" = "xno" ; then
1971 AC_WIRESHARK_C_ARES_CHECK
1973 AC_SUBST(C_ARES_LIBS)
1977 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1980 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1981 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1983 if test "x$withval" = "xno"; then
1985 elif test "x$withval" = "xyes"; then
1987 elif test -d "$withval"; then
1989 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1992 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1996 AC_WIRESHARK_ADNS_CHECK
2002 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2005 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2006 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2008 if test "x$withval" = "xno"; then
2010 elif test "x$withval" = "xyes"; then
2012 elif test -d "$withval"; then
2014 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2017 if test "x$want_geoip" = "xno"; then
2021 AC_WIRESHARK_GEOIP_CHECK
2023 AC_SUBST(GEOIP_LIBS)
2025 dnl Python devel Check
2026 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
2029 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
2030 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
2032 pythondir='${libdir}/wireshark/python/${VERSION}'
2033 if test "x$withval" = "xno"
2036 elif test "x$withval" = "xyes"
2041 pythondir="$withval"
2044 # By default (user didn't explicitly enable Python), don't enable
2048 #pythondir='${libdir}/wireshark/python/${VERSION}'
2050 if test "x$want_python" = "xno" ; then
2054 AC_WIRESHARK_PYTHON_CHECK
2056 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2060 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2061 # never return (just like Charlie on the MTA).
2063 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2064 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2065 # follow the function name, so we need two different flavors of
2068 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2070 dnl Checks for typedefs, structures, and compiler characteristics.
2073 # Check how we can get the time zone abbreviation
2074 AC_WIRESHARK_TIMEZONE_ABBREV
2076 # We need to know whether "struct stat" has an "st_flags" member
2077 # for file_user_immutable().
2079 AC_WIRESHARK_STRUCT_ST_FLAGS
2081 # We need to know whether "struct sockaddr" has an "sa_len" member
2082 # for get_interface_list().
2084 AC_WIRESHARK_STRUCT_SA_LEN
2086 # We must know our byte order
2089 # Checks whether "-traditional" is needed when using "ioctl".
2090 # XXX - do we need this?
2091 AC_PROG_GCC_TRADITIONAL
2094 AC_CHECK_FUNC(getopt,
2096 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2098 GETOPT_LO="wsgetopt.lo"
2100 if test "$ac_cv_func_getopt" = no ; then
2101 GETOPT_LO="wsgetopt.lo"
2103 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2106 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2107 STRNCASECMP_LO="strncasecmp.lo")
2108 if test "$ac_cv_func_strncasecmp" = no ; then
2109 STRNCASECMP_LO="strncasecmp.lo"
2111 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2112 AC_SUBST(STRNCASECMP_LO)
2114 AC_CHECK_FUNCS(mkstemp mkdtemp)
2116 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2118 if test "$have_inet_aton" = no; then
2119 INET_ATON_LO="inet_aton.lo"
2120 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2124 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2125 AC_SUBST(INET_ATON_LO)
2127 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2128 dnl check for pre-BIND82 inet_pton() bug.
2129 AC_MSG_CHECKING(for broken inet_pton)
2130 AC_TRY_RUN([#include <sys/types.h>
2131 #include <sys/socket.h>
2132 #include <netinet/in.h>
2133 #include <arpa/inet.h>
2138 /* this should return 0 (error) */
2139 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2143 }], [AC_MSG_RESULT(ok);
2144 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2145 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2146 have_inet_pton=no])],
2148 if test "$have_inet_pton" = no; then
2149 INET_PTON_LO="inet_pton.lo"
2153 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2154 AC_SUBST(INET_PTON_LO)
2156 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2157 AC_MSG_CHECKING([for inet_ntop prototype])
2158 AC_TRY_COMPILE([#include <stdio.h>
2159 #include <sys/types.h>
2160 #include <sys/socket.h>
2161 #include <netinet/in.h>
2162 #include <arpa/inet.h>
2164 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2166 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2167 [Define if inet_ntop() prototype exists])], [
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 *, socklen_t);],, [
2176 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2177 [Define if inet_ntop() prototype exists])], [
2178 AC_MSG_RESULT(no)])])
2180 INET_NTOP_LO="inet_ntop.lo"
2181 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2182 [Define if inet/v6defs.h needs to be included])])
2183 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2184 AC_SUBST(INET_NTOP_LO)
2186 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2187 [STRPTIME_LO="strptime.lo"
2188 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2190 if test "$ac_cv_func_strptime" = no ; then
2191 STRPTIME_LO="strptime.lo"
2193 AC_SUBST(STRPTIME_C)
2194 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2195 AC_SUBST(STRPTIME_LO)
2197 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2198 AC_CHECK_FUNCS(issetugid)
2199 AC_CHECK_FUNCS(mmap mprotect sysconf)
2200 AC_CHECK_FUNCS(strtoll)
2202 dnl blank for now, but will be used in future
2203 AC_SUBST(wireshark_SUBDIRS)
2206 dnl check whether plugins should be enabled and, if they should be,
2207 dnl check for plugins directory - stolen from Amanda's configure.ac
2209 dnl we don't wish to expand ${libdir} yet
2210 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2211 AC_ARG_WITH(plugins,
2212 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2213 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2215 if test "x$withval" = "xno"; then
2217 elif test "x$have_plugins" = "xno"; then
2218 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2219 elif test "x$withval" != "xyes"; then
2220 plugindir="$withval"
2223 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2224 if test x$have_plugins = xyes
2226 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2229 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2232 # The plugin dissectors reside in ./plugins/PROTO/
2235 AC_SUBST(PLUGIN_LIBS)
2238 # Check if (emem) memory allocations must be 8-byte aligned.
2239 # I haven't been able to write C code that reliably makes that determination
2240 # (different versions of GCC with or without optimization give different
2241 # results) so just assume everything except (32-bit) x86 needs 8-byte
2242 # alignment (64-bit platforms either require 8-byte alignment for pointers
2243 # and 64-bit integral data types or may get better performance from that;
2244 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2245 # platforms would only require it, or get better performance from it,
2246 # for 64-bit floating-point values.).
2248 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2250 i386|i486|i586|i686)
2255 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2261 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2262 # (autoconf? automake? libtool?) - with the newer version(s), it's
2263 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2265 # With older version(s) of those tool(s), however, it's not just an
2266 # alias, and the configure scripts don't work without it.
2269 AC_SUBST(LIBTOOL_DEPS)
2271 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2272 if test x$enable_static = xyes -a x$have_plugins = xyes
2274 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2276 AC_SUBST(ENABLE_STATIC)
2278 dnl Save the cacheable configure results to config.cache before recursing
2281 sinclude(plugins/Custom.m4) dnl
2282 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2284 sinclude(asn1/Custom.m4) dnl
2285 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2287 AC_CONFIG_HEADERS(config.h)
2292 _CUSTOM_ASN1_AC_OUTPUT_
2293 asn1/acp133/Makefile
2295 asn1/ansi_map/Makefile
2296 asn1/ansi_tcap/Makefile
2300 asn1/charging_ase/Makefile
2305 asn1/credssp/Makefile
2314 asn1/gprscdr/Makefile
2315 asn1/gsm_map/Makefile
2324 asn1/h450-ros/Makefile
2327 asn1/HI2Operations/Makefile
2331 asn1/isdn-sup/Makefile
2332 asn1/kerberos/Makefile
2335 asn1/logotypecertextn/Makefile
2339 asn1/lte-rrc/Makefile
2342 asn1/mpeg-audio/Makefile
2343 asn1/mpeg-pes/Makefile
2345 asn1/ns_cert_exts/Makefile
2353 asn1/pkcs12/Makefile
2354 asn1/pkinit/Makefile
2355 asn1/pkixac/Makefile
2356 asn1/pkix1explicit/Makefile
2357 asn1/pkix1implicit/Makefile
2358 asn1/pkixproxy/Makefile
2359 asn1/pkixqualified/Makefile
2360 asn1/pkixtsp/Makefile
2363 asn1/q932-ros/Makefile
2374 asn1/sbc-ap/Makefile
2377 asn1/spnego/Makefile
2385 asn1/wlancertextn/Makefile
2387 asn1/x509af/Makefile
2388 asn1/x509ce/Makefile
2389 asn1/x509if/Makefile
2390 asn1/x509sat/Makefile
2397 epan/dfilter/Makefile
2398 epan/dissectors/Makefile
2399 epan/dissectors/dcerpc/Makefile
2400 epan/dissectors/pidl/Makefile
2401 epan/ftypes/Makefile
2404 epan/wspython/Makefile
2415 packaging/macosx/Info.plist
2416 packaging/macosx/Makefile
2417 packaging/macosx/osx-dmg.sh
2418 packaging/nsis/Makefile
2419 packaging/rpm/Makefile
2420 packaging/rpm/SPECS/Makefile
2421 packaging/rpm/SPECS/wireshark.spec
2422 packaging/svr4/Makefile
2423 packaging/svr4/checkinstall
2424 packaging/svr4/pkginfo
2426 plugins/asn1/Makefile
2427 plugins/docsis/Makefile
2428 plugins/ethercat/Makefile
2429 plugins/gryphon/Makefile
2430 plugins/irda/Makefile
2431 plugins/m2m/Makefile
2432 plugins/mate/Makefile
2433 plugins/opcua/Makefile
2434 plugins/profinet/Makefile
2435 plugins/stats_tree/Makefile
2436 plugins/unistim/Makefile
2437 plugins/wimax/Makefile
2438 plugins/wimaxasncp/Makefile
2439 plugins/wimaxmacphy/Makefile
2441 tools/lemon/Makefile
2446 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2451 if test "x$have_qt" = "xyes"; then
2452 gui_lib_message=" (with Qt)"
2454 if test "x$have_gtk" = "xyes"; then
2455 if test "x$with_gtk3" = "xyes"; then
2456 gui_lib_message=" (with GTK+ 3"
2458 gui_lib_message=" (with GTK+ 2"
2460 if test "x$have_ige_mac" = "xyes"; then
2461 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2463 gui_lib_message="$gui_lib_message)"
2468 if test "x$enable_setcap_install" = "xyes" ; then
2469 setcap_message="yes"
2474 if test "x$enable_setuid_install" = "xyes" ; then
2475 setuid_message="yes"
2480 if test "x$DUMPCAP_GROUP" = "x" ; then
2481 dumpcap_group_message="(none)"
2483 dumpcap_group_message="$DUMPCAP_GROUP"
2486 if test "x$want_zlib" = "xno" ; then
2492 if test "x$want_lua" = "xyes" ; then
2498 if test "x$want_python" = "xno"; then
2501 python_message="yes"
2504 if test "x$want_portaudio" = "xyes" ; then
2505 portaudio_message="yes"
2507 portaudio_message="no"
2510 if test "x$want_ssl" = "xno" ; then
2516 if test "x$want_krb5" = "xno" ; then
2519 krb5_message="yes ($ac_krb5_version)"
2522 if test "x$have_good_c_ares" = "xyes" ; then
2523 c_ares_message="yes"
2528 if test "x$have_good_adns" = "xyes" ; then
2531 if test "x$have_good_c_ares" = "xyes" ; then
2532 adns_message="no (using c-ares instead)"
2538 if test "x$have_good_libcap" = "xyes" ; then
2539 libcap_message="yes"
2544 if test "x$have_good_geoip" = "xyes" ; then
2551 echo "The Wireshark package has been configured with the following options."
2552 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2553 echo " Build tshark : $enable_tshark"
2554 echo " Build capinfos : $enable_capinfos"
2555 echo " Build editcap : $enable_editcap"
2556 echo " Build dumpcap : $enable_dumpcap"
2557 echo " Build mergecap : $enable_mergecap"
2558 echo " Build reordercap : $enable_reordercap"
2559 echo " Build text2pcap : $enable_text2pcap"
2560 echo " Build randpkt : $enable_randpkt"
2561 echo " Build dftest : $enable_dftest"
2562 echo " Build rawshark : $enable_rawshark"
2564 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2565 echo " Install dumpcap with capabilities : $setcap_message"
2566 echo " Install dumpcap setuid : $setuid_message"
2567 echo " Use dumpcap group : $dumpcap_group_message"
2568 echo " Use plugins : $have_plugins"
2569 echo " Use Lua library : $lua_message"
2570 echo " Use Python binding : $python_message"
2571 echo " Build rtp_player : $portaudio_message"
2572 echo " Build profile binaries : $enable_profile_build"
2573 echo " Use pcap library : $want_pcap"
2574 echo " Use zlib library : $zlib_message"
2575 echo " Use kerberos library : $krb5_message"
2576 echo " Use c-ares library : $c_ares_message"
2577 echo " Use GNU ADNS library : $adns_message"
2578 echo " Use SMI MIB library : $libsmi_message"
2579 echo " Use GNU crypto library : $gcrypt_message"
2580 echo " Use SSL crypto library : $ssl_message"
2581 echo " Use IPv6 name resolution : $enable_ipv6"
2582 echo " Use gnutls library : $tls_message"
2583 echo " Use POSIX capabilities library : $libcap_message"
2584 echo " Use GeoIP library : $geoip_message"
2585 echo " Use nl library : $libnl_message"