4 m4_define([version_major], [1])
5 m4_define([version_minor], [9])
6 m4_define([version_micro], [1])
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])
136 AC_PATH_PROG(PYTHON, python)
137 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
146 AC_SUBST(DESKTOP_FILE_INSTALL)
149 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
150 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
151 # we assume GCC and clang do; other compilers should be added here.
153 # This is done to avoid getting tripped up by compilers that support
154 # those flags but give them a different meaning.
156 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
157 ac_supports_gcc_flags=yes
161 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
162 # support "-Wl,{options}" to pass options through to the linker.
163 # Currently, we assume GCC, xlc, and clang do; other compilers should
166 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
167 ac_supports_W_linker_passthrough=yes
171 # Set "ac_supports_attribute_unused" if the compiler is known to
172 # support "__attribute__(unused)".
173 # Currently, we assume GCC and clang do; other compilers should
176 # XXX - do this with a compiler test?
178 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
179 ac_supports_W_linker_passthrough=yes
182 if test "x$CC_FOR_BUILD" = x
186 AC_SUBST(CC_FOR_BUILD)
187 AC_SUBST(CFLAGS_FOR_BUILD)
190 AC_PATH_PROG(DOXYGEN, doxygen)
191 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
192 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
195 # Try to arrange for large file support.
200 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+.
202 AC_ARG_WITH([gnutls],
203 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
204 [use GnuTLS library @<:@default=yes@:>@]),
205 with_gnutls="$withval", with_gnutls="yes")
206 if test "x$with_gnutls" = "xyes"; then
207 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
209 echo "GnuTLS found, enabling SSL decryption"
210 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
214 echo "GnuTLS not found, disabling SSL decryption"
222 AC_ARG_WITH([gcrypt],
223 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
224 [use gcrypt library @<:@default=yes@:>@]),
225 with_gcrypt="$withval", with_gcrypt="yes")
226 if test "x$with_gcrypt" = "xyes"; then
227 AM_PATH_LIBGCRYPT(1.1.92,
229 echo "libgcrypt found, enabling ipsec decryption"
230 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
234 if test x$libgcrypt_config_prefix != x ; then
235 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
237 echo "libgcrypt not found, disabling ipsec decryption"
245 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
246 [use Qt instead of GTK+ @<:@default=no@:>@]),
247 with_qt="$withval", with_qt="no")
250 PKG_CHECK_MODULES(LIBNL3, [libnl-route-3.0 >= 3.0 libnl-genl-3.0] >= 3.0, [have_libnl3=yes], [have_libnl3=no])
251 PKG_CHECK_MODULES(LIBNL2, libnl-2.0 >= 2.0, [have_libnl2=yes], [have_libnl2=no])
252 PKG_CHECK_MODULES(LIBNL1, libnl-1 >= 1.0, [have_libnl1=yes], [have_libnl1=no])
253 if (test "${have_libnl3}" = "yes"); then
254 CFLAGS="$CFLAGS $LIBNL3_CFLAGS"
255 LIBS="$LIBS $LIBNL3_LIBS"
256 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
257 AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
258 libnl_message="yes (v3)"
260 elif (test "${have_libnl2}" = "yes"); then
261 CFLAGS="$CFLAGS $LIBNL2_CFLAGS"
262 LIBS="$LIBS $LIBNL2_LIBS"
263 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
264 AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
265 libnl_message="yes (v2)"
267 elif (test "${have_libnl1}" = "yes"); then
268 CFLAGS="$CFLAGS $LIBNL1_CFLAGS"
269 LIBS="$LIBS $LIBNL1_LIBS"
270 AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
271 AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
272 libnl_message="yes (v1)"
276 AC_MSG_CHECKING([if nl80211.h is new enough])
277 AC_TRY_COMPILE([#include <linux/nl80211.h>],
278 [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
279 x = NL80211_ATTR_SUPPORTED_IFTYPES;
280 x = NL80211_ATTR_SUPPORTED_COMMANDS;
281 x = NL80211_ATTR_WIPHY_FREQ;
282 x = NL80211_CHAN_NO_HT;],
283 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new ehough])],
286 AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
287 AC_TRY_COMPILE([#include <linux/nl80211.h>],
288 [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
289 [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
294 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
295 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
296 with_gtk3="$withval", with_gtk3="no")
299 # FIXME: currently the path argument to with-libsmi is being ignored
303 AC_PATH_PROG(XSLTPROC, xsltproc)
304 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
305 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
308 AC_PATH_PROG(XMLLINT, xmllint)
309 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
310 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
312 # Check for fop (translate .fo to e.g. pdf)
313 AC_PATH_PROG(FOP, fop)
314 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
315 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
318 # Look for something to convert HTML to text (for docbook/)
320 AC_PATH_PROG(ELINKS, elinks)
321 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
322 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
324 ## links: Fails as used in docbook/Makefile.am
325 ## (Rather than fixing things we'll just disable the use of links).
326 ##AC_PATH_PROG(LINKS, links)
327 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
328 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
330 AC_PATH_PROG(LYNX, lynx)
331 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
332 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
335 # Check for hhc (html help compiler)
336 AC_PATH_PROG(HHC, hhc.exe)
337 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
338 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
340 # Check for packaging utilities
341 # For now, we check to see if the various packaging utilites are in our
342 # path. I'm too lazy to write code to go hunt for them. - Gerald
345 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
346 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
347 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
349 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
350 -a x$HAVE_PKGTRANS = xyes ; then
351 HAVE_SVR4_PACKAGING=yes
353 HAVE_SVR4_PACKAGING=no
355 AC_SUBST(HAVE_SVR4_PACKAGING)
358 AC_WIRESHARK_RPM_CHECK
362 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
365 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
366 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
367 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
369 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
370 -a x$HAVE_BLESS = xyes ; then
371 HAVE_OSX_PACKAGING=yes
373 HAVE_OSX_PACKAGING=no
375 AC_SUBST(HAVE_OSX_PACKAGING)
378 # Try to add some additional gcc checks to CFLAGS
380 AC_ARG_ENABLE(extra-gcc-checks,
381 AC_HELP_STRING( [--enable-extra-gcc-checks],
382 [do additional -W checks in GCC @<:@default=no@:>@]),
384 wireshark_extra_gcc_flags=$enableval
385 if test $enableval != no
387 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
389 # Various code blocks this one.
391 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
392 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
394 # Some memset() calls to clear out structures
395 # on the stack are getting flagged as "will never
396 # be executed" by this, at least by Apple's
397 # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on
398 # Apple Inc. build 5658) (LLVM build 2336.11.00), for
399 # some unknown reason.
401 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
403 # Due to various places where APIs we don't control
404 # require us to cast away constness, we can probably
405 # never enable these ones with -Werror.
407 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
408 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
410 # Some generated ASN.1 dissectors block this one;
411 # multiple function declarations for the same
412 # function are being generated.
414 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
416 # Some loops are safe, but it's hard to convince the
419 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
421 # A ton of code blocks this one - it warns about
422 # implict conversions of void * to/from arbitrary
423 # pointer types, for example.
425 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
427 # All the registration functions block these for now.
429 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
430 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
433 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
434 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
435 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
436 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
437 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
438 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
439 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
440 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
441 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
442 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
443 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
444 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes, C)
445 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
446 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
447 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
448 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
449 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
450 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
451 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
452 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
453 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
454 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
455 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
460 # Make sure -Wshadow doesn't complain about variables in function and
461 # function pointer declarations shadowing other variables; if not, don't
462 # turn it on, as some versions of GCC (including the one in at least
463 # some Xcode versions that came with Mac OS X 10.5) complain about
466 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow, C,
468 extern int bar(int a);
474 int (*fptr)(int a) = bar;
479 [warns about variables in function declarations shadowing other variables])
481 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
482 # is given a constant string.
483 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
484 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op, C,
488 int foo(const char *, int);
492 foo(const char *sep, int c)
494 if (strchr (sep, c) != NULL)
503 return foo("<", 'a');
506 [generates warnings from strchr()])
509 ## AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable)
512 # Use the faster pre gcc 4.5 floating point precision if available;
513 # clang doesn't error out on -f options that it doesn't know about,
514 # it just warns and ignores them, so this check doesn't cause us
515 # to omit -fexcess-precision=fast, which produces a pile of
518 if test "x$CC" != "xclang" ; then
519 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
522 CFLAGS_before_fvhidden=$CFLAGS
523 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fvisibility=hidden)
524 if test "x$CLFAGS" = "x$CFLAGS_before_fvhidden"
526 # TODO add other ways of hiding symbols
527 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
530 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
531 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
532 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
533 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
534 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
535 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
538 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
539 # so that we can build dumpcap PIE - it may run with elevated
540 # privileges, and using PIE means the OS can run it at random locations
541 # in the address space to make attacks more difficult.
543 CFLAGS_before_pie=$CFLAGS
544 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fPIE, C)
545 if test "x$CLFAGS" != "x$CFLAGS_before_pie"
548 CFLAGS=$CFLAGS_before_pie
550 LDFLAGS_before_pie=$LDFLAGS
551 AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
552 if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
559 LDFLAGS=$LDFLAGS_before_pie
564 AC_SUBST(PIE_LDFLAGS)
567 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
568 # so we can use _U_ to flag unused function parameters and not get warnings
569 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
570 # to flag an unused function parameters will compile with other compilers.
572 # XXX - similar hints for other compilers?
574 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
575 AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
577 AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
580 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
581 # (only if the GCC 'optimization level' > 0).
583 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
584 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
586 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
587 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
590 # If the compiler supports GCC-style flags, enable a barrier "stop on
592 # This barrier is set for a very large part of the code. However, it is
593 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
595 warnings_as_errors_default="yes"
596 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
597 AC_ARG_ENABLE(warnings-as-errors,
598 AC_HELP_STRING( [--enable-warnings-as-errors],
599 [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]),
601 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
602 with_warnings_as_errors="yes"
605 with_warnings_as_errors="no"
610 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
611 with_warnings_as_errors="yes"
614 with_warnings_as_errors="no"
619 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
622 # Add any platform-specific compiler flags needed.
624 AC_MSG_CHECKING(for platform-specific compiler flags)
625 if test "x$GCC" = "xyes" ; then
627 # GCC - do any platform-specific tweaking necessary.
631 # the X11 headers don't automatically include prototype info
632 # and a lot don't include the return type
633 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
634 CFLAGS="$CFLAGS -Wno-return-type"
635 CXXFLAGS="$CXXFLAGS -Wno-return-type"
636 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
639 AC_MSG_RESULT(none needed)
644 # Not GCC - assume it's the vendor's compiler.
649 # HP's ANSI C compiler; flags suggested by Jost Martin.
650 # "-Ae" for ANSI C plus extensions such as "long long".
651 # "+O2", for optimization. XXX - works with "-g"?
653 # HP's ANSI C++ compiler doesn't support "-Ae", but
654 # does support "+O2", at least according to the
655 # documentation I can find online.
657 CFLAGS="-Ae +O2 $CFLAGS"
658 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
659 CXXFLAGS="+O2 $CFLAGS"
660 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
663 AC_MSG_RESULT(none needed)
669 # Add any platform-specific linker flags needed.
671 AC_MSG_CHECKING(for platform-specific linker flags)
675 # Add -Wl,-single_module to the LDFLAGS used with shared
676 # libraries, to fix some error that show up in some cases;
677 # some Apple documentation recommends it for most shared
680 LDFLAGS_SHAREDLIB="-Wl,-single_module"
682 # Add -Wl,-search_paths_first to make sure that if we search
683 # directories A and B, in that order, for a given library, a
684 # non-shared version in directory A, rather than a shared
685 # version in directory B, is chosen (so we can use
686 # --with-pcap=/usr/local to force all programs to be linked
687 # with a static version installed in /usr/local/lib rather than
688 # the system version in /usr/lib).
690 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
691 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
695 # Shared libraries in cygwin/Win32 must never contain
698 LDFLAGS="$LDFLAGS -no-undefined"
699 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
702 AC_MSG_RESULT(none needed)
705 AC_SUBST(LDFLAGS_SHAREDLIB)
707 # Enable silent builds by default
708 # Verbose builds can be enabled with "./configure
709 # --enable-silent-rules ..." or "make V=1 ..."
710 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
711 [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
714 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
715 # "just Darwin" (as we don't currently support iOS, and as I don't
716 # think you can build and run "just Darwin" as an OS for PCs), we
717 # arrange to build some programs with Application Services so they
718 # can launch Web browsers and Finder windows, arrange to build some
719 # programs with System Configuration so they can get "friendly names"
720 # and other information about interfaces, and build any programs that
721 # use either of those frameworks or that report version information
722 # with Core Foundation as the frameworks in question use it and as we
723 # get version information from plists and thus need Core Foundation
724 # to process those plists.
729 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
730 APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
731 SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
732 COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
735 # OK, so we have the OS X frameworks; do they include
736 # CFPropertyListCreateWithStream, or do we have
737 # to fall back on CFPropertyListCreateFromStream?
738 # (They only differ in the error return, which we
739 # don't care about. And, no, we shouldn't just
740 # use CFPropertyListCreateFromStream, because it's
741 # deprecated in newer releases.)
744 LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
745 AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
749 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
750 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
751 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
754 # If using $prefix we add "$prefix/include" to the include search path
755 # and "$prefix/lib" to the library search path.
757 if test "x$prefix" != "x" ; then
758 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
759 if test -d $prefix/include ; then
762 # Arrange that we search for header files in "$prefix/include", as
763 # various packages we use may have been installed under "$prefix/include".
765 CPPFLAGS="$CPPFLAGS -I$prefix/include"
768 # Arrange that we search for libraries in "$prefix/lib".
770 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
776 dnl Look in /usr/local for header files and libraries ?
777 dnl XXX FIXME don't include /usr/local if it is already in the system
778 dnl search path as this causes gcc 3.2 on Linux to complain about a change
779 dnl of the system search order for includes
780 AC_ARG_ENABLE(usr-local,
781 AC_HELP_STRING( [--enable-usr-local],
782 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
783 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
785 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
786 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
787 if test -d "/usr/local"; then
790 # Arrange that we search for header files in the source directory
791 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
792 # as various packages we use ("libpcap", "zlib", "adns")
793 # may have been installed under "/usr/local/include".
795 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
798 # Arrange that we search for libraries in "/usr/local/lib".
800 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
809 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
814 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
815 if test x$LD_LIBRARY_PATH != x ; then
816 LIBS="$LIBS -R$LD_LIBRARY_PATH"
817 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
819 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
825 # Check for versions of "sed" inadequate to handle, in libtool, a list
826 # of object files as large as the list in Wireshark.
828 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
829 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
830 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
831 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
832 # is the only "sed" that comes with Solaris that can handle Wireshark.
834 # Add any checks here that are necessary for other OSes.
836 AC_WIRESHARK_GNU_SED_CHECK
837 if test "$HAVE_GNU_SED" = no ; then
840 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
842 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
844 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
859 # Enable/disable wireshark
861 AC_ARG_ENABLE(wireshark,
862 AC_HELP_STRING( [--enable-wireshark],
863 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
864 enable_wireshark=$enableval,enable_wireshark=yes)
866 AC_ARG_ENABLE(packet-editor,
867 AC_HELP_STRING( [--enable-packet-editor],
868 [add support for packet editor in Wireshark @<:@default=no@:>@]),
869 enable_packet_editor=$enableval,enable_packet_editor=no)
870 if test x$enable_packet_editor = xyes; then
871 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
874 AC_ARG_ENABLE(profile-build,
875 AC_HELP_STRING( [--enable-profile-build],
876 [build profile-ready binaries @<:@default=no@:>@]),
877 enable_profile_build=$enableval,enable_profile_build=no)
878 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
879 AC_MSG_CHECKING(if profile builds must be generated)
880 if test "x$enable_profile_build" = "xyes" ; then
881 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
883 CFLAGS=" -pg $CFLAGS"
884 CXXFLAGS=" -pg $CXXFLAGS"
887 echo "Building profile binaries currently only supported for GCC and clang."
893 # Create DATAFILE_DIR #define for config.h
894 datafiledir=$datadir/wireshark
896 test "x$prefix" = xNONE && prefix=$ac_default_prefix
897 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
898 # Ugly hack, but I don't see how this problem can be solved
899 # properly that DATAFILE_DIR had a value starting with
900 # "${prefix}/" instead of e.g. "/usr/local/"
901 eval eval echo "$datafiledir"
903 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
905 # Create DOC_DIR #define for config.h
907 test "x$prefix" = xNONE && prefix=$ac_default_prefix
908 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
909 # Ugly hack, but I don't see how this problem can be solved
910 # properly that DOC_DIR had a value starting with
911 # "${prefix}/" instead of e.g. "/usr/local/"
912 eval eval echo "$docdir"
914 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
916 GTK2_MIN_VERSION=2.12.0
917 AC_SUBST(GTK2_MIN_VERSION)
918 GTK3_MIN_VERSION=3.0.0
919 AC_SUBST(GTK3_MIN_VERSION)
921 AC_SUBST(QT_MIN_VERSION)
922 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
923 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
925 # We only do those if we're going to be building Wireshark;
926 # otherwise, we don't have any GUI to build, so we don't use
929 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
930 # force all programs to be built with GTK+ or Qt.
932 # Release dates for GTK+ versions:
933 # 2.12.0: 14 Sep 2007
934 # 2.14.0: 04 Sep 2008
935 # 2.16.0: 13 Mar 2009
936 # 2.18.0: 23 Sep 2009
937 # 2.20.0: 23 Mar 2010
938 # 2.22.0: 23 Sep 2010
939 # 2.24.0: 30 Jan 2011
945 if test "x$enable_wireshark" = "xyes"; then
946 if test "x$with_qt" = "xyes"; then
948 AC_MSG_CHECKING(whether we have a working C++ compiler)
950 AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
951 [AC_MSG_RESULT(yes)],
954 AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
958 AM_PATH_QT($QT_MIN_VERSION,
960 CFLAGS="$CFLAGS $Qt_CFLAGS"
961 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
964 , [AC_MSG_ERROR([Qt is not available])])
967 # XXX - greasy hack to make ui/gtk/recent.c
970 CPPFLAGS="-DQT_GUI_LIB"
973 # We don't know whether we have GTK+, but we
974 # won't be using it, so it's as if we don't
980 # Not Qt - either GTK+ 3.x or 2.x.
982 if test "x$with_gtk3" = "xyes"; then
983 AM_PATH_GTK_3_0(3.0.0,
985 CFLAGS="$CFLAGS $GTK_CFLAGS"
986 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
988 AC_DEFINE(HAVE_GTK, 1,
989 [Define to 1 if compiling with GTK])
993 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
995 CFLAGS="$CFLAGS $GTK_CFLAGS"
996 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
998 AC_DEFINE(HAVE_GTK, 1,
999 [Define to 1 if compiling with GTK])
1008 GLIB_MIN_VERSION=2.14.0
1009 AC_SUBST(GLIB_MIN_VERSION)
1010 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1011 # support, as we need that for dynamically loading plugins.
1012 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1013 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1014 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
1015 # GLIB_CFLAGS to CFLAGS.
1016 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1017 # set when generating the Makefile, so we can make programs that require
1018 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1019 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1020 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1021 # programs to be built with GLib.
1023 # Release dates for GLib versions:
1024 # 2.14.0: 03 Aug 2007
1025 # 2.16.0: 10 Mar 2008
1026 # 2.18.0: 02 Sep 2008
1027 # 2.20.0: 13 Mar 2009
1028 # 2.22.0: 22 Sep 2009
1029 # 2.24.0: 28 Mar 2010
1030 # 2.26.0: 27 Sep 2010
1031 # 2.28.0: 08 Feb 2011
1032 # 2.30.0: 27 Sep 2011
1033 # 2.32.0: 24 Mar 2012
1034 # 2.34.0: 24 Sep 2012
1036 have_wireshark_cxx="false"
1037 if test "$have_gtk" = "no" ; then
1039 # We don't have GTK+.
1041 if test "$have_qt" = "yes" ; then
1043 # However, we do have Qt, and thus will be building
1044 # Wireshark (if the user had explicitly disabled
1045 # Wireshark, we wouldn't have looked for Qt, so we
1046 # wouldn't think we had it, and thus wouldn't be here).
1048 wireshark_bin="wireshark\$(EXEEXT)"
1049 # Give automake a hint that it needs to use c++ linking.
1050 have_wireshark_cxx="yes"
1051 wireshark_man="wireshark.1"
1052 wireshark_SUBDIRS="codecs ui/qt"
1055 # We don't have Qt, either, which means we have no UI
1058 # If they didn't explicitly say "--disable-wireshark",
1059 # fail (so that, unless they explicitly indicated that
1060 # they don't want Wireshark, we stop so they know they
1061 # won't be getting Wireshark unless they fix the GTK+/Qt
1064 if test "x$enable_wireshark" = "xyes"; then
1065 if test "x$with_gtk3" = "xyes"; then
1066 AC_MSG_ERROR([GTK+ $GTK3_MIN_VERSION or later isn't available, so Wireshark can't be compiled])
1068 AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1075 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1077 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1078 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1079 ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1082 # We have GTK+, and thus will be building Wireshark (if the user
1083 # had explicitly disabled Wireshark, we wouldn't have looked for
1084 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
1086 wireshark_bin="wireshark\$(EXEEXT)"
1087 wireshark_man="wireshark.1"
1088 wireshark_SUBDIRS="codecs ui/gtk"
1089 # Don't use GLIB_CFLAGS
1090 AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1092 CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1093 CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1094 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1095 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1096 if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1097 # Enable GSEAL when building with GTK > 2.20
1098 # (Versions prior to 2.22 lacked some necessary accessors.)
1099 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1104 # "make dist" requires that we have the Qt build tools.
1106 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1107 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1108 # installed; if they're still doing that in current Fedora releases,
1109 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1111 AC_PATH_PROG(UIC, uic)
1114 AC_PATH_PROG(UIC, uic-qt4)
1117 if test "x$with_qt" = "xyes"; then
1119 # If you want to build with Qt, you'd better
1122 AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1125 # We shouldn't fail here, as the user's not
1126 # building with Qt, and we shouldn't force them
1127 # to have Qt installed if they're not doing so.
1128 # "make dist" will fail if they do that, but
1129 # we don't know whether they'll be doing that,
1130 # so this is the best we can do.
1137 AC_PATH_PROG(MOC, moc)
1140 AC_PATH_PROG(MOC, moc-qt4)
1143 if test "x$with_qt" = "xyes"; then
1145 # If you want to build with Qt, you'd better
1148 AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1151 # We shouldn't fail here, as the user's not
1152 # building with Qt, and we shouldn't force them
1153 # to have Qt installed if they're not doing so.
1154 # "make dist" will fail if they do that, but
1155 # we don't know whether they'll be doing that,
1156 # so this is the best we can do.
1164 # Error out if a glib header other than a "top level" header
1165 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1167 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1169 # Error out on the usage of deprecated glib functions
1170 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1173 # Check whether GLib modules are supported, to determine whether we
1174 # can support plugins.
1176 AC_MSG_CHECKING(whether GLib supports loadable modules)
1177 ac_save_CFLAGS="$CFLAGS"
1178 ac_save_LIBS="$LIBS"
1179 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1180 LIBS="$GLIB_LIBS $LIBS"
1183 #include <gmodule.h>
1190 if (g_module_supported())
1191 return 0; /* success */
1193 return 1; /* failure */
1195 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1196 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1197 ac_cv_glib_supports_modules=yes])
1198 CFLAGS="$ac_save_CFLAGS"
1199 LIBS="$ac_save_LIBS"
1200 if test "$ac_cv_glib_supports_modules" = yes ; then
1209 # If we have <dlfcn.h>, check whether we can use dladdr to find a
1210 # filename (hopefully, a full pathname, but no guarantees) for
1213 if test "$ac_cv_header_dlfcn_h" = "yes"
1215 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1216 ac_save_CFLAGS="$CFLAGS"
1217 ac_save_LIBS="$LIBS"
1218 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1219 LIBS="$GLIB_LIBS $LIBS"
1221 #define _GNU_SOURCE /* required on Linux, sigh */
1229 if (!dladdr((void *)main, &info))
1230 return 1; /* failure */
1231 return 0; /* assume success */
1233 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1234 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1235 ac_cv_dladdr_finds_executable_path=yes])
1236 CFLAGS="$ac_save_CFLAGS"
1237 LIBS="$ac_save_LIBS"
1238 if test x$ac_cv_dladdr_finds_executable_path = xyes
1240 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1242 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1246 # Check whether GLib's printf supports thousands grouping. (This might
1247 # be different from the system's printf since GLib can optionally use
1248 # its own printf implementation.)
1250 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1251 ac_save_CFLAGS="$CFLAGS"
1252 ac_save_LIBS="$LIBS"
1253 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1254 LIBS="$GLIB_LIBS $LIBS"
1265 setlocale(LC_ALL, "en_US.UTF-8");
1266 str = g_strdup_printf("%'u", 123456);
1267 return (strcmp (str, "123,456") != 0);
1269 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1270 [echo $ac_n "cross compiling; playing it safe... $ac_c"
1271 ac_cv_glib_supports_printf_grouping=no])
1272 CFLAGS="$ac_save_CFLAGS"
1273 LIBS="$ac_save_LIBS"
1274 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1276 AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1281 if test "x$have_gtk" = "xyes"
1284 # We have GTK+; do we want the OS X integration functions and,
1285 # if so, do we have them and, if so, which versions do we have,
1286 # the old Carbon-based ones or the new Cocoa-based ones?
1288 AC_MSG_CHECKING(whether to use OS X integration functions)
1290 AC_ARG_WITH(osx-integration,
1291 AC_HELP_STRING( [--with-osx-integration],
1292 [use OS X integration functions @<:@default=yes, if available@:>@]),
1294 if test $withval = no
1296 want_osx_integration=no
1298 want_osx_integration=yes
1301 want_osx_integration=yes
1303 if test "x$want_osx_integration" = "xno"; then
1307 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1311 AC_SUBST(wireshark_bin)
1312 AC_SUBST(wireshark_man)
1313 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1314 AM_CONDITIONAL(HAVE_WIRESHARK_CXX, test "$have_wireshark_cxx" = "yes")
1317 # Enable/disable tshark
1319 AC_ARG_ENABLE(tshark,
1320 AC_HELP_STRING( [--enable-tshark],
1321 [build TShark @<:@default=yes@:>@]),
1322 tshark=$enableval,enable_tshark=yes)
1324 if test "x$enable_tshark" = "xyes" ; then
1325 tshark_bin="tshark\$(EXEEXT)"
1326 tshark_man="tshark.1"
1327 wiresharkfilter_man="wireshark-filter.4"
1332 AC_SUBST(tshark_bin)
1333 AC_SUBST(tshark_man)
1334 AC_SUBST(wiresharkfilter_man)
1338 # Enable/disable editcap
1340 AC_ARG_ENABLE(editcap,
1341 AC_HELP_STRING( [--enable-editcap],
1342 [build editcap @<:@default=yes@:>@]),
1343 enable_editcap=$enableval,enable_editcap=yes)
1345 if test "x$enable_editcap" = "xyes" ; then
1346 editcap_bin="editcap\$(EXEEXT)"
1347 editcap_man="editcap.1"
1352 AC_SUBST(editcap_bin)
1353 AC_SUBST(editcap_man)
1355 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1358 # Enable/disable capinfos
1360 AC_ARG_ENABLE(capinfos,
1361 AC_HELP_STRING( [--enable-capinfos],
1362 [build capinfos @<:@default=yes@:>@]),
1363 enable_capinfos=$enableval,enable_capinfos=yes)
1365 if test "x$enable_capinfos" = "xyes" ; then
1366 capinfos_bin="capinfos\$(EXEEXT)"
1367 capinfos_man="capinfos.1"
1372 AC_SUBST(capinfos_bin)
1373 AC_SUBST(capinfos_man)
1376 # Enable/disable mergecap
1378 AC_ARG_ENABLE(mergecap,
1379 AC_HELP_STRING( [--enable-mergecap],
1380 [build mergecap @<:@default=yes@:>@]),
1381 enable_mergecap=$enableval,enable_mergecap=yes)
1383 if test "x$enable_mergecap" = "xyes" ; then
1384 mergecap_bin="mergecap\$(EXEEXT)"
1385 mergecap_man="mergecap.1"
1390 AC_SUBST(mergecap_bin)
1391 AC_SUBST(mergecap_man)
1394 # Enable/disable reordercap
1396 AC_ARG_ENABLE(reordercap,
1397 AC_HELP_STRING( [--enable-reordercap],
1398 [build reordercap @<:@default=yes@:>@]),
1399 enable_reordercap=$enableval,enable_reordercap=yes)
1401 if test "x$enable_reordercap" = "xyes" ; then
1402 reordercap_bin="reordercap\$(EXEEXT)"
1403 reordercap_man="reordercap.1"
1408 AC_SUBST(reordercap_bin)
1409 AC_SUBST(reordercap_man)
1412 # Enable/disable text2pcap
1414 AC_ARG_ENABLE(text2pcap,
1415 AC_HELP_STRING( [--enable-text2pcap],
1416 [build text2pcap @<:@default=yes@:>@]),
1417 text2pcap=$enableval,enable_text2pcap=yes)
1419 if test "x$enable_text2pcap" = "xyes" ; then
1420 text2pcap_bin="text2pcap\$(EXEEXT)"
1421 text2pcap_man="text2pcap.1"
1426 AC_SUBST(text2pcap_bin)
1427 AC_SUBST(text2pcap_man)
1430 # Enable/disable dftest
1432 AC_ARG_ENABLE(dftest,
1433 AC_HELP_STRING( [--enable-dftest],
1434 [build dftest @<:@default=yes@:>@]),
1435 enable_dftest=$enableval,enable_dftest=yes)
1437 if test "x$enable_dftest" = "xyes" ; then
1438 dftest_bin="dftest\$(EXEEXT)"
1439 dftest_man="dftest.1"
1444 AC_SUBST(dftest_bin)
1445 AC_SUBST(dftest_man)
1448 # Enable/disable randpkt
1450 AC_ARG_ENABLE(randpkt,
1451 AC_HELP_STRING( [--enable-randpkt],
1452 [build randpkt @<:@default=yes@:>@]),
1453 enable_randpkt=$enableval,enable_randpkt=yes)
1455 if test "x$enable_randpkt" = "xyes" ; then
1456 randpkt_bin="randpkt\$(EXEEXT)"
1457 randpkt_man="randpkt.1"
1462 AC_SUBST(randpkt_bin)
1463 AC_SUBST(randpkt_man)
1467 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1468 dnl "gethostbyname()".
1469 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1471 dnl Checks for "connect()", used as a proxy for "socket()" - and
1472 dnl "-lsocket", if we need it to get "connect()".
1473 AC_WIRESHARK_SOCKET_LIB_CHECK
1476 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1479 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1480 [use libpcap for packet capturing @<:@default=yes@:>@]),
1482 if test $withval = no
1485 elif test $withval = yes
1496 if test "x$want_pcap" = "xno" ; then
1500 AC_WIRESHARK_PCAP_CHECK
1504 dnl Check for airpcap
1505 AC_MSG_CHECKING(whether to include airpcap support)
1506 AC_ARG_ENABLE(airpcap,
1507 AC_HELP_STRING( [--enable-airpcap],
1508 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1509 enable_airpcap=$enableval, enable_airpcap=yes)
1511 if test x$enable_airpcap = xyes; then
1512 if test "x$want_pcap" = "xno" ; then
1514 AC_MSG_RESULT(pcap not available - disabling airpcap)
1517 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1525 AC_MSG_CHECKING(whether to build dumpcap)
1527 AC_ARG_ENABLE(dumpcap,
1528 AC_HELP_STRING( [--enable-dumpcap],
1529 [build dumpcap @<:@default=yes@:>@]),
1530 enable_dumpcap=$enableval,enable_dumpcap=yes)
1532 if test "x$enable_dumpcap" = "xyes" ; then
1533 if test "x$want_pcap" = "xno" ; then
1535 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1543 if test "x$enable_dumpcap" = "xyes" ; then
1544 dumpcap_bin="dumpcap\$(EXEEXT)"
1545 dumpcap_man="dumpcap.1"
1550 AC_SUBST(dumpcap_bin)
1551 AC_SUBST(dumpcap_man)
1553 # Enable/disable rawshark
1556 AC_MSG_CHECKING(whether to build rawshark)
1558 AC_ARG_ENABLE(rawshark,
1559 AC_HELP_STRING( [--enable-rawshark],
1560 [build rawshark @<:@default=yes@:>@]),
1561 rawshark=$enableval,enable_rawshark=yes)
1563 if test "x$enable_rawshark" = "xyes" ; then
1564 if test "x$want_pcap" = "xno" ; then
1566 AC_MSG_RESULT(pcap not available - disabling rawshark)
1574 if test "x$enable_rawshark" = "xyes" ; then
1575 rawshark_bin="rawshark\$(EXEEXT)"
1576 rawshark_man="rawshark.1"
1581 AC_SUBST(rawshark_bin)
1582 AC_SUBST(rawshark_man)
1584 dnl Use pcap-ng by default
1585 AC_ARG_ENABLE(pcap-ng-default,
1586 AC_HELP_STRING( [--enable-pcap-ng-default],
1587 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1588 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1589 if test x$enable_pcap_ng_default = xyes; then
1590 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1593 dnl pcap remote check
1594 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1596 AC_ARG_WITH(pcap-remote,
1597 AC_HELP_STRING([--with-pcap-remote],
1598 [use libpcap remote capturing (requires libpcap)]),
1600 if test $withval = no
1604 want_pcap_remote=yes
1609 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1613 AC_WIRESHARK_PCAP_REMOTE_CHECK
1617 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1620 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1621 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1623 if test "x$withval" = "xno"
1626 elif test "x$withval" = "xyes"
1635 # Use zlib if it's present, otherwise don't.
1637 want_zlib=ifavailable
1640 if test "x$want_zlib" = "xno" ; then
1644 AC_WIRESHARK_ZLIB_CHECK
1645 if test "x$want_zlib" = "xno" ; then
1646 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1648 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1649 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1655 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1658 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1659 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1661 if test $withval = no
1664 elif test $withval = yes
1673 # Use liblua by default
1675 want_lua=ifavailable
1678 if test "x$want_lua" = "xno" ; then
1682 AC_WIRESHARK_LIBLUA_CHECK
1683 if test "x$want_lua" = "xno" ; then
1684 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1687 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1691 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1693 AC_ARG_WITH(portaudio,
1694 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1695 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1697 if test $withval = no
1700 elif test $withval = yes
1705 portaudio_dir=$withval
1709 # Use libportaudio by default
1711 want_portaudio=ifavailable
1714 if test "x$want_portaudio" = "xno" ; then
1718 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1719 if test "x$want_portaudio" = "xno" ; then
1720 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1723 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1728 AC_HELP_STRING( [--enable-ipv6],
1729 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1730 enable_ipv6=$enableval,enable_ipv6=yes)
1732 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1733 if test "x$enable_ipv6" = "xno" ; then
1737 AC_WIRESHARK_IPV6_STACK
1741 dnl Check if dumpcap should be installed with filesystem capabilities
1742 AC_PATH_PROG(SETCAP, setcap)
1743 AC_ARG_ENABLE(setcap-install,
1744 AC_HELP_STRING( [--enable-setcap-install],
1745 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1746 enable_setcap_install=$enableval,enable_setcap_install=no)
1748 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1749 if test "x$enable_setcap_install" = "xno" ; then
1752 if test "x$SETCAP" = "x" ; then
1753 AC_MSG_RESULT(no. Setcap not found)
1754 elif test "x$enable_dumpcap" = "xno" ; then
1755 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1761 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1763 dnl Check if dumpcap should be installed setuid
1764 AC_ARG_ENABLE(setuid-install,
1765 AC_HELP_STRING( [--enable-setuid-install],
1766 [install dumpcap as setuid @<:@default=no@:>@]),
1767 enable_setuid_install=$enableval,enable_setuid_install=no)
1769 AC_MSG_CHECKING(whether to install dumpcap setuid)
1770 if test "x$enable_setuid_install" = "xno" ; then
1773 if test "x$enable_setcap_install" = "xyes" ; then
1774 enable_setuid_install=no
1775 AC_MSG_RESULT(no; using setcap instead)
1776 elif test "x$enable_dumpcap" = "xno" ; then
1777 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1783 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1784 AC_CHECK_FUNCS(setresuid setresgid)
1786 dnl ...but our Network Operations group is named "no"!
1788 AC_ARG_WITH(dumpcap-group,
1789 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1790 [restrict dumpcap to GROUP]),
1792 if test "x$withval" = "xyes"; then
1793 AC_MSG_ERROR([No dumpcap group specified.])
1794 elif test "x$withval" != "xno"; then
1795 if test "x$enable_dumpcap" = "xno" ; then
1796 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1798 AC_MSG_RESULT($withval)
1799 DUMPCAP_GROUP="$withval"
1802 AC_SUBST(DUMPCAP_GROUP)
1803 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1805 dnl libcap (not libpcap) check
1807 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1810 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1811 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1813 if test "x$withval" = "xno"; then
1815 elif test "x$withval" = "xyes"; then
1817 elif test -d "$withval"; then
1819 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1822 if test "x$with_libcap" = "xno" ; then
1826 AC_WIRESHARK_LIBCAP_CHECK
1828 AC_SUBST(LIBCAP_LIBS)
1830 dnl Checks for header files.
1831 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1832 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)
1833 AC_CHECK_HEADERS(netinet/in.h)
1834 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1838 AC_MSG_CHECKING(whether to use SSL library)
1841 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1842 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1844 if test "x$withval" = "xno"; then
1846 elif test "x$withval" = "xyes"; then
1848 elif test -d "$withval"; then
1850 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1855 if test "x$want_ssl" = "xyes"; then
1857 AC_CHECK_LIB(crypto,EVP_md5,
1862 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1870 AC_MSG_CHECKING(whether to use Kerberos library)
1873 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1874 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1876 if test $withval = no
1879 elif test $withval = yes
1888 # Use Kerberos library if available, otherwise don't.
1890 want_krb5=ifavailable
1893 if test "x$want_krb5" = "xno" ; then
1897 AC_WIRESHARK_KRB5_CHECK
1903 AC_MSG_CHECKING(whether to use the c-ares library if available)
1906 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1907 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
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)
1918 if test "x$want_c_ares" = "xno" ; then
1922 AC_WIRESHARK_C_ARES_CHECK
1924 AC_SUBST(C_ARES_LIBS)
1928 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1931 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1932 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1934 if test "x$withval" = "xno"; then
1936 elif test "x$withval" = "xyes"; then
1938 elif test -d "$withval"; then
1940 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1943 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1947 AC_WIRESHARK_ADNS_CHECK
1953 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1956 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1957 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1959 if test "x$withval" = "xno"; then
1961 elif test "x$withval" = "xyes"; then
1963 elif test -d "$withval"; then
1965 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1968 if test "x$want_geoip" = "xno"; then
1972 AC_WIRESHARK_GEOIP_CHECK
1974 AC_SUBST(GEOIP_LIBS)
1976 dnl Python devel Check
1977 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1980 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1981 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
1983 pythondir='${libdir}/wireshark/python/${VERSION}'
1984 if test "x$withval" = "xno"
1987 elif test "x$withval" = "xyes"
1992 pythondir="$withval"
1995 # By default (user didn't explicitly enable Python), don't enable
1999 #pythondir='${libdir}/wireshark/python/${VERSION}'
2001 if test "x$want_python" = "xno" ; then
2005 AC_WIRESHARK_PYTHON_CHECK
2007 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
2011 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2012 # never return (just like Charlie on the MTA).
2014 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2015 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2016 # follow the function name, so we need two different flavors of
2019 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2021 dnl Checks for typedefs, structures, and compiler characteristics.
2024 # Check how we can get the time zone abbreviation
2025 AC_WIRESHARK_TIMEZONE_ABBREV
2027 # We need to know whether "struct stat" has an "st_flags" member
2028 # for file_user_immutable().
2030 AC_WIRESHARK_STRUCT_ST_FLAGS
2032 # We need to know whether "struct sockaddr" has an "sa_len" member
2033 # for get_interface_list().
2035 AC_WIRESHARK_STRUCT_SA_LEN
2037 # We must know our byte order
2040 # Checks whether "-traditional" is needed when using "ioctl".
2041 # XXX - do we need this?
2042 AC_PROG_GCC_TRADITIONAL
2045 AC_CHECK_FUNC(getopt,
2047 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2049 GETOPT_LO="wsgetopt.lo"
2051 if test "$ac_cv_func_getopt" = no ; then
2052 GETOPT_LO="wsgetopt.lo"
2054 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2057 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2058 STRNCASECMP_LO="strncasecmp.lo")
2059 if test "$ac_cv_func_strncasecmp" = no ; then
2060 STRNCASECMP_LO="strncasecmp.lo"
2062 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2063 AC_SUBST(STRNCASECMP_LO)
2065 AC_CHECK_FUNCS(mkstemp mkdtemp)
2067 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2069 if test "$have_inet_aton" = no; then
2070 INET_ATON_LO="inet_aton.lo"
2071 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
2075 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2076 AC_SUBST(INET_ATON_LO)
2078 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2079 dnl check for pre-BIND82 inet_pton() bug.
2080 AC_MSG_CHECKING(for broken inet_pton)
2081 AC_TRY_RUN([#include <sys/types.h>
2082 #include <sys/socket.h>
2083 #include <netinet/in.h>
2084 #include <arpa/inet.h>
2089 /* this should return 0 (error) */
2090 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2094 }], [AC_MSG_RESULT(ok);
2095 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2096 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2097 have_inet_pton=no])],
2099 if test "$have_inet_pton" = no; then
2100 INET_PTON_LO="inet_pton.lo"
2104 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2105 AC_SUBST(INET_PTON_LO)
2107 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2108 AC_MSG_CHECKING([for inet_ntop prototype])
2109 AC_TRY_COMPILE([#include <stdio.h>
2110 #include <sys/types.h>
2111 #include <sys/socket.h>
2112 #include <netinet/in.h>
2113 #include <arpa/inet.h>
2115 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2117 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2118 [Define if inet_ntop() prototype exists])], [
2119 AC_TRY_COMPILE([#include <stdio.h>
2120 #include <sys/types.h>
2121 #include <sys/socket.h>
2122 #include <netinet/in.h>
2123 #include <arpa/inet.h>
2125 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2127 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2128 [Define if inet_ntop() prototype exists])], [
2129 AC_MSG_RESULT(no)])])
2131 INET_NTOP_LO="inet_ntop.lo"
2132 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2133 [Define if inet/v6defs.h needs to be included])])
2134 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2135 AC_SUBST(INET_NTOP_LO)
2137 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2138 [STRPTIME_LO="strptime.lo"
2139 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2141 if test "$ac_cv_func_strptime" = no ; then
2142 STRPTIME_LO="strptime.lo"
2144 AC_SUBST(STRPTIME_C)
2145 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2146 AC_SUBST(STRPTIME_LO)
2148 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2149 AC_CHECK_FUNCS(issetugid)
2150 AC_CHECK_FUNCS(mmap mprotect sysconf)
2151 AC_CHECK_FUNCS(strtoll)
2153 dnl blank for now, but will be used in future
2154 AC_SUBST(wireshark_SUBDIRS)
2157 dnl check whether plugins should be enabled and, if they should be,
2158 dnl check for plugins directory - stolen from Amanda's configure.ac
2160 dnl we don't wish to expand ${libdir} yet
2161 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2162 AC_ARG_WITH(plugins,
2163 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2164 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2166 if test "x$withval" = "xno"; then
2168 elif test "x$have_plugins" = "xno"; then
2169 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2170 elif test "x$withval" != "xyes"; then
2171 plugindir="$withval"
2174 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2175 if test x$have_plugins = xyes
2177 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2180 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
2183 # The plugin dissectors reside in ./plugins/PROTO/
2186 AC_SUBST(PLUGIN_LIBS)
2189 # Check if (emem) memory allocations must be 8-byte aligned.
2190 # I haven't been able to write C code that reliably makes that determination
2191 # (different versions of GCC with or without optimization give different
2192 # results) so just assume everything except (32-bit) x86 needs 8-byte
2193 # alignment (64-bit platforms either require 8-byte alignment for pointers
2194 # and 64-bit integral data types or may get better performance from that;
2195 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway. 32-bit
2196 # platforms would only require it, or get better performance from it,
2197 # for 64-bit floating-point values.).
2199 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2201 i386|i486|i586|i686)
2206 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2212 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2213 # (autoconf? automake? libtool?) - with the newer version(s), it's
2214 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2216 # With older version(s) of those tool(s), however, it's not just an
2217 # alias, and the configure scripts don't work without it.
2220 AC_SUBST(LIBTOOL_DEPS)
2222 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2223 if test x$enable_static = xyes -a x$have_plugins = xyes
2225 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2227 AC_SUBST(ENABLE_STATIC)
2229 dnl Save the cacheable configure results to config.cache before recursing
2232 sinclude(plugins/Custom.m4) dnl
2233 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2235 sinclude(asn1/Custom.m4) dnl
2236 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2238 AC_CONFIG_HEADERS(config.h)
2243 _CUSTOM_ASN1_AC_OUTPUT_
2244 asn1/acp133/Makefile
2246 asn1/ansi_map/Makefile
2247 asn1/ansi_tcap/Makefile
2251 asn1/charging_ase/Makefile
2256 asn1/credssp/Makefile
2265 asn1/gprscdr/Makefile
2266 asn1/gsm_map/Makefile
2275 asn1/h450-ros/Makefile
2278 asn1/HI2Operations/Makefile
2282 asn1/isdn-sup/Makefile
2283 asn1/kerberos/Makefile
2286 asn1/logotypecertextn/Makefile
2290 asn1/lte-rrc/Makefile
2293 asn1/mpeg-audio/Makefile
2294 asn1/mpeg-pes/Makefile
2296 asn1/ns_cert_exts/Makefile
2304 asn1/pkcs12/Makefile
2305 asn1/pkinit/Makefile
2306 asn1/pkixac/Makefile
2307 asn1/pkix1explicit/Makefile
2308 asn1/pkix1implicit/Makefile
2309 asn1/pkixproxy/Makefile
2310 asn1/pkixqualified/Makefile
2311 asn1/pkixtsp/Makefile
2314 asn1/q932-ros/Makefile
2325 asn1/sbc-ap/Makefile
2328 asn1/spnego/Makefile
2336 asn1/wlancertextn/Makefile
2338 asn1/x509af/Makefile
2339 asn1/x509ce/Makefile
2340 asn1/x509if/Makefile
2341 asn1/x509sat/Makefile
2348 epan/dfilter/Makefile
2349 epan/dissectors/Makefile
2350 epan/dissectors/dcerpc/Makefile
2351 epan/dissectors/pidl/Makefile
2352 epan/ftypes/Makefile
2355 epan/wspython/Makefile
2366 packaging/macosx/Info.plist
2367 packaging/macosx/Makefile
2368 packaging/macosx/osx-dmg.sh
2369 packaging/nsis/Makefile
2370 packaging/rpm/Makefile
2371 packaging/rpm/SPECS/Makefile
2372 packaging/rpm/SPECS/wireshark.spec
2373 packaging/svr4/Makefile
2374 packaging/svr4/checkinstall
2375 packaging/svr4/pkginfo
2377 plugins/asn1/Makefile
2378 plugins/docsis/Makefile
2379 plugins/ethercat/Makefile
2380 plugins/gryphon/Makefile
2381 plugins/irda/Makefile
2382 plugins/m2m/Makefile
2383 plugins/mate/Makefile
2384 plugins/opcua/Makefile
2385 plugins/profinet/Makefile
2386 plugins/stats_tree/Makefile
2387 plugins/unistim/Makefile
2388 plugins/wimax/Makefile
2389 plugins/wimaxasncp/Makefile
2390 plugins/wimaxmacphy/Makefile
2392 tools/lemon/Makefile
2397 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2402 if test "x$have_qt" = "xyes"; then
2403 gui_lib_message=" (with Qt)"
2405 if test "x$have_gtk" = "xyes"; then
2406 if test "x$with_gtk3" = "xyes"; then
2407 gui_lib_message=" (with GTK+ 3"
2409 gui_lib_message=" (with GTK+ 2"
2411 if test "x$have_ige_mac" = "xyes"; then
2412 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2414 gui_lib_message="$gui_lib_message)"
2419 if test "x$enable_setcap_install" = "xyes" ; then
2420 setcap_message="yes"
2425 if test "x$enable_setuid_install" = "xyes" ; then
2426 setuid_message="yes"
2431 if test "x$DUMPCAP_GROUP" = "x" ; then
2432 dumpcap_group_message="(none)"
2434 dumpcap_group_message="$DUMPCAP_GROUP"
2437 if test "x$want_zlib" = "xno" ; then
2443 if test "x$want_lua" = "xyes" ; then
2449 if test "x$want_python" = "xno"; then
2452 python_message="yes"
2455 if test "x$want_portaudio" = "xyes" ; then
2456 portaudio_message="yes"
2458 portaudio_message="no"
2461 if test "x$want_ssl" = "xno" ; then
2467 if test "x$want_krb5" = "xno" ; then
2470 krb5_message="yes ($ac_krb5_version)"
2473 if test "x$have_good_c_ares" = "xyes" ; then
2474 c_ares_message="yes"
2479 if test "x$have_good_adns" = "xyes" ; then
2482 if test "x$have_good_c_ares" = "xyes" ; then
2483 adns_message="no (using c-ares instead)"
2489 if test "x$have_good_libcap" = "xyes" ; then
2490 libcap_message="yes"
2495 if test "x$have_good_geoip" = "xyes" ; then
2502 echo "The Wireshark package has been configured with the following options."
2503 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2504 echo " Build tshark : $enable_tshark"
2505 echo " Build capinfos : $enable_capinfos"
2506 echo " Build editcap : $enable_editcap"
2507 echo " Build dumpcap : $enable_dumpcap"
2508 echo " Build mergecap : $enable_mergecap"
2509 echo " Build reordercap : $enable_reordercap"
2510 echo " Build text2pcap : $enable_text2pcap"
2511 echo " Build randpkt : $enable_randpkt"
2512 echo " Build dftest : $enable_dftest"
2513 echo " Build rawshark : $enable_rawshark"
2515 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2516 echo " Install dumpcap with capabilities : $setcap_message"
2517 echo " Install dumpcap setuid : $setuid_message"
2518 echo " Use dumpcap group : $dumpcap_group_message"
2519 echo " Use plugins : $have_plugins"
2520 echo " Use Lua library : $lua_message"
2521 echo " Use Python binding : $python_message"
2522 echo " Build rtp_player : $portaudio_message"
2523 echo " Build profile binaries : $enable_profile_build"
2524 echo " Use pcap library : $want_pcap"
2525 echo " Use zlib library : $zlib_message"
2526 echo " Use kerberos library : $krb5_message"
2527 echo " Use c-ares library : $c_ares_message"
2528 echo " Use GNU ADNS library : $adns_message"
2529 echo " Use SMI MIB library : $libsmi_message"
2530 echo " Use GNU crypto library : $gcrypt_message"
2531 echo " Use SSL crypto library : $ssl_message"
2532 echo " Use IPv6 name resolution : $enable_ipv6"
2533 echo " Use gnutls library : $tls_message"
2534 echo " Use POSIX capabilities library : $libcap_message"
2535 echo " Use GeoIP library : $geoip_message"
2536 echo " Use nl library : $libnl_message"