4 m4_define([version_major], [1])
5 m4_define([version_minor], [9])
6 m4_define([version_micro], [3])
7 m4_define([version_micro_extra], version_micro)
8 m4_append([version_micro_extra], [])
10 AC_INIT(wireshark, [version_major.version_minor.version_micro_extra], http://bugs.wireshark.org/, , http://www.wireshark.org/)
12 # Minimum autoconf version we require.
14 # Variable expansion doesn't work in AC_PREREQ()
16 AC_SUBST(AC_MIN_VERSION)
18 dnl Check for CPU / vendor / OS
19 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
20 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
21 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
24 dnl As nothing in the Wireshark is itself a build tool (we are not,
25 dnl for example, a compiler that generates machine code), we probably
26 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
27 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
28 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
29 dnl lemon, that need to be built for the build machine, not for the
30 dnl host machine, so we might need both.
32 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
34 dnl AC_CANONICAL_BUILD
38 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
40 # Make Wireshark's version available in config.h
41 AC_DEFINE(VERSION_MAJOR, version_major, [Wireshark's major version])
42 AC_DEFINE(VERSION_MINOR, version_minor, [Wireshark's minor version])
43 AC_DEFINE(VERSION_MICRO, version_micro, [Wireshark's micro version])
47 dnl Checks for programs.
52 dnl Work around libtool bug (fixed in the version 1.5a?)
53 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
56 AC_PATH_PROG(PERL, perl)
58 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
59 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
60 # as the tarball should contain the results of running YACC/Bison on .y
61 # files and running Flex on .l files, but a user building from SVN
62 # will have to run YACC/Bison and Flex to process those files.
64 # On the other hand, what about users who use a distribution tarball to
65 # do development? They *shouldn't* - that's what the SVN repository is
66 # for - but they might. They'd get errors if they modify a .y or .l
67 # file and try to do a build - but the error should tell them that they
68 # need to get YACC/Bison and/or Flex.
70 # Then again, getting them shouldn't be too big of a burden.
72 # XXX - is the same true of pod2man and pod2html, or are they needed
73 # even when building from a distribution tarball?
77 AC_PATH_PROG(YACCDUMMY, $YACC)
78 if test "x$YACCDUMMY" = x
80 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
83 AC_PATH_PROG(LEX, flex)
86 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
88 AC_PATH_PROG(POD2MAN, pod2man)
89 if test "x$POD2MAN" = x
92 # The alternative is not to build the man pages....
94 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
96 AC_PATH_PROG(POD2HTML, pod2html)
97 if test "x$POD2HTML" = x
100 # The alternative is not to build the HTML man pages....
102 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
106 # XXX - this looks for various HTML viewers on the host, not the target;
107 # we really want to know what's available on the target, for cross-builds.
108 # That would probably require us to, at run time, look for xdg-open and,
109 # if we don't find it, look for mozilla, htmlview, etc.
111 AC_PATH_PROG(HTML_VIEWER, xdg-open)
112 if test "x$HTML_VIEWER" != x
115 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
116 # Define some variable to be that, so we just run that?
118 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
121 # XXX - we have to define HTML_VIEWER for the prefs.c code that
122 # sets the default value of the Web browser preference, even
123 # though that preference won't be offered.
125 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
127 AC_PATH_PROG(HTML_VIEWER, htmlview)
128 if test "x$HTML_VIEWER" = x
130 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
132 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
143 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
144 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
145 # we assume GCC and clang do; other compilers should be added here.
147 # This is done to avoid getting tripped up by compilers that support
148 # those flags but give them a different meaning.
150 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
151 ac_supports_gcc_flags=yes
155 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
156 # support "-Wl,{options}" to pass options through to the linker.
157 # Currently, we assume GCC, xlc, and clang do; other compilers should
160 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
161 ac_supports_W_linker_passthrough=yes
165 # Set "ac_supports_attribute_unused" if the compiler is known to
166 # support "__attribute__(unused)".
167 # Currently, we assume GCC and clang do; other compilers should
170 # XXX - do this with a compiler test?
172 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
173 ac_supports_W_linker_passthrough=yes
176 if test "x$CC_FOR_BUILD" = x
180 AC_SUBST(CC_FOR_BUILD)
181 AC_SUBST(CFLAGS_FOR_BUILD)
184 AC_PATH_PROG(DOXYGEN, doxygen)
185 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
186 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
189 # Try to arrange for large file support.
194 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+, then switched back to
195 # LGPLv2.1+ in versions 3.0.29 and 3.1.10
197 AC_ARG_WITH([gnutls],
198 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
199 [use GnuTLS library @<:@default=yes@:>@]),
200 with_gnutls="$withval", with_gnutls="yes")
201 if test "x$with_gnutls" = "xyes"; then
202 have_license_compatible_gnutls="no"
203 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.1.10 ],
204 [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.1.10 not found " ]
207 if test "x$have_license_compatible_gnutls" != "xyes"; then
208 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.0.29 gnutls < 3.1 ],
209 [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.0.29 not found " ]
213 if test "x$have_license_compatible_gnutls" != "xyes"; then
214 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
215 [ have_license_compatible_gnutls="yes" ] , [ echo "GnuTLS >= 1.2.0, < 3.0 not found " ]
219 if test "x$have_license_compatible_gnutls" = "xyes"; then
220 echo "GnuTLS found, enabling SSL decryption"
221 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
224 echo "GnuTLS with compatible license not found, disabling SSL decryption"
231 AC_ARG_WITH([gcrypt],
232 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
233 [use gcrypt library @<:@default=yes@:>@]),
234 with_gcrypt="$withval", with_gcrypt="yes")
235 if test "x$with_gcrypt" = "xyes"; then
236 AM_PATH_LIBGCRYPT(1.1.92,
238 echo "libgcrypt found, enabling ipsec decryption"
239 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
243 if test x$libgcrypt_config_prefix != x ; then
244 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
246 echo "libgcrypt not found, disabling ipsec decryption"
254 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
255 [use Qt instead of GTK+ @<:@default=no@:>@]),
256 with_qt="$withval", with_qt="no")
259 AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
260 [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
262 if test "x$withval" = "xno"
265 elif test "x$withval" = "xyes"
269 elif test "x$withval" = "x1"
273 elif test "x$withval" = "x2"
277 elif test "x$withval" = "x3"
282 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
286 # Use libnl if it's present, otherwise don't.
288 want_libnl=ifavailable
292 # Libnl is Linux-specific.
297 AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
299 if test x$want_libnl = "xno"; then
304 # Test for specific libnl versions only if no version
305 # was specified by the user or if the version in question
306 # was requested by the user.
308 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
309 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
311 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
312 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
314 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
315 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
317 if (test "${have_libnl3}" = "yes"); then
318 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
319 LIBS="$LIBS $LIBNL3_LIBS"
320 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
321 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
322 libnl_message="yes (v3)"
324 elif (test "${have_libnl2}" = "yes"); then
325 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
326 LIBS="$LIBS $LIBNL2_LIBS"
327 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
328 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
329 libnl_message="yes (v2)"
331 elif (test "${have_libnl1}" = "yes"); then
332 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
333 LIBS="$LIBS $LIBNL1_LIBS"
334 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
335 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
336 libnl_message="yes (v1)"
339 if test x$want_libnl = "xyes"; then
340 case "$libnl_version" in
343 AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
347 AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
354 AC_MSG_CHECKING([if nl80211.h is new enough])
355 AC_TRY_COMPILE([#include <linux/nl80211.h>],
356 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
357 x = NL80211_ATTR_SUPPORTED_IFTYPES;
358 x = NL80211_ATTR_SUPPORTED_COMMANDS;
359 x = NL80211_ATTR_WIPHY_FREQ;
360 x = NL80211_CHAN_NO_HT;],
361 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
364 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
365 AC_TRY_COMPILE([#include <linux/nl80211.h>],
366 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
367 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
372 if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
373 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
378 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
379 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
380 with_gtk3="$withval", with_gtk3="no")
383 # FIXME: currently the path argument to with-libsmi is being ignored
390 # Check for a2x (convert asciidoc to another format)
391 AC_PATH_PROG(A2X, a2x)
392 AC_CHECK_PROG(HAVE_A2X, a2x, "yes", "no")
393 AM_CONDITIONAL(HAVE_A2X, test x$HAVE_A2X = xyes)
395 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
397 # Want to control a tape drive? Use mt. Want to convert HTML to text?
398 # Uhhhhh... elinks? lynx? w3m? pandoc? html2text?
399 AC_PATH_PROG(ELINKS, elinks)
400 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
401 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
403 # Check for fop (translate .fo to e.g. pdf)
404 AC_PATH_PROG(FOP, fop)
405 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
406 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
408 # Check for lynx (html -> text)
409 AC_PATH_PROG(LYNX, lynx)
410 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
411 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
413 AC_PATH_PROG(PYTHON, python)
415 # Check for w3m (html -> text)
416 AC_PATH_PROG(W3M, w3m)
417 AC_CHECK_PROG(HAVE_W3M, w3m, "yes", "no")
418 AM_CONDITIONAL(HAVE_W3M, test x$HAVE_W3M = xyes)
421 AC_PATH_PROG(XMLLINT, xmllint)
422 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
423 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
426 AC_PATH_PROG(XSLTPROC, xsltproc)
427 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
428 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
431 # Check for packaging utilities
432 # For now, we check to see if the various packaging utilites are in our
433 # path. I'm too lazy to write code to go hunt for them. - Gerald
436 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
437 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
438 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
440 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
441 -a x$HAVE_PKGTRANS = xyes ; then
442 HAVE_SVR4_PACKAGING=yes
444 HAVE_SVR4_PACKAGING=no
446 AC_SUBST(HAVE_SVR4_PACKAGING)
449 AC_WIRESHARK_RPM_CHECK
453 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
456 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
457 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
458 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
460 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
461 -a x$HAVE_BLESS = xyes ; then
462 HAVE_OSX_PACKAGING=yes
464 HAVE_OSX_PACKAGING=no
466 AC_SUBST(HAVE_OSX_PACKAGING)
469 # Try to add some additional gcc checks to CFLAGS
471 AC_ARG_ENABLE(extra-gcc-checks,
472 AC_HELP_STRING( [--enable-extra-gcc-checks],
473 [do additional -W checks in GCC @<:@default=no@:>@]),
475 wireshark_extra_gcc_flags=$enableval
476 if test $enableval != no
478 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
480 # Various code blocks this one.
482 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
483 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
485 # Some memset() calls to clear out structures
486 # on the stack are getting flagged as "will never
487 # be executed" by this, at least by Apple's
488 # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on
489 # Apple Inc. build 5658) (LLVM build 2336.11.00), for
490 # some unknown reason.
492 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
494 # Due to various places where APIs we don't control
495 # require us to cast away constness, we can probably
496 # never enable these ones with -Werror.
498 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
499 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
501 # Some generated ASN.1 dissectors block this one;
502 # multiple function declarations for the same
503 # function are being generated.
505 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
507 # Some loops are safe, but it's hard to convince the
510 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
512 # All the registration functions block these for now.
514 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
515 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
518 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
519 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
520 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
521 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
522 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
523 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
524 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
525 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
526 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
527 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
528 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
529 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes, C)
530 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
531 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
532 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
533 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
534 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
535 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
536 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
537 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
538 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
539 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
540 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
541 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
546 # Make sure -Wshadow doesn't complain about variables in function and
547 # function pointer declarations shadowing other variables; if not, don't
548 # turn it on, as some versions of GCC (including the one in at least
549 # some Xcode versions that came with Mac OS X 10.5) complain about
552 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow, C,
554 extern int bar(int a);
560 int (*fptr)(int a) = bar;
565 [warns about variables in function declarations shadowing other variables])
567 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
568 # is given a constant string.
569 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
570 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op, C,
574 int foo(const char *, int);
578 foo(const char *sep, int c)
580 if (strchr (sep, c) != NULL)
589 return foo("<", 'a');
592 [generates warnings from strchr()])
595 ## AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable)
598 # Use the faster pre gcc 4.5 floating point precision if available;
599 # clang doesn't error out on -f options that it doesn't know about,
600 # it just warns and ignores them, so this check doesn't cause us
601 # to omit -fexcess-precision=fast, which produces a pile of
604 if test "x$CC" != "xclang" ; then
605 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
608 CFLAGS_before_fvhidden=$CFLAGS
609 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fvisibility=hidden)
610 if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
612 # TODO add other ways of hiding symbols
613 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
616 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
617 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
618 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
619 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
620 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
621 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
624 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
625 # so that we can build dumpcap PIE - it may run with elevated
626 # privileges, and using PIE means the OS can run it at random locations
627 # in the address space to make attacks more difficult.
629 CFLAGS_before_pie=$CFLAGS
630 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fPIE, C)
631 if test "x$CLFAGS" != "x$CFLAGS_before_pie"
634 CFLAGS=$CFLAGS_before_pie
636 LDFLAGS_before_pie=$LDFLAGS
637 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
638 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
645 LDFLAGS=$LDFLAGS_before_pie
650 AC_SUBST(PIE_LDFLAGS)
653 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
654 # so we can use _U_ to flag unused function parameters and not get warnings
655 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
656 # to flag an unused function parameters will compile with other compilers.
658 # XXX - similar hints for other compilers?
660 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
661 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
663 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
666 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
667 # (only if the GCC 'optimization level' > 0).
669 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
670 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
672 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
673 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
676 # If the compiler supports GCC-style flags, enable a barrier "stop on
678 # This barrier is set for a very large part of the code. However, it is
679 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
681 warnings_as_errors_default="yes"
682 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
683 AC_ARG_ENABLE(warnings-as-errors,
684 AC_HELP_STRING( [--enable-warnings-as-errors],
685 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]),
687 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
688 with_warnings_as_errors="yes"
691 with_warnings_as_errors="no"
696 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
697 with_warnings_as_errors="yes"
700 with_warnings_as_errors="no"
705 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
708 # Add any platform-specific compiler flags needed.
710 AC_MSG_CHECKING(for platform-specific compiler flags)
711 if test "x$GCC" = "xyes" ; then
713 # GCC - do any platform-specific tweaking necessary.
717 # the X11 headers don't automatically include prototype info
718 # and a lot don't include the return type
719 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
720 CFLAGS="$CFLAGS -Wno-return-type"
721 CXXFLAGS="$CXXFLAGS -Wno-return-type"
722 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
725 AC_MSG_RESULT(none needed)
730 # Not GCC - assume it's the vendor's compiler.
735 # HP's ANSI C compiler; flags suggested by Jost Martin.
736 # "-Ae" for ANSI C plus extensions such as "long long".
737 # "+O2", for optimization. XXX - works with "-g"?
739 # HP's ANSI C++ compiler doesn't support "-Ae", but
740 # does support "+O2", at least according to the
741 # documentation I can find online.
743 CFLAGS="-Ae +O2 $CFLAGS"
744 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
745 CXXFLAGS="+O2 $CFLAGS"
746 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
749 AC_MSG_RESULT(none needed)
755 # Add any platform-specific linker flags needed.
757 AC_MSG_CHECKING(for platform-specific linker flags)
761 # Add -Wl,-single_module to the LDFLAGS used with shared
762 # libraries, to fix some error that show up in some cases;
763 # some Apple documentation recommends it for most shared
766 LDFLAGS_SHAREDLIB="-Wl,-single_module"
768 # Add -Wl,-search_paths_first to make sure that if we search
769 # directories A and B, in that order, for a given library, a
770 # non-shared version in directory A, rather than a shared
771 # version in directory B, is chosen (so we can use
772 # --with-pcap=/usr/local to force all programs to be linked
773 # with a static version installed in /usr/local/lib rather than
774 # the system version in /usr/lib).
776 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
777 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
781 # Shared libraries in cygwin/Win32 must never contain
784 LDFLAGS="$LDFLAGS -no-undefined"
785 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
788 AC_MSG_RESULT(none needed)
791 AC_SUBST(LDFLAGS_SHAREDLIB)
793 # Enable silent builds by default
794 # Verbose builds can be enabled with "./configure
795 # --enable-silent-rules ..." or "make V=1 ..."
796 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
797 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
800 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
801 # "just Darwin" (as we don't currently support iOS, and as I don't
802 # think you can build and run "just Darwin" as an OS for PCs), we
803 # arrange to build some programs with Application Services so they
804 # can launch Web browsers and Finder windows, arrange to build some
805 # programs with System Configuration so they can get "friendly names"
806 # and other information about interfaces, and build any programs that
807 # use either of those frameworks or that report version information
808 # with Core Foundation as the frameworks in question use it and as we
809 # get version information from plists and thus need Core Foundation
810 # to process those plists.
815 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
816 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
817 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
818 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
821 # OK, so we have the OS X frameworks; do they include
822 # CFPropertyListCreateWithStream, or do we have
823 # to fall back on CFPropertyListCreateFromStream?
824 # (They only differ in the error return, which we
825 # don't care about. And, no, we shouldn't just
826 # use CFPropertyListCreateFromStream, because it's
827 # deprecated in newer releases.)
830 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
831 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
835 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
836 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
837 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
839 dnl Look in /usr/local for header files and libraries ?
840 dnl XXX FIXME don't include /usr/local if it is already in the system
841 dnl search path as this causes gcc 3.2 on Linux to complain about a change
842 dnl of the system search order for includes
843 AC_ARG_ENABLE(usr-local,
844 AC_HELP_STRING( [--enable-usr-local],
845 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
846 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
848 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
849 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
850 if test -d "/usr/local"; then
853 # Arrange that we search for header files in the source directory
854 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
855 # as various packages we use ("libpcap", "zlib", "adns")
856 # may have been installed under "/usr/local/include".
858 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
861 # Arrange that we search for libraries in "/usr/local/lib".
863 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
872 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
877 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
878 if test x$LD_LIBRARY_PATH != x ; then
879 LIBS="$LIBS -R$LD_LIBRARY_PATH"
880 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
882 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
888 # Check for versions of "sed" inadequate to handle, in libtool, a list
889 # of object files as large as the list in Wireshark.
891 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
892 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
893 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
894 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
895 # is the only "sed" that comes with Solaris that can handle Wireshark.
897 # Add any checks here that are necessary for other OSes.
899 AC_WIRESHARK_GNU_SED_CHECK
900 if test "$HAVE_GNU_SED" = no ; then
903 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
905 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
907 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
922 # Enable/disable wireshark
924 AC_ARG_ENABLE(wireshark,
925 AC_HELP_STRING( [--enable-wireshark],
926 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
927 enable_wireshark=$enableval,enable_wireshark=yes)
929 AC_ARG_ENABLE(packet-editor,
930 AC_HELP_STRING( [--enable-packet-editor],
931 [add support for packet editor in Wireshark @<:@default=no@:>@]),
932 enable_packet_editor=$enableval,enable_packet_editor=no)
933 if test x$enable_packet_editor = xyes; then
934 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
937 AC_ARG_ENABLE(profile-build,
938 AC_HELP_STRING( [--enable-profile-build],
939 [build profile-ready binaries @<:@default=no@:>@]),
940 enable_profile_build=$enableval,enable_profile_build=no)
941 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
942 AC_MSG_CHECKING(if profile builds must be generated)
943 if test "x$enable_profile_build" = "xyes" ; then
944 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
946 CFLAGS=" -pg $CFLAGS"
947 CXXFLAGS=" -pg $CXXFLAGS"
950 echo "Building profile binaries currently only supported for GCC and clang."
956 # Create DATAFILE_DIR #define for config.h
957 datafiledir=$datadir/wireshark
959 test "x$prefix" = xNONE && prefix=$ac_default_prefix
960 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
961 # Ugly hack, but I don't see how this problem can be solved
962 # properly that DATAFILE_DIR had a value starting with
963 # "${prefix}/" instead of e.g. "/usr/local/"
964 eval eval echo "$datafiledir"
966 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
968 # Create DOC_DIR #define for config.h
970 test "x$prefix" = xNONE && prefix=$ac_default_prefix
971 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
972 # Ugly hack, but I don't see how this problem can be solved
973 # properly that DOC_DIR had a value starting with
974 # "${prefix}/" instead of e.g. "/usr/local/"
975 eval eval echo "$docdir"
977 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
979 GTK2_MIN_VERSION=2.12.0
980 AC_SUBST(GTK2_MIN_VERSION)
981 GTK3_MIN_VERSION=3.0.0
982 AC_SUBST(GTK3_MIN_VERSION)
984 AC_SUBST(QT_MIN_VERSION)
985 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
986 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
988 # We only do those if we're going to be building Wireshark;
989 # otherwise, we don't have any GUI to build, so we don't use
992 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
993 # force all programs to be built with GTK+ or Qt.
995 # Release dates for GTK+ versions:
996 # 2.12.0: 14 Sep 2007
997 # 2.14.0: 04 Sep 2008
998 # 2.16.0: 13 Mar 2009
999 # 2.18.0: 23 Sep 2009
1000 # 2.20.0: 23 Mar 2010
1001 # 2.22.0: 23 Sep 2010
1002 # 2.24.0: 30 Jan 2011
1003 # 3.0.0: 10 Feb 2011
1004 # 3.2.0: 25 Sep 2011
1005 # 3.4.0: 26 Mar 2012
1006 # 3.6.0: 24 Sep 2012
1007 # 3.8.0: 25 Mar 2013
1009 if test "x$enable_wireshark" = "xyes"; then
1010 if test "x$with_qt" = "xyes"; then
1012 AC_MSG_CHECKING(whether we have a working C++ compiler)
1014 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
1015 [AC_MSG_RESULT(yes)],
1018 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1022 AM_PATH_QT($QT_MIN_VERSION,
1024 CFLAGS="$CFLAGS $Qt_CFLAGS"
1025 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1028 , [AC_MSG_ERROR([Qt is not available])])
1031 # XXX - greasy hack to make ui/gtk/recent.c
1034 CPPFLAGS="-DQT_GUI_LIB"
1037 # We don't know whether we have GTK+, but we
1038 # won't be using it, so it's as if we don't
1044 # Not Qt - either GTK+ 3.x or 2.x.
1046 if test "x$with_gtk3" = "xyes"; then
1047 AM_PATH_GTK_3_0(3.0.0,
1049 CFLAGS="$CFLAGS $GTK_CFLAGS"
1050 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1052 AC_DEFINE(HAVE_GTK, 1,
1053 [Define to 1 if compiling with GTK])
1057 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1059 CFLAGS="$CFLAGS $GTK_CFLAGS"
1060 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1062 AC_DEFINE(HAVE_GTK, 1,
1063 [Define to 1 if compiling with GTK])
1072 GLIB_MIN_VERSION=2.14.0
1073 AC_SUBST(GLIB_MIN_VERSION)
1074 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1075 # support, as we need that for dynamically loading plugins.
1076 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1077 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1078 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1079 # GLIB_CFLAGS to CFLAGS.
1080 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1081 # set when generating the Makefile, so we can make programs that require
1082 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1083 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1084 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1085 # programs to be built with GLib.
1087 # Release dates for GLib versions:
1088 # 2.14.0: 03 Aug 2007
1089 # 2.16.0: 10 Mar 2008
1090 # 2.18.0: 02 Sep 2008
1091 # 2.20.0: 13 Mar 2009
1092 # 2.22.0: 22 Sep 2009
1093 # 2.24.0: 28 Mar 2010
1094 # 2.26.0: 27 Sep 2010
1095 # 2.28.0: 08 Feb 2011
1096 # 2.30.0: 27 Sep 2011
1097 # 2.32.0: 24 Mar 2012
1098 # 2.34.0: 24 Sep 2012
1099 # 2.36.0: 25 Mar 2013
1101 have_wireshark_cxx="false"
1102 if test "$have_gtk" = "no" ; then
1104 # We don't have GTK+.
1106 if test "$have_qt" = "yes" ; then
1108 # However, we do have Qt, and thus will be building
1109 # Wireshark (if the user had explicitly disabled
1110 # Wireshark, we wouldn't have looked for Qt, so we
1111 # wouldn't think we had it, and thus wouldn't be here).
1113 wireshark_bin="wireshark\$(EXEEXT)"
1114 # Give automake a hint that it needs to use c++ linking.
1115 have_wireshark_cxx="yes"
1116 wireshark_man="wireshark.1"
1117 wireshark_SUBDIRS="codecs ui/qt"
1120 # We don't have Qt, either, which means we have no UI
1123 # If they didn't explicitly say "--disable-wireshark",
1124 # fail (so that, unless they explicitly indicated that
1125 # they don't want Wireshark, we stop so they know they
1126 # won't be getting Wireshark unless they fix the GTK+/Qt
1129 if test "x$enable_wireshark" = "xyes"; then
1130 if test "x$with_gtk3" = "xyes"; then
1131 AC_MSG_ERROR([GTK+ $GTK3_MIN_VERSION or later isn't available, so Wireshark can't be compiled])
1133 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1140 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1142 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1143 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1144 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1147 # We have GTK+, and thus will be building Wireshark (if the user
1148 # had explicitly disabled Wireshark, we wouldn't have looked for
1149 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
1151 wireshark_bin="wireshark\$(EXEEXT)"
1152 wireshark_man="wireshark.1"
1153 wireshark_SUBDIRS="codecs ui/gtk"
1154 # Don't use GLIB_CFLAGS
1155 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1157 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1158 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1159 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1160 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1161 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1162 # Enable GSEAL when building with GTK > 2.20
1163 # (Versions prior to 2.22 lacked some necessary accessors.)
1164 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1169 # "make dist" requires that we have the Qt build tools.
1171 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1172 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1173 # installed; if they're still doing that in current Fedora releases,
1174 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1176 AC_PATH_PROG(UIC, uic)
1179 AC_PATH_PROG(UIC, uic-qt4)
1182 if test "x$with_qt" = "xyes"; then
1184 # If you want to build with Qt, you'd better
1187 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1190 # We shouldn't fail here, as the user's not
1191 # building with Qt, and we shouldn't force them
1192 # to have Qt installed if they're not doing so.
1193 # "make dist" will fail if they do that, but
1194 # we don't know whether they'll be doing that,
1195 # so this is the best we can do.
1202 AC_PATH_PROG(MOC, moc)
1205 AC_PATH_PROG(MOC, moc-qt4)
1208 if test "x$with_qt" = "xyes"; then
1210 # If you want to build with Qt, you'd better
1213 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1216 # We shouldn't fail here, as the user's not
1217 # building with Qt, and we shouldn't force them
1218 # to have Qt installed if they're not doing so.
1219 # "make dist" will fail if they do that, but
1220 # we don't know whether they'll be doing that,
1221 # so this is the best we can do.
1229 # Error out if a glib header other than a "top level" header
1230 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1232 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1234 # Error out on the usage of deprecated glib functions
1235 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1238 # Check whether GLib modules are supported, to determine whether we
1239 # can support plugins.
1241 AC_MSG_CHECKING(whether GLib supports loadable modules)
1242 ac_save_CFLAGS="$CFLAGS"
1243 ac_save_LIBS="$LIBS"
1244 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1245 LIBS="$GLIB_LIBS $LIBS"
1248 #include <gmodule.h>
1255 if (g_module_supported())
1256 return 0; /* success */
1258 return 1; /* failure */
1260 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1261 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1262 ac_cv_glib_supports_modules=yes])
1263 CFLAGS="$ac_save_CFLAGS"
1264 LIBS="$ac_save_LIBS"
1265 if test "$ac_cv_glib_supports_modules" = yes ; then
1274 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1275 # filename (hopefully, a full pathname, but no guarantees) for
1278 if test "$ac_cv_header_dlfcn_h" = "yes"
1280 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1281 ac_save_CFLAGS="$CFLAGS"
1282 ac_save_LIBS="$LIBS"
1283 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1284 LIBS="$GLIB_LIBS $LIBS"
1286 #define _GNU_SOURCE /* required on Linux, sigh */
1294 if (!dladdr((void *)main, &info))
1295 return 1; /* failure */
1296 return 0; /* assume success */
1298 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1299 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1300 ac_cv_dladdr_finds_executable_path=yes])
1301 CFLAGS="$ac_save_CFLAGS"
1302 LIBS="$ac_save_LIBS"
1303 if test x$ac_cv_dladdr_finds_executable_path = xyes
1305 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1307 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1311 # Check whether GLib's printf supports thousands grouping. (This might
1312 # be different from the system's printf since GLib can optionally use
1313 # its own printf implementation.)
1315 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1316 ac_save_CFLAGS="$CFLAGS"
1317 ac_save_LIBS="$LIBS"
1318 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1319 LIBS="$GLIB_LIBS $LIBS"
1330 setlocale(LC_ALL, "en_US.UTF-8");
1331 str = g_strdup_printf("%'u", 123456);
1332 return (strcmp (str, "123,456") != 0);
1334 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1335 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1336 ac_cv_glib_supports_printf_grouping=no])
1337 CFLAGS="$ac_save_CFLAGS"
1338 LIBS="$ac_save_LIBS"
1339 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1341 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1346 if test "x$have_gtk" = "xyes"
1349 # We have GTK+; do we want the OS X integration functions and,
1350 # if so, do we have them and, if so, which versions do we have,
1351 # the old Carbon-based ones or the new Cocoa-based ones?
1353 AC_MSG_CHECKING(whether to use OS X integration functions)
1355 AC_ARG_WITH(osx-integration,
1356 AC_HELP_STRING( [--with-osx-integration],
1357 [use OS X integration functions @<:@default=yes, if available@:>@]),
1359 if test $withval = no
1361 want_osx_integration=no
1363 want_osx_integration=yes
1366 want_osx_integration=yes
1368 if test "x$want_osx_integration" = "xno"; then
1372 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1376 AC_SUBST(wireshark_bin)
1377 AC_SUBST(wireshark_man)
1378 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1379 AM_CONDITIONAL(HAVE_WIRESHARK_CXX, test "$have_wireshark_cxx" = "yes")
1382 # Enable/disable tshark
1384 AC_ARG_ENABLE(tshark,
1385 AC_HELP_STRING( [--enable-tshark],
1386 [build TShark @<:@default=yes@:>@]),
1387 tshark=$enableval,enable_tshark=yes)
1389 if test "x$enable_tshark" = "xyes" ; then
1390 tshark_bin="tshark\$(EXEEXT)"
1391 tshark_man="tshark.1"
1392 wiresharkfilter_man="wireshark-filter.4"
1397 AC_SUBST(tshark_bin)
1398 AC_SUBST(tshark_man)
1399 AC_SUBST(wiresharkfilter_man)
1403 # Enable/disable editcap
1405 AC_ARG_ENABLE(editcap,
1406 AC_HELP_STRING( [--enable-editcap],
1407 [build editcap @<:@default=yes@:>@]),
1408 enable_editcap=$enableval,enable_editcap=yes)
1410 if test "x$enable_editcap" = "xyes" ; then
1411 editcap_bin="editcap\$(EXEEXT)"
1412 editcap_man="editcap.1"
1417 AC_SUBST(editcap_bin)
1418 AC_SUBST(editcap_man)
1420 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1423 # Enable/disable capinfos
1425 AC_ARG_ENABLE(capinfos,
1426 AC_HELP_STRING( [--enable-capinfos],
1427 [build capinfos @<:@default=yes@:>@]),
1428 enable_capinfos=$enableval,enable_capinfos=yes)
1430 if test "x$enable_capinfos" = "xyes" ; then
1431 capinfos_bin="capinfos\$(EXEEXT)"
1432 capinfos_man="capinfos.1"
1437 AC_SUBST(capinfos_bin)
1438 AC_SUBST(capinfos_man)
1441 # Enable/disable mergecap
1443 AC_ARG_ENABLE(mergecap,
1444 AC_HELP_STRING( [--enable-mergecap],
1445 [build mergecap @<:@default=yes@:>@]),
1446 enable_mergecap=$enableval,enable_mergecap=yes)
1448 if test "x$enable_mergecap" = "xyes" ; then
1449 mergecap_bin="mergecap\$(EXEEXT)"
1450 mergecap_man="mergecap.1"
1455 AC_SUBST(mergecap_bin)
1456 AC_SUBST(mergecap_man)
1459 # Enable/disable reordercap
1461 AC_ARG_ENABLE(reordercap,
1462 AC_HELP_STRING( [--enable-reordercap],
1463 [build reordercap @<:@default=yes@:>@]),
1464 enable_reordercap=$enableval,enable_reordercap=yes)
1466 if test "x$enable_reordercap" = "xyes" ; then
1467 reordercap_bin="reordercap\$(EXEEXT)"
1468 reordercap_man="reordercap.1"
1473 AC_SUBST(reordercap_bin)
1474 AC_SUBST(reordercap_man)
1477 # Enable/disable text2pcap
1479 AC_ARG_ENABLE(text2pcap,
1480 AC_HELP_STRING( [--enable-text2pcap],
1481 [build text2pcap @<:@default=yes@:>@]),
1482 text2pcap=$enableval,enable_text2pcap=yes)
1484 if test "x$enable_text2pcap" = "xyes" ; then
1485 text2pcap_bin="text2pcap\$(EXEEXT)"
1486 text2pcap_man="text2pcap.1"
1491 AC_SUBST(text2pcap_bin)
1492 AC_SUBST(text2pcap_man)
1495 # Enable/disable dftest
1497 AC_ARG_ENABLE(dftest,
1498 AC_HELP_STRING( [--enable-dftest],
1499 [build dftest @<:@default=yes@:>@]),
1500 enable_dftest=$enableval,enable_dftest=yes)
1502 if test "x$enable_dftest" = "xyes" ; then
1503 dftest_bin="dftest\$(EXEEXT)"
1504 dftest_man="dftest.1"
1509 AC_SUBST(dftest_bin)
1510 AC_SUBST(dftest_man)
1513 # Enable/disable randpkt
1515 AC_ARG_ENABLE(randpkt,
1516 AC_HELP_STRING( [--enable-randpkt],
1517 [build randpkt @<:@default=yes@:>@]),
1518 enable_randpkt=$enableval,enable_randpkt=yes)
1520 if test "x$enable_randpkt" = "xyes" ; then
1521 randpkt_bin="randpkt\$(EXEEXT)"
1522 randpkt_man="randpkt.1"
1527 AC_SUBST(randpkt_bin)
1528 AC_SUBST(randpkt_man)
1532 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1533 dnl "gethostbyname()".
1534 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1536 dnl Checks for "connect()", used as a proxy for "socket()" - and
1537 dnl "-lsocket", if we need it to get "connect()".
1538 AC_WIRESHARK_SOCKET_LIB_CHECK
1541 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1544 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1545 [use libpcap for packet capturing @<:@default=yes@:>@]),
1547 if test $withval = no
1550 elif test $withval = yes
1561 if test "x$want_pcap" = "xno" ; then
1565 AC_WIRESHARK_PCAP_CHECK
1569 dnl Check for airpcap
1570 AC_MSG_CHECKING(whether to include airpcap support)
1571 AC_ARG_ENABLE(airpcap,
1572 AC_HELP_STRING( [--enable-airpcap],
1573 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1574 enable_airpcap=$enableval, enable_airpcap=yes)
1576 if test x$enable_airpcap = xyes; then
1577 if test "x$want_pcap" = "xno" ; then
1579 AC_MSG_RESULT(pcap not available - disabling airpcap)
1582 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1590 AC_MSG_CHECKING(whether to build dumpcap)
1592 AC_ARG_ENABLE(dumpcap,
1593 AC_HELP_STRING( [--enable-dumpcap],
1594 [build dumpcap @<:@default=yes@:>@]),
1595 enable_dumpcap=$enableval,enable_dumpcap=yes)
1597 if test "x$enable_dumpcap" = "xyes" ; then
1598 if test "x$want_pcap" = "xno" ; then
1600 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1608 if test "x$enable_dumpcap" = "xyes" ; then
1609 dumpcap_bin="dumpcap\$(EXEEXT)"
1610 dumpcap_man="dumpcap.1"
1615 AC_SUBST(dumpcap_bin)
1616 AC_SUBST(dumpcap_man)
1618 # Enable/disable rawshark
1621 AC_MSG_CHECKING(whether to build rawshark)
1623 AC_ARG_ENABLE(rawshark,
1624 AC_HELP_STRING( [--enable-rawshark],
1625 [build rawshark @<:@default=yes@:>@]),
1626 rawshark=$enableval,enable_rawshark=yes)
1628 if test "x$enable_rawshark" = "xyes" ; then
1629 if test "x$want_pcap" = "xno" ; then
1631 AC_MSG_RESULT(pcap not available - disabling rawshark)
1639 if test "x$enable_rawshark" = "xyes" ; then
1640 rawshark_bin="rawshark\$(EXEEXT)"
1641 rawshark_man="rawshark.1"
1646 AC_SUBST(rawshark_bin)
1647 AC_SUBST(rawshark_man)
1649 dnl Use pcap-ng by default
1650 AC_ARG_ENABLE(pcap-ng-default,
1651 AC_HELP_STRING( [--enable-pcap-ng-default],
1652 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1653 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1654 if test x$enable_pcap_ng_default = xyes; then
1655 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1658 dnl pcap remote check
1659 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1661 AC_ARG_WITH(pcap-remote,
1662 AC_HELP_STRING([--with-pcap-remote],
1663 [use libpcap remote capturing (requires libpcap)]),
1665 if test $withval = no
1669 want_pcap_remote=yes
1674 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1678 AC_WIRESHARK_PCAP_REMOTE_CHECK
1682 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1685 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1686 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1688 if test "x$withval" = "xno"
1691 elif test "x$withval" = "xyes"
1700 # Use zlib if it's present, otherwise don't.
1702 want_zlib=ifavailable
1705 if test "x$want_zlib" = "xno" ; then
1709 AC_WIRESHARK_ZLIB_CHECK
1710 if test "x$want_zlib" = "xno" ; then
1711 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1713 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1714 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1720 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1723 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1724 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1726 if test $withval = no
1729 elif test $withval = yes
1738 # Use liblua by default
1740 want_lua=ifavailable
1743 if test "x$want_lua" = "xno" ; then
1747 AC_WIRESHARK_LIBLUA_CHECK
1748 if test "x$want_lua" = "xno" ; then
1749 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1752 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1756 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1758 AC_ARG_WITH(portaudio,
1759 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1760 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1762 if test $withval = no
1765 elif test $withval = yes
1770 portaudio_dir=$withval
1774 # Use libportaudio by default
1776 want_portaudio=ifavailable
1779 if test "x$want_portaudio" = "xno" ; then
1783 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1784 if test "x$want_portaudio" = "xno" ; then
1785 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1788 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1793 AC_HELP_STRING( [--enable-ipv6],
1794 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1795 enable_ipv6=$enableval,enable_ipv6=yes)
1797 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1798 if test "x$enable_ipv6" = "xno" ; then
1802 AC_WIRESHARK_IPV6_STACK
1806 dnl Check if dumpcap should be installed with filesystem capabilities
1807 AC_PATH_PROG(SETCAP, setcap)
1808 AC_ARG_ENABLE(setcap-install,
1809 AC_HELP_STRING( [--enable-setcap-install],
1810 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1811 enable_setcap_install=$enableval,enable_setcap_install=no)
1813 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1814 if test "x$enable_setcap_install" = "xno" ; then
1817 if test "x$SETCAP" = "x" ; then
1818 AC_MSG_RESULT(no. Setcap not found)
1819 elif test "x$enable_dumpcap" = "xno" ; then
1820 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1826 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1828 dnl Check if dumpcap should be installed setuid
1829 AC_ARG_ENABLE(setuid-install,
1830 AC_HELP_STRING( [--enable-setuid-install],
1831 [install dumpcap as setuid @<:@default=no@:>@]),
1832 enable_setuid_install=$enableval,enable_setuid_install=no)
1834 AC_MSG_CHECKING(whether to install dumpcap setuid)
1835 if test "x$enable_setuid_install" = "xno" ; then
1838 if test "x$enable_setcap_install" = "xyes" ; then
1839 enable_setuid_install=no
1840 AC_MSG_RESULT(no; using setcap instead)
1841 elif test "x$enable_dumpcap" = "xno" ; then
1842 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1848 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1849 AC_CHECK_FUNCS(setresuid setresgid)
1851 dnl ...but our Network Operations group is named "no"!
1853 AC_ARG_WITH(dumpcap-group,
1854 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1855 [restrict dumpcap to GROUP]),
1857 if test "x$withval" = "xyes"; then
1858 AC_MSG_ERROR([No dumpcap group specified.])
1859 elif test "x$withval" != "xno"; then
1860 if test "x$enable_dumpcap" = "xno" ; then
1861 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1863 AC_MSG_RESULT($withval)
1864 DUMPCAP_GROUP="$withval"
1867 AC_SUBST(DUMPCAP_GROUP)
1868 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1870 dnl libcap (not libpcap) check
1872 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1875 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1876 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1878 if test "x$withval" = "xno"; then
1880 elif test "x$withval" = "xyes"; then
1882 elif test -d "$withval"; then
1884 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1887 if test "x$with_libcap" = "xno" ; then
1891 AC_WIRESHARK_LIBCAP_CHECK
1893 AC_SUBST(LIBCAP_LIBS)
1895 dnl Checks for header files.
1896 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1897 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)
1898 AC_CHECK_HEADERS(netinet/in.h)
1899 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1903 AC_MSG_CHECKING(whether to use SSL library)
1906 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1907 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1909 if test "x$withval" = "xno"; then
1911 elif test "x$withval" = "xyes"; then
1913 elif test -d "$withval"; then
1915 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1920 if test "x$want_ssl" = "xyes"; then
1922 AC_CHECK_LIB(crypto,EVP_md5,
1927 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1935 AC_MSG_CHECKING(whether to use Kerberos library)
1938 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1939 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1941 if test $withval = no
1944 elif test $withval = yes
1953 # Use Kerberos library if available, otherwise don't.
1955 want_krb5=ifavailable
1958 if test "x$want_krb5" = "xno" ; then
1962 AC_WIRESHARK_KRB5_CHECK
1968 AC_MSG_CHECKING(whether to use the c-ares library if available)
1971 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1972 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1974 if test "x$withval" = "xno"; then
1976 elif test "x$withval" = "xyes"; then
1978 elif test -d "$withval"; then
1980 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1983 if test "x$want_c_ares" = "xno" ; then
1987 AC_WIRESHARK_C_ARES_CHECK
1989 AC_SUBST(C_ARES_LIBS)
1993 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1996 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1997 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1999 if test "x$withval" = "xno"; then
2001 elif test "x$withval" = "xyes"; then
2003 elif test -d "$withval"; then
2005 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2008 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2012 AC_WIRESHARK_ADNS_CHECK
2018 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2021 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2022 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2024 if test "x$withval" = "xno"; then
2026 elif test "x$withval" = "xyes"; then
2028 elif test -d "$withval"; then
2030 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2033 if test "x$want_geoip" = "xno"; then
2037 AC_WIRESHARK_GEOIP_CHECK
2039 AC_SUBST(GEOIP_LIBS)
2041 dnl Python devel Check
2042 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
2045 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
2046 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
2048 pythondir='${libdir}/wireshark/python/${VERSION}'
2049 if test "x$withval" = "xno"
2052 elif test "x$withval" = "xyes"
2057 pythondir="$withval"
2060 # By default (user didn't explicitly enable Python), don't enable
2064 #pythondir='${libdir}/wireshark/python/${VERSION}'
2066 if test "x$want_python" = "xno" ; then
2070 AC_WIRESHARK_PYTHON_CHECK
2072 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2076 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2077 # never return (just like Charlie on the MTA).
2079 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2080 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2081 # follow the function name, so we need two different flavors of
2084 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2086 dnl Checks for typedefs, structures, and compiler characteristics.
2089 # Check how we can get the time zone abbreviation
2090 AC_WIRESHARK_TIMEZONE_ABBREV
2092 # We need to know whether "struct stat" has an "st_flags" member
2093 # for file_user_immutable().
2095 AC_WIRESHARK_STRUCT_ST_FLAGS
2097 # We need to know whether "struct sockaddr" has an "sa_len" member
2098 # for get_interface_list().
2100 AC_WIRESHARK_STRUCT_SA_LEN
2102 # We must know our byte order
2105 # Checks whether "-traditional" is needed when using "ioctl".
2106 # XXX - do we need this?
2107 AC_PROG_GCC_TRADITIONAL
2110 AC_CHECK_FUNC(getopt,
2112 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2114 GETOPT_LO="wsgetopt.lo"
2116 if test "$ac_cv_func_getopt" = no ; then
2117 GETOPT_LO="wsgetopt.lo"
2119 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2122 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2123 STRNCASECMP_LO="strncasecmp.lo")
2124 if test "$ac_cv_func_strncasecmp" = no ; then
2125 STRNCASECMP_LO="strncasecmp.lo"
2127 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2128 AC_SUBST(STRNCASECMP_LO)
2130 AC_CHECK_FUNCS(mkstemp mkdtemp)
2132 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2134 if test "$have_inet_aton" = no; then
2135 INET_ATON_LO="inet_aton.lo"
2136 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2140 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2141 AC_SUBST(INET_ATON_LO)
2143 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2144 dnl check for pre-BIND82 inet_pton() bug.
2145 AC_MSG_CHECKING(for broken inet_pton)
2146 AC_TRY_RUN([#include <sys/types.h>
2147 #include <sys/socket.h>
2148 #include <netinet/in.h>
2149 #include <arpa/inet.h>
2154 /* this should return 0 (error) */
2155 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2159 }], [AC_MSG_RESULT(ok);
2160 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2161 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2162 have_inet_pton=no])],
2164 if test "$have_inet_pton" = no; then
2165 INET_PTON_LO="inet_pton.lo"
2169 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2170 AC_SUBST(INET_PTON_LO)
2172 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2173 AC_MSG_CHECKING([for inet_ntop prototype])
2174 AC_TRY_COMPILE([#include <stdio.h>
2175 #include <sys/types.h>
2176 #include <sys/socket.h>
2177 #include <netinet/in.h>
2178 #include <arpa/inet.h>
2180 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2182 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2183 [Define if inet_ntop() prototype exists])], [
2184 AC_TRY_COMPILE([#include <stdio.h>
2185 #include <sys/types.h>
2186 #include <sys/socket.h>
2187 #include <netinet/in.h>
2188 #include <arpa/inet.h>
2190 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2192 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2193 [Define if inet_ntop() prototype exists])], [
2194 AC_MSG_RESULT(no)])])
2196 INET_NTOP_LO="inet_ntop.lo"
2197 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2198 [Define if inet/v6defs.h needs to be included])])
2199 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2200 AC_SUBST(INET_NTOP_LO)
2202 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2203 [STRPTIME_LO="strptime.lo"
2204 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2206 if test "$ac_cv_func_strptime" = no ; then
2207 STRPTIME_LO="strptime.lo"
2209 AC_SUBST(STRPTIME_C)
2210 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2211 AC_SUBST(STRPTIME_LO)
2213 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2214 AC_CHECK_FUNCS(issetugid)
2215 AC_CHECK_FUNCS(mmap mprotect sysconf)
2216 AC_CHECK_FUNCS(strtoll)
2218 dnl blank for now, but will be used in future
2219 AC_SUBST(wireshark_SUBDIRS)
2222 dnl check whether plugins should be enabled and, if they should be,
2223 dnl check for plugins directory - stolen from Amanda's configure.ac
2225 dnl we don't wish to expand ${libdir} yet
2226 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2227 AC_ARG_WITH(plugins,
2228 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2229 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2231 if test "x$withval" = "xno"; then
2233 elif test "x$have_plugins" = "xno"; then
2234 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2235 elif test "x$withval" != "xyes"; then
2236 plugindir="$withval"
2239 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2240 if test x$have_plugins = xyes
2242 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2245 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2248 # The plugin dissectors reside in ./plugins/PROTO/
2251 AC_SUBST(PLUGIN_LIBS)
2254 # Check if (emem) memory allocations must be 8-byte aligned.
2255 # I haven't been able to write C code that reliably makes that determination
2256 # (different versions of GCC with or without optimization give different
2257 # results) so just assume everything except (32-bit) x86 needs 8-byte
2258 # alignment (64-bit platforms either require 8-byte alignment for pointers
2259 # and 64-bit integral data types or may get better performance from that;
2260 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2261 # platforms would only require it, or get better performance from it,
2262 # for 64-bit floating-point values.).
2264 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2266 i386|i486|i586|i686)
2271 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2277 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2278 # (autoconf? automake? libtool?) - with the newer version(s), it's
2279 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2281 # With older version(s) of those tool(s), however, it's not just an
2282 # alias, and the configure scripts don't work without it.
2285 AC_SUBST(LIBTOOL_DEPS)
2287 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2288 if test x$enable_static = xyes -a x$have_plugins = xyes
2290 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2292 AC_SUBST(ENABLE_STATIC)
2294 dnl Save the cacheable configure results to config.cache before recursing
2297 sinclude(plugins/Custom.m4) dnl
2298 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2300 sinclude(asn1/Custom.m4) dnl
2301 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2303 AC_CONFIG_HEADERS(config.h)
2308 _CUSTOM_ASN1_AC_OUTPUT_
2309 asn1/acp133/Makefile
2311 asn1/ansi_map/Makefile
2312 asn1/ansi_tcap/Makefile
2316 asn1/charging_ase/Makefile
2321 asn1/credssp/Makefile
2330 asn1/gprscdr/Makefile
2331 asn1/gsm_map/Makefile
2340 asn1/h450-ros/Makefile
2343 asn1/HI2Operations/Makefile
2347 asn1/isdn-sup/Makefile
2348 asn1/kerberos/Makefile
2351 asn1/logotypecertextn/Makefile
2355 asn1/lte-rrc/Makefile
2358 asn1/mpeg-audio/Makefile
2359 asn1/mpeg-pes/Makefile
2361 asn1/ns_cert_exts/Makefile
2369 asn1/pkcs12/Makefile
2370 asn1/pkinit/Makefile
2371 asn1/pkixac/Makefile
2372 asn1/pkix1explicit/Makefile
2373 asn1/pkix1implicit/Makefile
2374 asn1/pkixproxy/Makefile
2375 asn1/pkixqualified/Makefile
2376 asn1/pkixtsp/Makefile
2379 asn1/q932-ros/Makefile
2390 asn1/sbc-ap/Makefile
2393 asn1/spnego/Makefile
2401 asn1/wlancertextn/Makefile
2403 asn1/x509af/Makefile
2404 asn1/x509ce/Makefile
2405 asn1/x509if/Makefile
2406 asn1/x509sat/Makefile
2413 epan/dfilter/Makefile
2414 epan/dissectors/Makefile
2415 epan/dissectors/dcerpc/Makefile
2416 epan/dissectors/pidl/Makefile
2417 epan/ftypes/Makefile
2420 epan/wspython/Makefile
2431 packaging/macosx/Info.plist
2432 packaging/macosx/Makefile
2433 packaging/macosx/osx-dmg.sh
2434 packaging/nsis/Makefile
2435 packaging/rpm/Makefile
2436 packaging/rpm/SPECS/Makefile
2437 packaging/rpm/SPECS/wireshark.spec
2438 packaging/svr4/Makefile
2439 packaging/svr4/checkinstall
2440 packaging/svr4/pkginfo
2442 plugins/asn1/Makefile
2443 plugins/docsis/Makefile
2444 plugins/ethercat/Makefile
2445 plugins/gryphon/Makefile
2446 plugins/irda/Makefile
2447 plugins/m2m/Makefile
2448 plugins/mate/Makefile
2449 plugins/opcua/Makefile
2450 plugins/profinet/Makefile
2451 plugins/stats_tree/Makefile
2452 plugins/unistim/Makefile
2453 plugins/wimax/Makefile
2454 plugins/wimaxasncp/Makefile
2455 plugins/wimaxmacphy/Makefile
2457 tools/lemon/Makefile
2462 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2467 if test "x$have_qt" = "xyes"; then
2468 gui_lib_message=" (with Qt)"
2470 if test "x$have_gtk" = "xyes"; then
2471 if test "x$with_gtk3" = "xyes"; then
2472 gui_lib_message=" (with GTK+ 3"
2474 gui_lib_message=" (with GTK+ 2"
2476 if test "x$have_ige_mac" = "xyes"; then
2477 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2479 gui_lib_message="$gui_lib_message)"
2484 if test "x$enable_setcap_install" = "xyes" ; then
2485 setcap_message="yes"
2490 if test "x$enable_setuid_install" = "xyes" ; then
2491 setuid_message="yes"
2496 if test "x$DUMPCAP_GROUP" = "x" ; then
2497 dumpcap_group_message="(none)"
2499 dumpcap_group_message="$DUMPCAP_GROUP"
2502 if test "x$want_zlib" = "xno" ; then
2508 if test "x$want_lua" = "xyes" ; then
2514 if test "x$want_python" = "xno"; then
2517 python_message="yes"
2520 if test "x$want_portaudio" = "xyes" ; then
2521 portaudio_message="yes"
2523 portaudio_message="no"
2526 if test "x$want_ssl" = "xno" ; then
2532 if test "x$want_krb5" = "xno" ; then
2535 krb5_message="yes ($ac_krb5_version)"
2538 if test "x$have_good_c_ares" = "xyes" ; then
2539 c_ares_message="yes"
2544 if test "x$have_good_adns" = "xyes" ; then
2547 if test "x$have_good_c_ares" = "xyes" ; then
2548 adns_message="no (using c-ares instead)"
2554 if test "x$have_good_libcap" = "xyes" ; then
2555 libcap_message="yes"
2560 if test "x$have_good_geoip" = "xyes" ; then
2567 echo "The Wireshark package has been configured with the following options."
2568 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2569 echo " Build tshark : $enable_tshark"
2570 echo " Build capinfos : $enable_capinfos"
2571 echo " Build editcap : $enable_editcap"
2572 echo " Build dumpcap : $enable_dumpcap"
2573 echo " Build mergecap : $enable_mergecap"
2574 echo " Build reordercap : $enable_reordercap"
2575 echo " Build text2pcap : $enable_text2pcap"
2576 echo " Build randpkt : $enable_randpkt"
2577 echo " Build dftest : $enable_dftest"
2578 echo " Build rawshark : $enable_rawshark"
2580 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2581 echo " Install dumpcap with capabilities : $setcap_message"
2582 echo " Install dumpcap setuid : $setuid_message"
2583 echo " Use dumpcap group : $dumpcap_group_message"
2584 echo " Use plugins : $have_plugins"
2585 echo " Use Lua library : $lua_message"
2586 echo " Use Python binding : $python_message"
2587 echo " Build rtp_player : $portaudio_message"
2588 echo " Build profile binaries : $enable_profile_build"
2589 echo " Use pcap library : $want_pcap"
2590 echo " Use zlib library : $zlib_message"
2591 echo " Use kerberos library : $krb5_message"
2592 echo " Use c-ares library : $c_ares_message"
2593 echo " Use GNU ADNS library : $adns_message"
2594 echo " Use SMI MIB library : $libsmi_message"
2595 echo " Use GNU crypto library : $gcrypt_message"
2596 echo " Use SSL crypto library : $ssl_message"
2597 echo " Use IPv6 name resolution : $enable_ipv6"
2598 echo " Use gnutls library : $tls_message"
2599 echo " Use POSIX capabilities library : $libcap_message"
2600 echo " Use GeoIP library : $geoip_message"
2601 echo " Use nl library : $libnl_message"