4 m4_define([version_major], [1])
5 m4_define([version_minor], [11])
6 m4_define([version_micro], [0])
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])
48 # Checks for programs used in the main build process.
54 dnl Work around libtool bug (fixed in the version 1.5a?)
55 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
58 if test ! -z "$CXX"; then
60 # OK, we found something AC_LANG_CXX thinks is a C++ compiler,
63 # Some UN*Xes have, by default, a case-insensitive file
64 # system, and AC_PROG_CXX looks for, among other things,
65 # "CC" as a C++ compiler, and, if you have a case-insensitive
66 # file system and a C compiler named "cc" (both true, by
67 # default, on OS X), AC_PROG_CXX may end up thinking it's
70 # So we check by feeding the purported C++ compiler a
71 # program using C++ features (iostream).
73 # We do this after AC_PROG_LIBTOOL; if we did so before, and
74 # cleared CXX if what we had isn't a C++ compiler, that'd
75 # get undone by AC_PROG_LIBTOOL for some reason.
77 AC_MSG_CHECKING(whether $CXX is a C++ compiler)
79 AC_LINK_IFELSE([AC_LANG_PROGRAM(
84 std::cout << "Hello World! ";
94 AC_PATH_PROG(PERL, perl)
97 AC_PATH_PROG(PYTHON, python)
98 if test ! -z "$PYTHON"; then
100 # OK, we found Python; is it Python 2.x?
101 # Note: we don't use named components for sys.version_info to get
102 # the major version number, as named components for version_info
103 # were apparently introduced in Python 2.7.
105 AC_MSG_CHECKING([whether $PYTHON is Python 2])
106 python_major_version=`$PYTHON -c 'import sys; print sys.version_info[[0]]'`
107 if test "$python_major_version" = 2; then
116 # Try looking for python2; if we find it, we assume it's
119 AC_PATH_PROG(PYTHON, python2)
124 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
125 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
126 # as the tarball should contain the results of running YACC/Bison on .y
127 # files and running Flex on .l files, but a user building from SVN
128 # will have to run YACC/Bison and Flex to process those files.
130 # On the other hand, what about users who use a distribution tarball to
131 # do development? They *shouldn't* - that's what the SVN repository is
132 # for - but they might. They'd get errors if they modify a .y or .l
133 # file and try to do a build - but the error should tell them that they
134 # need to get YACC/Bison and/or Flex.
136 # Then again, getting them shouldn't be too big of a burden.
138 # XXX - is the same true of pod2man and pod2html, or are they needed
139 # even when building from a distribution tarball?
143 AC_PATH_PROG(YACCDUMMY, $YACC)
144 if test "x$YACCDUMMY" = x
146 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
149 AC_PATH_PROG(LEX, flex)
152 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
154 AC_PATH_PROG(POD2MAN, pod2man)
155 if test "x$POD2MAN" = x
158 # The alternative is not to build the man pages....
160 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
162 AC_PATH_PROG(POD2HTML, pod2html)
163 if test "x$POD2HTML" = x
166 # The alternative is not to build the HTML man pages....
168 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
172 # Checks for programs used by Wireshark/TShark/etc.
176 # XXX - this looks for various HTML viewers on the host, not the target;
177 # we really want to know what's available on the target, for cross-builds.
178 # That would probably require us to, at run time, look for xdg-open and,
179 # if we don't find it, look for mozilla, htmlview, etc.
181 AC_PATH_PROG(HTML_VIEWER, xdg-open)
182 if test "x$HTML_VIEWER" != x
185 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
186 # Define some variable to be that, so we just run that?
188 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
191 # XXX - we have to define HTML_VIEWER for the prefs.c code that
192 # sets the default value of the Web browser preference, even
193 # though that preference won't be offered.
195 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
197 AC_PATH_PROG(HTML_VIEWER, htmlview)
198 if test "x$HTML_VIEWER" = x
200 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
202 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
207 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
208 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
209 # we assume GCC and clang do; other compilers should be added here.
211 # This is done to avoid getting tripped up by compilers that support
212 # those flags but give them a different meaning.
214 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
215 ac_supports_gcc_flags=yes
219 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
220 # support "-Wl,{options}" to pass options through to the linker.
221 # Currently, we assume GCC, xlc, and clang do; other compilers should
224 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
225 ac_supports_W_linker_passthrough=yes
229 # Set "ac_supports_attribute_unused" if the compiler is known to
230 # support "__attribute__(unused)".
231 # Currently, we assume GCC and clang do; other compilers should
234 # XXX - do this with a compiler test?
236 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
237 ac_supports_W_linker_passthrough=yes
240 if test "x$CC_FOR_BUILD" = x
244 AC_SUBST(CC_FOR_BUILD)
245 AC_SUBST(CFLAGS_FOR_BUILD)
248 AC_PATH_PROG(DOXYGEN, doxygen)
249 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
250 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
253 # Check for pkg-config and set PKG_CONFIG accordingly.
255 # This is referenced via AC_REQUIRE([PKG_PROG_PKG_CONFIG] in some macros
256 # like PKG_CHECK_MODULES. If the first call to such a macro is under an
257 # "if" statement, it's safer to call PKG_PROG_PKG_CONFIG directly, see
258 # the comments in acolocal.m4
263 # Try to arrange for large file support.
268 # GUI toolkit options
271 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
272 [use Qt @<:@default=no@:>@]),
273 with_qt="$withval", with_qt="no")
276 AC_HELP_STRING( [--with-gtk2=@<:@yes/no@:>@],
277 [use GTK+ 2.0 @<:@default=yes@:>@]),
278 with_gtk2="$withval", with_gtk2="yes")
281 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
282 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
283 with_gtk3="$withval", with_gtk3="no")
286 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+, then switched back to
287 # LGPLv2.1+ in version 3.1.10
289 AC_ARG_WITH([gnutls],
290 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
291 [use GnuTLS library @<:@default=yes@:>@]),
292 with_gnutls="$withval", with_gnutls="yes")
293 if test "x$with_gnutls" = "xyes"; then
294 have_license_compatible_gnutls="no"
295 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.1.10 ],
296 [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.1.10 not found " ]
299 if test "x$have_license_compatible_gnutls" != "xyes"; then
300 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
301 [ have_license_compatible_gnutls="yes" ] , [ echo "GnuTLS >= 1.2.0, < 3.0 not found " ]
305 if test "x$have_license_compatible_gnutls" = "xyes"; then
306 echo "GnuTLS found, enabling SSL decryption"
307 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
310 echo "GnuTLS with compatible license not found, disabling SSL decryption"
317 AC_ARG_WITH([gcrypt],
318 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
319 [use gcrypt library @<:@default=yes@:>@]),
320 with_gcrypt="$withval", with_gcrypt="yes")
321 if test "x$with_gcrypt" = "xyes"; then
322 AM_PATH_LIBGCRYPT(1.1.92,
324 echo "libgcrypt found, enabling ipsec decryption"
325 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
329 if test x$libgcrypt_config_prefix != x ; then
330 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
332 echo "libgcrypt not found, disabling ipsec decryption"
340 AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
341 [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
343 if test "x$withval" = "xno"
346 elif test "x$withval" = "xyes"
350 elif test "x$withval" = "x1"
354 elif test "x$withval" = "x2"
358 elif test "x$withval" = "x3"
363 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
367 # Use libnl if it's present, otherwise don't.
369 want_libnl=ifavailable
373 # Libnl is Linux-specific.
378 AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
380 if test x$want_libnl = "xno"; then
385 # Test for specific libnl versions only if no version
386 # was specified by the user or if the version in question
387 # was requested by the user.
389 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
390 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
392 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
393 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
395 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
396 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
398 if (test "${have_libnl3}" = "yes"); then
399 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
400 LIBS="$LIBS $LIBNL3_LIBS"
401 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
402 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
403 libnl_message="yes (v3)"
405 elif (test "${have_libnl2}" = "yes"); then
406 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
407 LIBS="$LIBS $LIBNL2_LIBS"
408 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
409 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
410 libnl_message="yes (v2)"
412 elif (test "${have_libnl1}" = "yes"); then
413 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
414 LIBS="$LIBS $LIBNL1_LIBS"
415 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
416 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
417 libnl_message="yes (v1)"
420 if test x$want_libnl = "xyes"; then
421 case "$libnl_version" in
424 AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
428 AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
435 AC_MSG_CHECKING([if nl80211.h is new enough])
436 AC_TRY_COMPILE([#include <linux/nl80211.h>],
437 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
438 x = NL80211_ATTR_SUPPORTED_IFTYPES;
439 x = NL80211_ATTR_SUPPORTED_COMMANDS;
440 x = NL80211_ATTR_WIPHY_FREQ;
441 x = NL80211_CHAN_NO_HT;],
442 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
445 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
446 AC_TRY_COMPILE([#include <linux/nl80211.h>],
447 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
448 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
453 if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
454 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
459 # FIXME: currently the path argument to with-libsmi is being ignored
463 # Check for programs used when building DocBook documentation.
466 # Check for a2x (convert asciidoc to another format)
467 AC_PATH_PROG(A2X, a2x)
468 AC_CHECK_PROG(HAVE_A2X, a2x, "yes", "no")
469 AM_CONDITIONAL(HAVE_A2X, test x$HAVE_A2X = xyes)
471 # Want to control a tape drive? Use mt. Want to convert HTML to text?
472 # Uhhhhh... elinks? lynx? w3m? pandoc? html2text?
473 AC_PATH_PROG(ELINKS, elinks)
474 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
475 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
477 # Check for fop (translate .fo to e.g. pdf)
478 AC_PATH_PROG(FOP, fop)
479 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
480 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
482 # Check for lynx (html -> text)
483 AC_PATH_PROG(LYNX, lynx)
484 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
485 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
487 # Check for w3m (html -> text)
488 AC_PATH_PROG(W3M, w3m)
489 AC_CHECK_PROG(HAVE_W3M, w3m, "yes", "no")
490 AM_CONDITIONAL(HAVE_W3M, test x$HAVE_W3M = xyes)
493 AC_PATH_PROG(XMLLINT, xmllint)
494 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
495 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
498 AC_PATH_PROG(XSLTPROC, xsltproc)
499 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
500 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
503 # Check for packaging utilities
504 # For now, we check to see if the various packaging utilites are in our
505 # path. I'm too lazy to write code to go hunt for them. - Gerald
509 # (Lets you install the desktop files.)
511 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
514 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
515 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
516 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
518 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
519 -a x$HAVE_PKGTRANS = xyes ; then
520 HAVE_SVR4_PACKAGING=yes
522 HAVE_SVR4_PACKAGING=no
524 AC_SUBST(HAVE_SVR4_PACKAGING)
527 AC_WIRESHARK_RPM_CHECK
531 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
534 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
535 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
536 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
538 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
539 -a x$HAVE_BLESS = xyes ; then
540 HAVE_OSX_PACKAGING=yes
542 HAVE_OSX_PACKAGING=no
544 AC_SUBST(HAVE_OSX_PACKAGING)
547 # Some compilers have to be told to fail on unknown warning errors;
548 # make sure we do that.
550 AC_WIRESHARK_CHECK_UNKNOWN_WARNING_OPTION_ERROR
553 # Try to add some additional gcc checks to CFLAGS
555 AC_ARG_ENABLE(extra-gcc-checks,
556 AC_HELP_STRING( [--enable-extra-gcc-checks],
557 [do additional -W checks in GCC @<:@default=no@:>@]),
559 wireshark_extra_gcc_flags=$enableval
560 if test $enableval != no
562 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-pedantic)
564 # Various code blocks this one.
566 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Woverflow)
567 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
569 # Some memset() calls to clear out structures
570 # on the stack are getting flagged as "will never
571 # be executed" by this, at least by Apple's
572 # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on
573 # Apple Inc. build 5658) (LLVM build 2336.11.00), for
574 # some unknown reason.
576 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunreachable-code)
578 # Due to various places where APIs we don't control
579 # require us to cast away constness, we can probably
580 # never enable these ones with -Werror.
582 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-qual)
583 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wbad-function-cast, C)
585 # Some generated ASN.1 dissectors block this one;
586 # multiple function declarations for the same
587 # function are being generated.
589 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wredundant-decls)
591 # Some loops are safe, but it's hard to convince the
594 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunsafe-loop-optimizations)
596 # All the registration functions block these for now.
598 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-prototypes)
599 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-declarations)
601 # A bunch of "that might not work on SPARC" code blocks
604 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-align)
607 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
608 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wextra) # -W is now known as -Wextra
609 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdeclaration-after-statement, C)
610 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wendif-labels)
611 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpointer-arith)
612 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-pointer-sign, C)
613 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Warray-bounds)
614 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wformat-security)
615 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wold-style-definition, C)
616 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshorten-64-to-32)
617 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wstrict-prototypes, C)
618 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wjump-misses-init, C)
619 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wvla)
620 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Waddress)
621 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Warray-bounds)
622 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wattributes)
623 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdiv-by-zero)
624 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wignored-qualifiers)
625 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpragmas)
626 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-overlength-strings)
627 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wwrite-strings)
628 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-long-long)
629 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wc++-compat, C)
634 # Make sure -Wshadow doesn't complain about variables in function and
635 # function pointer declarations shadowing other variables; if not, don't
636 # turn it on, as some versions of GCC (including the one in at least
637 # some Xcode versions that came with Mac OS X 10.5) complain about
640 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshadow, C,
642 extern int bar(int a);
648 int (*fptr)(int a) = bar;
653 [warns about variables in function declarations shadowing other variables])
655 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
656 # is given a constant string.
657 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
658 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wlogical-op, C,
662 int foo(const char *, int);
666 foo(const char *sep, int c)
668 if (strchr (sep, c) != NULL)
677 return foo("<", 'a');
680 [generates warnings from strchr()])
684 # On OS X, suppress warnings about deprecated declarations, because
685 # they apparently think everything on OS X is Shiny Happy Apple-
686 # Framework-Based Apps and are deprecating some perfectly OK
687 # multi-platform open-source libraries that we use in our multi-platform
688 # open-source application in favor of various frameworks that are
693 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-deprecated-declarations)
698 # Use the faster pre gcc 4.5 floating point precision if available.
700 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fexcess-precision=fast)
702 CFLAGS_before_fvhidden=$CFLAGS
703 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fvisibility=hidden)
704 if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
706 # TODO add other ways of hiding symbols
707 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
710 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
711 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
712 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
713 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
714 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
715 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
718 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
719 # so that we can build dumpcap PIE - it may run with elevated
720 # privileges, and using PIE means the OS can run it at random locations
721 # in the address space to make attacks more difficult.
723 CFLAGS_before_pie=$CFLAGS
724 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE, C)
725 if test "x$CLFAGS" != "x$CFLAGS_before_pie"
728 CFLAGS=$CFLAGS_before_pie
730 LDFLAGS_before_pie=$LDFLAGS
731 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
732 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
739 LDFLAGS=$LDFLAGS_before_pie
744 AC_SUBST(PIE_LDFLAGS)
747 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
748 # so we can use _U_ to flag unused function parameters and not get warnings
749 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
750 # to flag an unused function parameters will compile with other compilers.
752 # XXX - similar hints for other compilers?
754 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
755 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
757 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
760 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
761 # (only if the GCC 'optimization level' > 0).
763 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
764 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
766 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
767 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
770 # If the compiler supports GCC-style flags, enable a barrier "stop on
772 # This barrier is set for a very large part of the code. However, it is
773 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
775 warnings_as_errors_default="yes"
776 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
777 AC_ARG_ENABLE(warnings-as-errors,
778 AC_HELP_STRING( [--enable-warnings-as-errors],
779 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]),
781 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
782 with_warnings_as_errors="yes"
785 with_warnings_as_errors="no"
790 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
791 with_warnings_as_errors="yes"
794 with_warnings_as_errors="no"
799 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
802 # Add any platform-specific compiler flags needed.
804 AC_MSG_CHECKING(for platform-specific compiler flags)
805 if test "x$GCC" = "xyes" ; then
807 # GCC - do any platform-specific tweaking necessary.
811 # the X11 headers don't automatically include prototype info
812 # and a lot don't include the return type
813 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
814 CFLAGS="$CFLAGS -Wno-return-type"
815 CXXFLAGS="$CXXFLAGS -Wno-return-type"
816 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
819 AC_MSG_RESULT(none needed)
824 # Not GCC - assume it's the vendor's compiler.
829 # HP's ANSI C compiler; flags suggested by Jost Martin.
830 # "-Ae" for ANSI C plus extensions such as "long long".
831 # "+O2", for optimization. XXX - works with "-g"?
833 # HP's ANSI C++ compiler doesn't support "-Ae", but
834 # does support "+O2", at least according to the
835 # documentation I can find online.
837 CFLAGS="-Ae +O2 $CFLAGS"
838 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
839 CXXFLAGS="+O2 $CFLAGS"
840 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
843 AC_MSG_RESULT(none needed)
849 # Add any platform-specific linker flags needed.
851 AC_MSG_CHECKING(for platform-specific linker flags)
855 # Add -Wl,-single_module to the LDFLAGS used with shared
856 # libraries, to fix some error that show up in some cases;
857 # some Apple documentation recommends it for most shared
860 LDFLAGS_SHAREDLIB="-Wl,-single_module"
862 # Add -Wl,-search_paths_first to make sure that if we search
863 # directories A and B, in that order, for a given library, a
864 # non-shared version in directory A, rather than a shared
865 # version in directory B, is chosen (so we can use
866 # --with-pcap=/usr/local to force all programs to be linked
867 # with a static version installed in /usr/local/lib rather than
868 # the system version in /usr/lib).
870 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
871 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
875 # Shared libraries in cygwin/Win32 must never contain
878 LDFLAGS="$LDFLAGS -no-undefined"
879 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
882 AC_MSG_RESULT(none needed)
885 AC_SUBST(LDFLAGS_SHAREDLIB)
887 # Enable silent builds by default
888 # Verbose builds can be enabled with "./configure
889 # --enable-silent-rules ..." or "make V=1 ..."
890 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
891 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
894 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
895 # "just Darwin" (as we don't currently support iOS, and as I don't
896 # think you can build and run "just Darwin" as an OS for PCs), we
897 # arrange to build some programs with Application Services so they
898 # can launch Web browsers and Finder windows, arrange to build some
899 # programs with System Configuration so they can get "friendly names"
900 # and other information about interfaces, and build any programs that
901 # use either of those frameworks or that report version information
902 # with Core Foundation as the frameworks in question use it and as we
903 # get version information from plists and thus need Core Foundation
904 # to process those plists.
909 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
910 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
911 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
912 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
915 # OK, so we have the OS X frameworks; do they include
916 # CFPropertyListCreateWithStream, or do we have
917 # to fall back on CFPropertyListCreateFromStream?
918 # (They only differ in the error return, which we
919 # don't care about. And, no, we shouldn't just
920 # use CFPropertyListCreateFromStream, because it's
921 # deprecated in newer releases.)
924 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
925 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
929 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
930 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
931 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
933 dnl Look in /usr/local for header files and libraries ?
934 dnl XXX FIXME don't include /usr/local if it is already in the system
935 dnl search path as this causes gcc 3.2 on Linux to complain about a change
936 dnl of the system search order for includes
937 AC_ARG_ENABLE(usr-local,
938 AC_HELP_STRING( [--enable-usr-local],
939 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
940 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
942 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
943 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
944 if test -d "/usr/local"; then
947 # Arrange that we search for header files in the source directory
948 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
949 # as various packages we use ("libpcap", "zlib", "adns")
950 # may have been installed under "/usr/local/include".
952 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
955 # Arrange that we search for libraries in "/usr/local/lib".
957 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
966 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
971 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
972 if test x$LD_LIBRARY_PATH != x ; then
973 LIBS="$LIBS -R$LD_LIBRARY_PATH"
974 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
976 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
982 # Check for versions of "sed" inadequate to handle, in libtool, a list
983 # of object files as large as the list in Wireshark.
985 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
986 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
987 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
988 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
989 # is the only "sed" that comes with Solaris that can handle Wireshark.
991 # Add any checks here that are necessary for other OSes.
993 AC_WIRESHARK_GNU_SED_CHECK
994 if test "$HAVE_GNU_SED" = no ; then
997 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
999 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
1001 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
1016 # Enable/disable wireshark
1017 AC_ARG_ENABLE(wireshark,
1018 AC_HELP_STRING( [--enable-wireshark],
1019 [build the Wireshark GUI (with Gtk+, Qt, or both) @<:@default=yes@:>@]),
1020 enable_wireshark=$enableval,enable_wireshark=yes)
1022 AC_ARG_ENABLE(packet-editor,
1023 AC_HELP_STRING( [--enable-packet-editor],
1024 [add support for packet editor in Wireshark @<:@default=no@:>@]),
1025 enable_packet_editor=$enableval,enable_packet_editor=no)
1026 if test x$enable_packet_editor = xyes; then
1027 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
1030 AC_ARG_ENABLE(profile-build,
1031 AC_HELP_STRING( [--enable-profile-build],
1032 [build profile-ready binaries @<:@default=no@:>@]),
1033 enable_profile_build=$enableval,enable_profile_build=no)
1034 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
1035 AC_MSG_CHECKING(if profile builds must be generated)
1036 if test "x$enable_profile_build" = "xyes" ; then
1037 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
1039 CFLAGS=" -pg $CFLAGS"
1040 CXXFLAGS=" -pg $CXXFLAGS"
1043 echo "Building profile binaries currently only supported for GCC and clang."
1049 # Create DATAFILE_DIR #define for config.h
1050 datafiledir=$datadir/wireshark
1052 test "x$prefix" = xNONE && prefix=$ac_default_prefix
1053 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1054 # Ugly hack, but I don't see how this problem can be solved
1055 # properly that DATAFILE_DIR had a value starting with
1056 # "${prefix}/" instead of e.g. "/usr/local/"
1057 eval eval echo "$datafiledir"
1059 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
1061 # Create DOC_DIR #define for config.h
1063 test "x$prefix" = xNONE && prefix=$ac_default_prefix
1064 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1065 # Ugly hack, but I don't see how this problem can be solved
1066 # properly that DOC_DIR had a value starting with
1067 # "${prefix}/" instead of e.g. "/usr/local/"
1068 eval eval echo "$docdir"
1070 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
1072 GTK2_MIN_VERSION=2.12.0
1073 AC_SUBST(GTK2_MIN_VERSION)
1074 GTK3_MIN_VERSION=3.0.0
1075 AC_SUBST(GTK3_MIN_VERSION)
1076 QT_MIN_VERSION=4.6.0
1077 AC_SUBST(QT_MIN_VERSION)
1078 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
1079 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
1081 # We only do those if we're going to be building Wireshark;
1082 # otherwise, we don't have any GUI to build, so we don't use
1085 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
1086 # force all programs to be built with GTK+ or Qt.
1088 # Release dates for GTK+ versions:
1089 # 2.12.0: 14 Sep 2007
1090 # 2.14.0: 04 Sep 2008
1091 # 2.16.0: 13 Mar 2009
1092 # 2.18.0: 23 Sep 2009
1093 # 2.20.0: 23 Mar 2010
1094 # 2.22.0: 23 Sep 2010
1095 # 2.24.0: 30 Jan 2011
1096 # 3.0.0: 10 Feb 2011
1097 # 3.2.0: 25 Sep 2011
1098 # 3.4.0: 26 Mar 2012
1099 # 3.6.0: 24 Sep 2012
1100 # 3.8.0: 25 Mar 2013
1104 if test "x$enable_wireshark" = "xyes"; then
1105 if test "x$with_qt" = "xyes"; then
1107 # Make sure we have a C++ compiler.
1109 if test -z "$CXX"; then
1110 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1113 AM_PATH_QT($QT_MIN_VERSION,
1115 CFLAGS="$CFLAGS $Qt_CFLAGS"
1116 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1119 , [AC_MSG_ERROR([Qt is not available])])
1122 # XXX - greasy hack to make ui/gtk/recent.c
1125 CPPFLAGS="-DQT_GUI_LIB"
1128 if test "x$with_gtk3" = "xyes" -a "x$with_gtk2" = "xyes" ; then
1129 # If the user gave us --with-gtk3, use gtk3 rather than gtk2
1133 if test "x$with_gtk3" = "xyes"; then
1134 AM_PATH_GTK_3_0(3.0.0,
1136 CFLAGS="$CFLAGS $GTK_CFLAGS"
1137 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1142 if test "x$with_gtk2" = "xyes"; then
1143 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1145 CFLAGS="$CFLAGS $GTK_CFLAGS"
1146 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1152 GLIB_MIN_VERSION=2.16.0
1153 AC_SUBST(GLIB_MIN_VERSION)
1154 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1155 # support, as we need that for dynamically loading plugins.
1156 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1157 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1158 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1159 # GLIB_CFLAGS to CFLAGS.
1160 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1161 # set when generating the Makefile, so we can make programs that require
1162 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1163 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1164 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1165 # programs to be built with GLib.
1167 # Release dates for GLib versions:
1168 # 2.14.0: 03 Aug 2007
1169 # 2.16.0: 10 Mar 2008
1170 # 2.18.0: 02 Sep 2008
1171 # 2.20.0: 13 Mar 2009
1172 # 2.22.0: 22 Sep 2009
1173 # 2.24.0: 28 Mar 2010
1174 # 2.26.0: 27 Sep 2010
1175 # 2.28.0: 08 Feb 2011
1176 # 2.30.0: 27 Sep 2011
1177 # 2.32.0: 24 Mar 2012
1178 # 2.34.0: 24 Sep 2012
1179 # 2.36.0: 25 Mar 2013
1181 use_glib_cflags="true"
1182 if test "$have_gtk" = "yes" -a "$have_qt" = "yes" ; then
1183 # We have both GTK and Qt and thus will be building both wireshark
1186 wireshark_bin="wireshark\$(EXEEXT) wireshark-qt\$(EXEEXT)"
1187 wireshark_man="wireshark.1"
1188 wireshark_SUBDIRS="codecs ui/qt ui/gtk"
1190 if test "$have_gtk" = "no" -a "$have_qt" = "yes" ; then
1191 # We don't have GTK+ but we have Qt.
1193 wireshark_bin="wireshark-qt\$(EXEEXT)"
1194 wireshark_man="wireshark.1"
1195 wireshark_SUBDIRS="codecs ui/qt"
1197 if test "$have_gtk" = "yes" -a "$have_qt" = "no" ; then
1198 # We have GTK+ but not Qt.
1200 wireshark_bin="wireshark\$(EXEEXT)"
1201 wireshark_man="wireshark.1"
1202 wireshark_SUBDIRS="codecs ui/gtk"
1203 use_glib_cflags="false"
1205 if test "$have_gtk" = "no" -a "$have_qt" = "no" ; then
1206 # We have neither GTK+ nor Qt.
1208 # If they didn't explicitly say "--disable-wireshark",
1209 # fail (so that, unless they explicitly indicated that
1210 # they don't want Wireshark, we stop so they know they
1211 # won't be getting Wireshark unless they fix the GTK+/Qt
1214 if test "x$enable_wireshark" = "xyes"; then
1215 if test "x$with_gtk3" = "xyes"; then
1216 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK3_MIN_VERSION or later are available, so Wireshark can't be compiled])
1218 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1225 if test "$have_gtk" = "yes" ; then
1226 # If we have GTK then add flags for it.
1228 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1229 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1230 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1231 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1232 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1233 # Enable GSEAL when building with GTK > 2.20
1234 # (Versions prior to 2.22 lacked some necessary accessors.)
1235 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1239 # XXX - Is this really necessary? When we build with both Gtk+ and Qt it works...
1240 if test "$use_glib_cflags" = "true"; then
1242 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1244 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1245 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1246 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1248 # Don't use GLIB_CFLAGS
1249 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1253 # "make dist" requires that we have the Qt build tools.
1255 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1256 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1257 # installed; if they're still doing that in current Fedora releases,
1258 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1260 AC_PATH_PROG(UIC, uic-qt4)
1263 AC_PATH_PROG(UIC, uic)
1266 if test "x$with_qt" = "xyes"; then
1268 # If you want to build with Qt, you'd better
1271 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1274 # We shouldn't fail here, as the user's not
1275 # building with Qt, and we shouldn't force them
1276 # to have Qt installed if they're not doing so.
1277 # "make dist" will fail if they do that, but
1278 # we don't know whether they'll be doing that,
1279 # so this is the best we can do.
1286 AC_PATH_PROG(MOC, moc-qt4)
1289 AC_PATH_PROG(MOC, moc)
1292 if test "x$with_qt" = "xyes"; then
1294 # If you want to build with Qt, you'd better
1297 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1300 # We shouldn't fail here, as the user's not
1301 # building with Qt, and we shouldn't force them
1302 # to have Qt installed if they're not doing so.
1303 # "make dist" will fail if they do that, but
1304 # we don't know whether they'll be doing that,
1305 # so this is the best we can do.
1313 # Error out if a glib header other than a "top level" header
1314 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1316 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1318 # Error out on the usage of deprecated glib functions
1319 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1322 # Check whether GLib modules are supported, to determine whether we
1323 # can support plugins.
1325 AC_MSG_CHECKING(whether GLib supports loadable modules)
1326 ac_save_CFLAGS="$CFLAGS"
1327 ac_save_LIBS="$LIBS"
1328 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1329 LIBS="$GLIB_LIBS $LIBS"
1332 #include <gmodule.h>
1339 if (g_module_supported())
1340 return 0; /* success */
1342 return 1; /* failure */
1344 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1345 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1346 ac_cv_glib_supports_modules=yes])
1347 CFLAGS="$ac_save_CFLAGS"
1348 LIBS="$ac_save_LIBS"
1349 if test "$ac_cv_glib_supports_modules" = yes ; then
1358 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1359 # filename (hopefully, a full pathname, but no guarantees) for
1362 if test "$ac_cv_header_dlfcn_h" = "yes"
1364 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1365 ac_save_CFLAGS="$CFLAGS"
1366 ac_save_LIBS="$LIBS"
1367 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1368 LIBS="$GLIB_LIBS $LIBS"
1370 #define _GNU_SOURCE /* required on Linux, sigh */
1378 if (!dladdr((void *)main, &info))
1379 return 1; /* failure */
1380 return 0; /* assume success */
1382 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1383 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1384 ac_cv_dladdr_finds_executable_path=yes])
1385 CFLAGS="$ac_save_CFLAGS"
1386 LIBS="$ac_save_LIBS"
1387 if test x$ac_cv_dladdr_finds_executable_path = xyes
1389 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1391 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1395 # Check whether GLib's printf supports thousands grouping. (This might
1396 # be different from the system's printf since GLib can optionally use
1397 # its own printf implementation.)
1399 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1400 ac_save_CFLAGS="$CFLAGS"
1401 ac_save_LIBS="$LIBS"
1402 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1403 LIBS="$GLIB_LIBS $LIBS"
1414 setlocale(LC_ALL, "en_US.UTF-8");
1415 str = g_strdup_printf("%'u", 123456);
1416 return (strcmp (str, "123,456") != 0);
1418 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1419 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1420 ac_cv_glib_supports_printf_grouping=no])
1421 CFLAGS="$ac_save_CFLAGS"
1422 LIBS="$ac_save_LIBS"
1423 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1425 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1430 if test "x$have_gtk" = "xyes"
1433 # We have GTK+; do we want the OS X integration functions and,
1434 # if so, do we have them and, if so, which versions do we have,
1435 # the old Carbon-based ones or the new Cocoa-based ones?
1437 AC_MSG_CHECKING(whether to use OS X integration functions)
1439 AC_ARG_WITH(osx-integration,
1440 AC_HELP_STRING( [--with-osx-integration],
1441 [use OS X integration functions @<:@default=yes, if available@:>@]),
1443 if test $withval = no
1445 want_osx_integration=no
1447 want_osx_integration=yes
1450 want_osx_integration=yes
1452 if test "x$want_osx_integration" = "xno"; then
1456 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1460 AC_SUBST(wireshark_bin)
1461 AC_SUBST(wireshark_man)
1462 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1463 AM_CONDITIONAL(HAVE_GTK, test "$have_gtk" = "yes")
1466 # Enable/disable tshark
1468 AC_ARG_ENABLE(tshark,
1469 AC_HELP_STRING( [--enable-tshark],
1470 [build TShark @<:@default=yes@:>@]),
1471 tshark=$enableval,enable_tshark=yes)
1473 if test "x$enable_tshark" = "xyes" ; then
1474 tshark_bin="tshark\$(EXEEXT)"
1475 tshark_man="tshark.1"
1476 wiresharkfilter_man="wireshark-filter.4"
1481 AC_SUBST(tshark_bin)
1482 AC_SUBST(tshark_man)
1483 AC_SUBST(wiresharkfilter_man)
1487 # Enable/disable editcap
1489 AC_ARG_ENABLE(editcap,
1490 AC_HELP_STRING( [--enable-editcap],
1491 [build editcap @<:@default=yes@:>@]),
1492 enable_editcap=$enableval,enable_editcap=yes)
1494 if test "x$enable_editcap" = "xyes" ; then
1495 editcap_bin="editcap\$(EXEEXT)"
1496 editcap_man="editcap.1"
1501 AC_SUBST(editcap_bin)
1502 AC_SUBST(editcap_man)
1506 # Enable/disable echld
1508 AC_ARG_ENABLE(echld,
1509 AC_HELP_STRING( [--enable-echld],
1511 have_echld=$enableval,have_echld=no)
1513 AM_CONDITIONAL(HAVE_ECHLD, test "x$have_echld" = "xyes")
1514 if test "x$have_echld" = "xyes"
1516 AC_DEFINE(HAVE_ECHLD, 1, [Define if echld is enabled])
1517 echld_test_bin="echld_test\$(EXEEXT)"
1524 AC_SUBST(echld_test_bin)
1528 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1531 # Enable/disable capinfos
1533 AC_ARG_ENABLE(capinfos,
1534 AC_HELP_STRING( [--enable-capinfos],
1535 [build capinfos @<:@default=yes@:>@]),
1536 enable_capinfos=$enableval,enable_capinfos=yes)
1538 if test "x$enable_capinfos" = "xyes" ; then
1539 capinfos_bin="capinfos\$(EXEEXT)"
1540 capinfos_man="capinfos.1"
1545 AC_SUBST(capinfos_bin)
1546 AC_SUBST(capinfos_man)
1549 # Enable/disable mergecap
1551 AC_ARG_ENABLE(mergecap,
1552 AC_HELP_STRING( [--enable-mergecap],
1553 [build mergecap @<:@default=yes@:>@]),
1554 enable_mergecap=$enableval,enable_mergecap=yes)
1556 if test "x$enable_mergecap" = "xyes" ; then
1557 mergecap_bin="mergecap\$(EXEEXT)"
1558 mergecap_man="mergecap.1"
1563 AC_SUBST(mergecap_bin)
1564 AC_SUBST(mergecap_man)
1567 # Enable/disable reordercap
1569 AC_ARG_ENABLE(reordercap,
1570 AC_HELP_STRING( [--enable-reordercap],
1571 [build reordercap @<:@default=yes@:>@]),
1572 enable_reordercap=$enableval,enable_reordercap=yes)
1574 if test "x$enable_reordercap" = "xyes" ; then
1575 reordercap_bin="reordercap\$(EXEEXT)"
1576 reordercap_man="reordercap.1"
1581 AC_SUBST(reordercap_bin)
1582 AC_SUBST(reordercap_man)
1585 # Enable/disable text2pcap
1587 AC_ARG_ENABLE(text2pcap,
1588 AC_HELP_STRING( [--enable-text2pcap],
1589 [build text2pcap @<:@default=yes@:>@]),
1590 text2pcap=$enableval,enable_text2pcap=yes)
1592 if test "x$enable_text2pcap" = "xyes" ; then
1593 text2pcap_bin="text2pcap\$(EXEEXT)"
1594 text2pcap_man="text2pcap.1"
1599 AC_SUBST(text2pcap_bin)
1600 AC_SUBST(text2pcap_man)
1603 # Enable/disable dftest
1605 AC_ARG_ENABLE(dftest,
1606 AC_HELP_STRING( [--enable-dftest],
1607 [build dftest @<:@default=yes@:>@]),
1608 enable_dftest=$enableval,enable_dftest=yes)
1610 if test "x$enable_dftest" = "xyes" ; then
1611 dftest_bin="dftest\$(EXEEXT)"
1612 dftest_man="dftest.1"
1617 AC_SUBST(dftest_bin)
1618 AC_SUBST(dftest_man)
1621 # Enable/disable randpkt
1623 AC_ARG_ENABLE(randpkt,
1624 AC_HELP_STRING( [--enable-randpkt],
1625 [build randpkt @<:@default=yes@:>@]),
1626 enable_randpkt=$enableval,enable_randpkt=yes)
1628 if test "x$enable_randpkt" = "xyes" ; then
1629 randpkt_bin="randpkt\$(EXEEXT)"
1630 randpkt_man="randpkt.1"
1635 AC_SUBST(randpkt_bin)
1636 AC_SUBST(randpkt_man)
1640 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1641 dnl "gethostbyname()".
1642 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1644 dnl Checks for "connect()", used as a proxy for "socket()" - and
1645 dnl "-lsocket", if we need it to get "connect()".
1646 AC_WIRESHARK_SOCKET_LIB_CHECK
1649 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1652 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1653 [use libpcap for packet capturing @<:@default=yes@:>@]),
1655 if test $withval = no
1658 elif test $withval = yes
1669 if test "x$want_pcap" = "xno" ; then
1673 AC_WIRESHARK_PCAP_CHECK
1677 dnl Check for airpcap
1678 AC_MSG_CHECKING(whether to include airpcap support)
1679 AC_ARG_ENABLE(airpcap,
1680 AC_HELP_STRING( [--enable-airpcap],
1681 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1682 enable_airpcap=$enableval, enable_airpcap=yes)
1684 if test x$enable_airpcap = xyes; then
1685 if test "x$want_pcap" = "xno" ; then
1687 AC_MSG_RESULT(pcap not available - disabling airpcap)
1690 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1698 AC_MSG_CHECKING(whether to build dumpcap)
1700 AC_ARG_ENABLE(dumpcap,
1701 AC_HELP_STRING( [--enable-dumpcap],
1702 [build dumpcap @<:@default=yes@:>@]),
1703 enable_dumpcap=$enableval,enable_dumpcap=yes)
1705 if test "x$enable_dumpcap" = "xyes" ; then
1706 if test "x$want_pcap" = "xno" ; then
1708 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1716 if test "x$enable_dumpcap" = "xyes" ; then
1717 dumpcap_bin="dumpcap\$(EXEEXT)"
1718 dumpcap_man="dumpcap.1"
1723 AC_SUBST(dumpcap_bin)
1724 AC_SUBST(dumpcap_man)
1726 # Enable/disable rawshark
1729 AC_MSG_CHECKING(whether to build rawshark)
1731 AC_ARG_ENABLE(rawshark,
1732 AC_HELP_STRING( [--enable-rawshark],
1733 [build rawshark @<:@default=yes@:>@]),
1734 rawshark=$enableval,enable_rawshark=yes)
1736 if test "x$enable_rawshark" = "xyes" ; then
1737 if test "x$want_pcap" = "xno" ; then
1739 AC_MSG_RESULT(pcap not available - disabling rawshark)
1747 if test "x$enable_rawshark" = "xyes" ; then
1748 rawshark_bin="rawshark\$(EXEEXT)"
1749 rawshark_man="rawshark.1"
1754 AC_SUBST(rawshark_bin)
1755 AC_SUBST(rawshark_man)
1757 dnl Use pcap-ng by default
1758 AC_ARG_ENABLE(pcap-ng-default,
1759 AC_HELP_STRING( [--enable-pcap-ng-default],
1760 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1761 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1762 if test x$enable_pcap_ng_default = xyes; then
1763 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1766 dnl pcap remote check
1767 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1769 AC_ARG_WITH(pcap-remote,
1770 AC_HELP_STRING([--with-pcap-remote],
1771 [use libpcap remote capturing (requires libpcap)]),
1773 if test $withval = no
1777 want_pcap_remote=yes
1782 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1786 AC_WIRESHARK_PCAP_REMOTE_CHECK
1790 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1793 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1794 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1796 if test "x$withval" = "xno"
1799 elif test "x$withval" = "xyes"
1808 # Use zlib if it's present, otherwise don't.
1810 want_zlib=ifavailable
1813 if test "x$want_zlib" = "xno" ; then
1817 AC_WIRESHARK_ZLIB_CHECK
1818 if test "x$want_zlib" = "xno" ; then
1819 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1821 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1822 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1828 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1831 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1832 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1834 if test $withval = no
1837 elif test $withval = yes
1846 # Use liblua by default
1848 want_lua=ifavailable
1851 if test "x$want_lua" = "xno" ; then
1855 AC_WIRESHARK_LIBLUA_CHECK
1856 if test "x$want_lua" = "xno" ; then
1857 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1860 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1864 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1866 AC_ARG_WITH(portaudio,
1867 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1868 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1870 if test $withval = no
1873 elif test $withval = yes
1878 portaudio_dir=$withval
1882 # Use libportaudio by default
1884 want_portaudio=ifavailable
1887 if test "x$want_portaudio" = "xno" ; then
1891 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1892 if test "x$want_portaudio" = "xno" ; then
1893 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1896 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1901 AC_HELP_STRING( [--enable-ipv6],
1902 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1903 enable_ipv6=$enableval,enable_ipv6=yes)
1905 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1906 if test "x$enable_ipv6" = "xno" ; then
1910 AC_WIRESHARK_IPV6_STACK
1914 dnl Check if dumpcap should be installed with filesystem capabilities
1915 AC_PATH_PROG(SETCAP, setcap)
1916 AC_ARG_ENABLE(setcap-install,
1917 AC_HELP_STRING( [--enable-setcap-install],
1918 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1919 enable_setcap_install=$enableval,enable_setcap_install=no)
1921 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1922 if test "x$enable_setcap_install" = "xno" ; then
1925 if test "x$SETCAP" = "x" ; then
1926 AC_MSG_RESULT(no. Setcap not found)
1927 elif test "x$enable_dumpcap" = "xno" ; then
1928 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1934 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1936 dnl Check if dumpcap should be installed setuid
1937 AC_ARG_ENABLE(setuid-install,
1938 AC_HELP_STRING( [--enable-setuid-install],
1939 [install dumpcap as setuid @<:@default=no@:>@]),
1940 enable_setuid_install=$enableval,enable_setuid_install=no)
1942 AC_MSG_CHECKING(whether to install dumpcap setuid)
1943 if test "x$enable_setuid_install" = "xno" ; then
1946 if test "x$enable_setcap_install" = "xyes" ; then
1947 enable_setuid_install=no
1948 AC_MSG_RESULT(no; using setcap instead)
1949 elif test "x$enable_dumpcap" = "xno" ; then
1950 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1956 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1957 AC_CHECK_FUNCS(setresuid setresgid)
1959 dnl ...but our Network Operations group is named "no"!
1961 AC_ARG_WITH(dumpcap-group,
1962 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1963 [restrict dumpcap to GROUP]),
1965 if test "x$withval" = "xyes"; then
1966 AC_MSG_ERROR([No dumpcap group specified.])
1967 elif test "x$withval" != "xno"; then
1968 if test "x$enable_dumpcap" = "xno" ; then
1969 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1971 AC_MSG_RESULT($withval)
1972 DUMPCAP_GROUP="$withval"
1975 AC_SUBST(DUMPCAP_GROUP)
1976 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1978 dnl libcap (not libpcap) check
1980 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1983 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1984 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1986 if test "x$withval" = "xno"; then
1988 elif test "x$withval" = "xyes"; then
1990 elif test -d "$withval"; then
1992 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1995 if test "x$with_libcap" = "xno" ; then
1999 AC_WIRESHARK_LIBCAP_CHECK
2001 AC_SUBST(LIBCAP_LIBS)
2003 dnl Checks for header files.
2004 dnl Some of these may not be needed: http://hacks.owlfolio.org/header-survey/
2005 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
2006 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)
2007 AC_CHECK_HEADERS(netinet/in.h)
2008 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
2012 AC_MSG_CHECKING(whether to use SSL library)
2015 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
2016 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
2018 if test "x$withval" = "xno"; then
2020 elif test "x$withval" = "xyes"; then
2022 elif test -d "$withval"; then
2024 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2029 if test "x$want_ssl" = "xyes"; then
2031 AC_CHECK_LIB(crypto,EVP_md5,
2036 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
2044 AC_MSG_CHECKING(whether to use Kerberos library)
2047 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
2048 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
2050 if test $withval = no
2053 elif test $withval = yes
2062 # Use Kerberos library if available, otherwise don't.
2064 want_krb5=ifavailable
2067 if test "x$want_krb5" = "xno" ; then
2071 AC_WIRESHARK_KRB5_CHECK
2077 AC_MSG_CHECKING(whether to use the c-ares library if available)
2080 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
2081 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
2083 if test "x$withval" = "xno"; then
2085 elif test "x$withval" = "xyes"; then
2087 elif test -d "$withval"; then
2089 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2092 if test "x$want_c_ares" = "xno" ; then
2096 AC_WIRESHARK_C_ARES_CHECK
2098 AC_SUBST(C_ARES_LIBS)
2102 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
2105 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
2106 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2108 if test "x$withval" = "xno"; then
2110 elif test "x$withval" = "xyes"; then
2112 elif test -d "$withval"; then
2114 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2117 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2121 AC_WIRESHARK_ADNS_CHECK
2127 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2130 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2131 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2133 if test "x$withval" = "xno"; then
2135 elif test "x$withval" = "xyes"; then
2137 elif test -d "$withval"; then
2139 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2142 if test "x$want_geoip" = "xno"; then
2146 AC_WIRESHARK_GEOIP_CHECK
2148 AC_SUBST(GEOIP_LIBS)
2150 # Warning: this Python scripting appears to be broken (does not work at all).
2151 # Running it also causes Valgrind to complain about all sorts of memory errors.
2152 # Suggestion: do not enable it unless you are working on fixing it.
2154 # An alternative might be https://code.google.com/p/pyreshark/
2156 dnl Python devel Check
2157 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
2159 AC_ARG_WITH(broken-python,
2160 AC_HELP_STRING( [--with-broken-python@<:@=DIR@:>@],
2161 [use the (BROKEN) Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@]),
2163 pythondir='${libdir}/wireshark/python/${VERSION}'
2164 if test "x$withval" = "xno"
2167 elif test "x$withval" = "xyes"
2172 pythondir="$withval"
2175 # By default (user didn't explicitly enable Python), don't enable
2179 #pythondir='${libdir}/wireshark/python/${VERSION}'
2181 if test "x$want_python" = "xno" ; then
2185 AC_WIRESHARK_PYTHON_CHECK
2187 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2191 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2192 # never return (just like Charlie on the MTA).
2194 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2195 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2196 # follow the function name, so we need two different flavors of
2199 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2201 dnl Checks for typedefs, structures, and compiler characteristics.
2204 # Check how we can get the time zone abbreviation
2205 AC_WIRESHARK_TIMEZONE_ABBREV
2207 # We need to know whether "struct stat" has an "st_flags" member
2208 # for file_user_immutable().
2210 AC_WIRESHARK_STRUCT_ST_FLAGS
2212 # We need to know whether "struct sockaddr" has an "sa_len" member
2213 # for get_interface_list().
2215 AC_WIRESHARK_STRUCT_SA_LEN
2217 # We must know our byte order
2220 # Checks whether "-traditional" is needed when using "ioctl".
2221 # XXX - do we need this?
2222 AC_PROG_GCC_TRADITIONAL
2225 AC_CHECK_FUNC(getopt,
2227 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2229 GETOPT_LO="wsgetopt.lo"
2231 if test "$ac_cv_func_getopt" = no ; then
2232 GETOPT_LO="wsgetopt.lo"
2234 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2237 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2238 STRNCASECMP_LO="strncasecmp.lo")
2239 if test "$ac_cv_func_strncasecmp" = no ; then
2240 STRNCASECMP_LO="strncasecmp.lo"
2242 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2243 AC_SUBST(STRNCASECMP_LO)
2245 AC_CHECK_FUNCS(mkstemp mkdtemp)
2247 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2249 if test "$have_inet_aton" = no; then
2250 INET_ATON_LO="inet_aton.lo"
2251 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2255 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2256 AC_SUBST(INET_ATON_LO)
2258 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2259 dnl check for pre-BIND82 inet_pton() bug.
2260 AC_MSG_CHECKING(for broken inet_pton)
2261 AC_TRY_RUN([#include <sys/types.h>
2262 #include <sys/socket.h>
2263 #include <netinet/in.h>
2264 #include <arpa/inet.h>
2269 /* this should return 0 (error) */
2270 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2274 }], [AC_MSG_RESULT(ok);
2275 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2276 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2277 have_inet_pton=no])],
2279 if test "$have_inet_pton" = no; then
2280 INET_PTON_LO="inet_pton.lo"
2284 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2285 AC_SUBST(INET_PTON_LO)
2287 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2288 AC_MSG_CHECKING([for inet_ntop prototype])
2289 AC_TRY_COMPILE([#include <stdio.h>
2290 #include <sys/types.h>
2291 #include <sys/socket.h>
2292 #include <netinet/in.h>
2293 #include <arpa/inet.h>
2295 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2297 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2298 [Define if inet_ntop() prototype exists])], [
2299 AC_TRY_COMPILE([#include <stdio.h>
2300 #include <sys/types.h>
2301 #include <sys/socket.h>
2302 #include <netinet/in.h>
2303 #include <arpa/inet.h>
2305 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2307 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2308 [Define if inet_ntop() prototype exists])], [
2309 AC_MSG_RESULT(no)])])
2311 INET_NTOP_LO="inet_ntop.lo"
2312 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2313 [Define if inet/v6defs.h needs to be included])])
2314 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2315 AC_SUBST(INET_NTOP_LO)
2317 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2318 [STRPTIME_LO="strptime.lo"
2319 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2321 if test "$ac_cv_func_strptime" = no ; then
2322 STRPTIME_LO="strptime.lo"
2324 AC_SUBST(STRPTIME_C)
2325 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2326 AC_SUBST(STRPTIME_LO)
2328 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2329 AC_CHECK_FUNCS(issetugid)
2330 AC_CHECK_FUNCS(mmap mprotect sysconf)
2331 AC_CHECK_FUNCS(strtoll)
2333 dnl blank for now, but will be used in future
2334 AC_SUBST(wireshark_SUBDIRS)
2337 dnl check whether plugins should be enabled and, if they should be,
2338 dnl check for plugins directory - stolen from Amanda's configure.ac
2340 dnl we don't wish to expand ${libdir} yet
2341 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2342 AC_ARG_WITH(plugins,
2343 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2344 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2346 if test "x$withval" = "xno"; then
2348 elif test "x$have_plugins" = "xno"; then
2349 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2350 elif test "x$withval" != "xyes"; then
2351 plugindir="$withval"
2354 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2355 if test x$have_plugins = xyes
2357 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2360 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2363 # The plugin dissectors reside in ./plugins/PROTO/
2366 AC_SUBST(PLUGIN_LIBS)
2369 # Check if (emem) memory allocations must be 8-byte aligned.
2370 # I haven't been able to write C code that reliably makes that determination
2371 # (different versions of GCC with or without optimization give different
2372 # results) so just assume everything except (32-bit) x86 needs 8-byte
2373 # alignment (64-bit platforms either require 8-byte alignment for pointers
2374 # and 64-bit integral data types or may get better performance from that;
2375 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2376 # platforms would only require it, or get better performance from it,
2377 # for 64-bit floating-point values.).
2379 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2381 i386|i486|i586|i686)
2386 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2392 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2393 # (autoconf? automake? libtool?) - with the newer version(s), it's
2394 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2396 # With older version(s) of those tool(s), however, it's not just an
2397 # alias, and the configure scripts don't work without it.
2400 AC_SUBST(LIBTOOL_DEPS)
2402 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2403 if test x$enable_static = xyes -a x$have_plugins = xyes
2405 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2407 AC_SUBST(ENABLE_STATIC)
2409 dnl Save the cacheable configure results to config.cache before recursing
2412 sinclude(plugins/Custom.m4) dnl
2413 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2415 sinclude(asn1/Custom.m4) dnl
2416 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2418 AC_CONFIG_HEADERS(config.h)
2423 _CUSTOM_ASN1_AC_OUTPUT_
2424 asn1/acp133/Makefile
2426 asn1/ansi_map/Makefile
2427 asn1/ansi_tcap/Makefile
2431 asn1/charging_ase/Makefile
2436 asn1/credssp/Makefile
2445 asn1/gprscdr/Makefile
2446 asn1/gsm_map/Makefile
2455 asn1/h450-ros/Makefile
2458 asn1/HI2Operations/Makefile
2462 asn1/isdn-sup/Makefile
2463 asn1/kerberos/Makefile
2466 asn1/logotypecertextn/Makefile
2470 asn1/lte-rrc/Makefile
2473 asn1/mpeg-audio/Makefile
2474 asn1/mpeg-pes/Makefile
2476 asn1/ns_cert_exts/Makefile
2484 asn1/pkcs12/Makefile
2485 asn1/pkinit/Makefile
2486 asn1/pkixac/Makefile
2487 asn1/pkix1explicit/Makefile
2488 asn1/pkix1implicit/Makefile
2489 asn1/pkixproxy/Makefile
2490 asn1/pkixqualified/Makefile
2491 asn1/pkixtsp/Makefile
2494 asn1/q932-ros/Makefile
2505 asn1/sbc-ap/Makefile
2508 asn1/spnego/Makefile
2516 asn1/wlancertextn/Makefile
2518 asn1/x509af/Makefile
2519 asn1/x509ce/Makefile
2520 asn1/x509if/Makefile
2521 asn1/x509sat/Makefile
2528 epan/dfilter/Makefile
2529 epan/dissectors/Makefile
2530 epan/dissectors/dcerpc/Makefile
2531 epan/dissectors/pidl/Makefile
2532 epan/ftypes/Makefile
2535 epan/wspython/Makefile
2546 packaging/macosx/Info.plist
2547 packaging/macosx/Makefile
2548 packaging/macosx/osx-dmg.sh
2549 packaging/nsis/Makefile
2550 packaging/rpm/Makefile
2551 packaging/rpm/SPECS/Makefile
2552 packaging/rpm/SPECS/wireshark.spec
2553 packaging/svr4/Makefile
2554 packaging/svr4/checkinstall
2555 packaging/svr4/pkginfo
2557 plugins/asn1/Makefile
2558 plugins/docsis/Makefile
2559 plugins/ethercat/Makefile
2560 plugins/gryphon/Makefile
2561 plugins/irda/Makefile
2562 plugins/m2m/Makefile
2563 plugins/mate/Makefile
2564 plugins/opcua/Makefile
2565 plugins/profinet/Makefile
2566 plugins/stats_tree/Makefile
2567 plugins/unistim/Makefile
2568 plugins/wimax/Makefile
2569 plugins/wimaxasncp/Makefile
2570 plugins/wimaxmacphy/Makefile
2572 tools/lemon/Makefile
2578 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2583 if test "x$have_gtk" = "xyes"; then
2584 if test "x$with_gtk3" = "xyes"; then
2585 gtk_lib_message=" (with GTK+ 3"
2587 gtk_lib_message=" (with GTK+ 2"
2589 if test "x$have_ige_mac" = "xyes"; then
2590 gtk_lib_message="$gtk_lib_message and Mac OS X integration)"
2592 gtk_lib_message="$gtk_lib_message)"
2596 if test "x$have_qt" = "xyes" ; then
2597 enable_qtshark="yes"
2602 if test "x$enable_setcap_install" = "xyes" ; then
2603 setcap_message="yes"
2608 if test "x$enable_setuid_install" = "xyes" ; then
2609 setuid_message="yes"
2614 if test "x$DUMPCAP_GROUP" = "x" ; then
2615 dumpcap_group_message="(none)"
2617 dumpcap_group_message="$DUMPCAP_GROUP"
2620 if test "x$want_zlib" = "xno" ; then
2626 if test "x$want_lua" = "xyes" ; then
2632 if test "x$want_python" = "xno"; then
2635 python_message="yes"
2638 if test "x$want_portaudio" = "xyes" ; then
2639 portaudio_message="yes"
2641 portaudio_message="no"
2644 if test "x$want_ssl" = "xno" ; then
2650 if test "x$want_krb5" = "xno" ; then
2653 krb5_message="yes ($ac_krb5_version)"
2656 if test "x$have_good_c_ares" = "xyes" ; then
2657 c_ares_message="yes"
2662 if test "x$have_good_adns" = "xyes" ; then
2665 if test "x$have_good_c_ares" = "xyes" ; then
2666 adns_message="no (using c-ares instead)"
2672 if test "x$have_good_libcap" = "xyes" ; then
2673 libcap_message="yes"
2678 if test "x$have_good_geoip" = "xyes" ; then
2685 echo "The Wireshark package has been configured with the following options."
2686 echo " Build wireshark (Gtk+) : $have_gtk""$gtk_lib_message"
2687 echo " Build wireshark-qt : $enable_qtshark"
2688 echo " Build tshark : $enable_tshark"
2689 echo " Build capinfos : $enable_capinfos"
2690 echo " Build editcap : $enable_editcap"
2691 echo " Build dumpcap : $enable_dumpcap"
2692 echo " Build mergecap : $enable_mergecap"
2693 echo " Build reordercap : $enable_reordercap"
2694 echo " Build text2pcap : $enable_text2pcap"
2695 echo " Build randpkt : $enable_randpkt"
2696 echo " Build dftest : $enable_dftest"
2697 echo " Build rawshark : $enable_rawshark"
2698 echo " Build echld : $have_echld"
2700 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2701 echo " Install dumpcap with capabilities : $setcap_message"
2702 echo " Install dumpcap setuid : $setuid_message"
2703 echo " Use dumpcap group : $dumpcap_group_message"
2704 echo " Use plugins : $have_plugins"
2705 echo " Use Lua library : $lua_message"
2706 echo " Use Python binding : $python_message"
2707 echo " Build rtp_player : $portaudio_message"
2708 echo " Build profile binaries : $enable_profile_build"
2709 echo " Use pcap library : $want_pcap"
2710 echo " Use zlib library : $zlib_message"
2711 echo " Use kerberos library : $krb5_message"
2712 echo " Use c-ares library : $c_ares_message"
2713 echo " Use GNU ADNS library : $adns_message"
2714 echo " Use SMI MIB library : $libsmi_message"
2715 echo " Use GNU crypto library : $gcrypt_message"
2716 echo " Use SSL crypto library : $ssl_message"
2717 echo " Use IPv6 name resolution : $enable_ipv6"
2718 echo " Use gnutls library : $tls_message"
2719 echo " Use POSIX capabilities library : $libcap_message"
2720 echo " Use GeoIP library : $geoip_message"
2721 echo " Use nl library : $libnl_message"