5 AC_INIT(wireshark, 1.7.1)
7 dnl Check for CPU / vendor / OS
8 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
9 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
10 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
13 dnl As nothing in the Wireshark is itself a build tool (we are not,
14 dnl for example, a compiler that generates machine code), we probably
15 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
16 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
17 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
18 dnl lemon, that need to be built for the build machine, not for the
19 dnl host machine, so we might need both.
21 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
23 dnl AC_CANONICAL_BUILD
27 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
31 dnl Checks for programs.
36 dnl Work around libtool bug (fixed in the version 1.5a?)
37 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
40 AC_PATH_PROG(PERL, perl)
42 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
43 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
44 # as the tarball should contain the results of running YACC/Bison on .y
45 # files and running Flex on .l files, but a user building from SVN
46 # will have to run YACC/Bison and Flex to process those files.
48 # On the other hand, what about users who use a distribution tarball to
49 # do development? They *shouldn't* - that's what the SVN repository is
50 # for - but they might. They'd get errors if they modify a .y or .l
51 # file and try to do a build - but the error should tell them that they
52 # need to get YACC/Bison and/or Flex.
54 # Then again, getting them shouldn't be too big of a burden.
56 # XXX - is the same true of pod2man and pod2html, or are they needed
57 # even when building from a distribution tarball?
61 AC_PATH_PROG(YACCDUMMY, $YACC)
62 if test "x$YACCDUMMY" = x
64 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
67 AC_PATH_PROG(LEX, flex)
70 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
72 AC_PATH_PROG(POD2MAN, pod2man)
73 if test "x$POD2MAN" = x
76 # The alternative is not to build the man pages....
78 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
80 AC_PATH_PROG(POD2HTML, pod2html)
81 if test "x$POD2HTML" = x
84 # The alternative is not to build the HTML man pages....
86 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
90 # XXX - this looks for various HTML viewers on the host, not the target;
91 # we really want to know what's available on the target, for cross-builds.
92 # That would probably require us to, at run time, look for xdg-open and,
93 # if we don't find it, look for mozilla, htmlview, etc.
95 AC_PATH_PROG(HTML_VIEWER, xdg-open)
96 if test "x$HTML_VIEWER" != x
99 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
100 # Define some variable to be that, so we just run that?
102 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
105 # XXX - we have to define HTML_VIEWER for the prefs.c code that
106 # sets the default value of the Web browser preference, even
107 # though that preference won't be offered.
109 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
111 AC_PATH_PROG(HTML_VIEWER, htmlview)
112 if test "x$HTML_VIEWER" = x
114 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
116 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
120 AC_PATH_PROG(PYTHON, python)
131 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
132 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
133 # we assume GCC and clang do; other compilers should be added here.
135 # This is done to avoid getting tripped up by compilers that support
136 # those flags but give them a different meaning.
138 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
139 ac_supports_gcc_flags=yes
143 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
144 # support "-Wl,{options}" to pass options through to the linker.
145 # Currently, we assume GCC, xlc, and clang do; other compilers should
148 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
149 ac_supports_W_linker_passthrough=yes
153 # Set "ac_supports_attribute_unused" if the compiler is known to
154 # support "__attribute__(unused)".
155 # Currently, we assume GCC and clang do; other compilers should
158 # XXX - do this with a compiler test?
160 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
161 ac_supports_W_linker_passthrough=yes
164 if test "x$CC_FOR_BUILD" = x
168 AC_SUBST(CC_FOR_BUILD)
171 AC_PATH_PROG(DOXYGEN, doxygen)
172 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
173 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
176 # Try to arrange for large file support.
182 AC_ARG_WITH([gnutls],
183 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
184 [use GnuTLS library @<:@default=yes@:>@]),
185 with_gnutls="$withval", with_gnutls="yes")
186 if test "x$with_gnutls" = "xyes"; then
187 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
189 echo "GnuTLS found, enabling SSL decryption"
190 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
194 echo "GnuTLS not found, disabling SSL decryption"
202 AC_ARG_WITH([gcrypt],
203 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
204 [use gcrypt library @<:@default=yes@:>@]),
205 with_gcrypt="$withval", with_gcrypt="yes")
206 if test "x$with_gcrypt" = "xyes"; then
207 AM_PATH_LIBGCRYPT(1.1.92,
209 echo "libgcrypt found, enabling ipsec decryption"
210 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
214 if test x$libgcrypt_config_prefix != x ; then
215 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
217 echo "libgcrypt not found, disabling ipsec decryption"
225 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
226 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
227 with_gtk3="$withval", with_gtk="no")
231 # FIXME: currently the path argument to with-libsmi is being ignored
235 AC_PATH_PROG(XSLTPROC, xsltproc)
236 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
237 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
240 AC_PATH_PROG(XMLLINT, xmllint)
241 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
242 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
244 # Check for fop (translate .fo to e.g. pdf)
245 AC_PATH_PROG(FOP, fop)
246 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
247 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
250 # Look for something to convert HTML to text (for docbook/)
252 AC_PATH_PROG(ELINKS, elinks)
253 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
254 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
256 ## links: Fails as used in docbook/Makefile.am
257 ## (Rather than fixing things we'll just disable the use of links).
258 ##AC_PATH_PROG(LINKS, links)
259 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
260 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
262 AC_PATH_PROG(LYNX, lynx)
263 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
264 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
267 # Check for hhc (html help compiler)
268 AC_PATH_PROG(HHC, hhc.exe)
269 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
270 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
272 # Check for packaging utilities
273 # For now, we check to see if the various packaging utilites are in our
274 # path. I'm too lazy to write code to go hunt for them. - Gerald
277 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
278 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
279 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
281 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
282 -a x$HAVE_PKGTRANS = xyes ; then
283 HAVE_SVR4_PACKAGING=yes
285 HAVE_SVR4_PACKAGING=no
287 AC_SUBST(HAVE_SVR4_PACKAGING)
290 AC_WIRESHARK_RPM_CHECK
294 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
297 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
298 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
299 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
301 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
302 -a x$HAVE_BLESS = xyes ; then
303 HAVE_OSX_PACKAGING=yes
305 HAVE_OSX_PACKAGING=no
307 AC_SUBST(HAVE_OSX_PACKAGING)
310 # Try to add some additional gcc checks to CFLAGS
312 AC_ARG_ENABLE(extra-gcc-checks,
313 AC_HELP_STRING( [--enable-extra-gcc-checks],
314 [do additional -W checks in GCC @<:@default=no@:>@]),
316 wireshark_extra_gcc_flags=$enableval
317 if test $enableval != no
319 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
320 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
321 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
322 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
323 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
324 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
325 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
326 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
327 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
328 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
329 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
330 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
331 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
332 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
333 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
334 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
335 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
336 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
337 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
338 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
339 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
341 # epan/dissectors/packet-ncp2222.inc blocks this one
344 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
346 # GLib blocks this for now.
348 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
350 # All the registration functions block these for now.
352 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
353 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
355 # epan/dissectors/packet-afs.c blocks this one for now.
357 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
359 # More cleanup needed for this on LP64.
361 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
364 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
365 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
366 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
367 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
368 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
369 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
370 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
371 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
372 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
373 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition)
374 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable) ## for now
376 # Use the faster pre gcc 4.5 floating point precision if available;
377 # clang doesn't error out on -f options that it doesn't know about,
378 # it just warns and ignores them, so this check doesn't cause us
379 # to omit -fexcess-precision=fast, which produces a pile of
382 if test "x$CC" != "xclang" ; then
383 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
386 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
387 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
388 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
389 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
390 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
391 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
394 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
395 # CFLAGS as well, so we can use _U_ to flag unused function arguments and
396 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
397 # to flag an unused function argument will compile with non-GCC, non-clang
400 # XXX - other compilers?
402 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
403 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
405 CFLAGS="-D_U_=\"\" $CFLAGS"
408 # If we're running GCC or CLang, always use FORTIFY_SOURCE=2
409 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
410 # Note: FORTIFY_SOURCE is only effective for gcc -O2 (and -O1 ?)
411 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
412 CFLAGS="-D_FORTIFY_SOURCE=2 $CFLAGS"
416 # If the compiler supports GCC-style flags, enable a barrier "stop on
418 # This barrier is set for a very large part of the code. However, it is
419 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
421 warnings_as_errors_default="yes"
422 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
423 AC_ARG_ENABLE(warnings-as-errors,
424 AC_HELP_STRING( [--enable-warnings-as-errors],
425 [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]),
427 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
428 with_warnings_as_errors="yes"
431 with_warnings_as_errors="no"
435 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
436 with_warnings_as_errors="yes"
439 with_warnings_as_errors="no"
443 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
446 # Add any platform-specific compiler flags needed.
448 AC_MSG_CHECKING(for platform-specific compiler flags)
449 if test "x$GCC" = "xyes" ; then
451 # GCC - do any platform-specific tweaking necessary.
455 # the X11 headers don't automatically include prototype info
456 # and a lot don't include the return type
457 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
458 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
462 # See comments above about Apple's lovely C compiler.
464 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
465 # defines __GNUC__"; clang defines __GNUC__, so that
466 # means we think clang is GCC.
468 # clang whines about -no-cpp-precomp being unused
469 # so we check whether this is really clang, and
470 # only add -no-cpp-precomp if it's not.
472 if test "x$CC" != "xclang" ; then
473 CFLAGS="-no-cpp-precomp $CFLAGS"
474 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
477 # Clang, clang, clang went the trolley....
479 AC_MSG_RESULT(none needed)
483 AC_MSG_RESULT(none needed)
488 # Not GCC - assume it's the vendor's compiler.
493 # HP's ANSI C compiler; flags suggested by Jost Martin.
494 # "-Ae" for ANSI C plus extensions such as "long long".
495 # "+O2", for optimization. XXX - works with "-g"?
497 CFLAGS="-Ae +O2 $CFLAGS"
498 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
502 # It may be called "cc", but it's really a GCC derivative
503 # with a problematic special precompiler and precompiled
504 # headers; turn off the special precompiler, as some
505 # apparently-legal code won't compile with its precompiled
508 # On the other hand, if it's called "clang", it's not a
509 # GCC derivative, and it whines if you pass it
512 # XXX - is there any version of autoconf we support
513 # where it uses another way to decide if the compiler
516 if test "x$CC" != "xclang" ; then
517 CFLAGS="-no-cpp-precomp $CFLAGS"
518 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
521 # Clang, clang, clang went the trolley....
523 AC_MSG_RESULT(none needed)
527 AC_MSG_RESULT(none needed)
533 # Add any platform-specific linker flags needed.
535 AC_MSG_CHECKING(for platform-specific linker flags)
539 # Add -Wl,-single_module to the LDFLAGS used with shared
540 # libraries, to fix some error that show up in some cases;
541 # some Apple documentation recommends it for most shared
544 LDFLAGS_SHAREDLIB="-Wl,-single_module"
546 # Add -Wl,-search_paths_first to make sure that if we search
547 # directories A and B, in that order, for a given library, a
548 # non-shared version in directory A, rather than a shared
549 # version in directory B, is chosen (so we can use
550 # --with-pcap=/usr/local to force all programs to be linked
551 # with a static version installed in /usr/local/lib rather than
552 # the system version in /usr/lib).
554 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
555 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
559 # Shared libraries in cygwin/Win32 must never contain
562 LDFLAGS="$LDFLAGS -no-undefined"
563 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
566 AC_MSG_RESULT(none needed)
569 AC_SUBST(LDFLAGS_SHAREDLIB)
571 # Control silent compiling
572 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
575 # On OS X, if we find the headers for Core Foundation, Launch Services,
576 # and Core Services, add -framework options to link with Application
577 # Services (of which Launch Services is a subframework), Core Foundation
578 # (required by the Launch Services APIs), and Core Services, so we can
579 # use them to launch a Web browser from the Help menu and to use
580 # Gestalt() to get the Mac OS X version number.
585 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
587 ac_coreservices_frameworks="-framework CoreServices"
588 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
589 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
592 # include <CoreFoundation/CFBase.h>
593 # include <CoreFoundation/CFString.h>
594 # include <CoreFoundation/CFURL.h>
595 # include <ApplicationServices/ApplicationServices.h>
596 # include <CoreServices/CoreServices.h>
599 CFStringRef url_CFString;
604 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
605 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
606 status = LSOpenCFURLRef(url_CFURL, NULL);
608 Gestalt(gestaltSystemVersion, &os_version);
610 ac_cv_can_use_osx_frameworks=yes,
611 ac_cv_can_use_osx_frameworks=no,
612 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
613 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
614 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
615 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
616 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
624 AC_SUBST(CORESERVICES_FRAMEWORKS)
625 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
628 # If using $prefix we add "$prefix/include" to the include search path
629 # and "$prefix/lib" to the library search path.
631 if test "x$prefix" != "x" ; then
632 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
633 if test -d $prefix/include ; then
636 # Arrange that we search for header files in "$prefix/include", as
637 # various packages we use may have been installed under "$prefix/include".
639 CFLAGS="$CFLAGS -I$prefix/include"
640 CPPFLAGS="$CPPFLAGS -I$prefix/include"
643 # Arrange that we search for libraries in "$prefix/lib".
645 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
651 dnl Look in /usr/local for header files and libraries ?
652 dnl XXX FIXME don't include /usr/local if it is already in the system
653 dnl search path as this causes gcc 3.2 on Linux to complain about a change
654 dnl of the system search order for includes
655 AC_ARG_ENABLE(usr-local,
656 AC_HELP_STRING( [--enable-usr-local],
657 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
658 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
660 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
661 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
662 if test -d "/usr/local"; then
665 # Arrange that we search for header files in the source directory
666 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
667 # as various packages we use ("libpcap", "zlib", "adns")
668 # may have been installed under "/usr/local/include".
670 CFLAGS="$CFLAGS -I/usr/local/include"
671 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
674 # Arrange that we search for libraries in "/usr/local/lib".
676 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
685 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
690 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
691 if test x$LD_LIBRARY_PATH != x ; then
692 LIBS="$LIBS -R$LD_LIBRARY_PATH"
693 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
695 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
701 # Check for versions of "sed" inadequate to handle, in libtool, a list
702 # of object files as large as the list in Wireshark.
704 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
705 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
706 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
707 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
708 # is the only "sed" that comes with Solaris that can handle Wireshark.
710 # Add any checks here that are necessary for other OSes.
712 AC_WIRESHARK_GNU_SED_CHECK
713 if test "$HAVE_GNU_SED" = no ; then
716 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
718 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
720 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
735 # Enable/disable wireshark
737 AC_ARG_ENABLE(wireshark,
738 AC_HELP_STRING( [--enable-wireshark],
739 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
740 enable_wireshark=$enableval,enable_wireshark=yes)
742 AC_ARG_ENABLE(packet-editor,
743 AC_HELP_STRING( [--enable-packet-editor],
744 [add support for packet editor in Wireshark @<:@default=no@:>@]),
745 enable_packet_editor=$enableval,enable_packet_editor=no)
746 if test x$enable_packet_editor = xyes; then
747 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
750 AC_ARG_ENABLE(profile-build,
751 AC_HELP_STRING( [--enable-profile-build],
752 [build profile-ready binaries @<:@default=no@:>@]),
753 enable_profile_build=$enableval,enable_profile_build=no)
754 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
755 AC_MSG_CHECKING(if profile builds must be generated)
756 if test "x$enable_profile_build" = "xyes" ; then
757 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
759 CFLAGS=" -pg $CFLAGS"
762 echo "Building profile binaries currently only supported for GCC and clang."
768 # Create DATAFILE_DIR #define for config.h
769 datafiledir=$datadir/wireshark
771 test "x$prefix" = xNONE && prefix=$ac_default_prefix
772 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
773 # Ugly hack, but I don't see how this problem can be solved
774 # properly that DATAFILE_DIR had a value starting with
775 # "${prefix}/" instead of e.g. "/usr/local/"
776 eval eval echo "$datafiledir"
778 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
780 # Create DOC_DIR #define for config.h
782 test "x$prefix" = xNONE && prefix=$ac_default_prefix
783 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
784 # Ugly hack, but I don't see how this problem can be solved
785 # properly that DOC_DIR had a value starting with
786 # "${prefix}/" instead of e.g. "/usr/local/"
787 eval eval echo "$docdir"
789 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
791 # GTK checks; we require GTK+ 2.12 or later.
792 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
793 # programs to be built with GTK+.
795 if test "x$enable_wireshark" = "xyes"; then
796 if test "x$with_gtk3" = "xyes"; then
797 AM_PATH_GTK_3_0(3.0.0,
799 CFLAGS="$CFLAGS $GTK_CFLAGS"
800 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
802 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
803 ], have_gtk=no, gthread)
806 AM_PATH_GTK_2_0(2.12.0,
808 CFLAGS="$CFLAGS $GTK_CFLAGS"
809 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
811 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
812 ], have_gtk=no, gthread)
818 # GLib checks; we require GLib 2.14 or later, and require gmodule
819 # support, as we need that for dynamically loading plugins.
820 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
821 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
822 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
823 # GLIB_CFLAGS to CFLAGS.
824 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
825 # set when generating the Makefile, so we can make programs that require
826 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
827 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
828 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
829 # programs to be built with GLib.
831 if test "$have_gtk" = "no" ; then
833 # We don't have GTK+.
834 # If they didn't explicitly say "--disable-wireshark", fail (so
835 # that, unless they explicitly indicated that they don't want
836 # Wireshark, we stop so they know they won't be getting
837 # Wireshark unless they fix the GTK+ problem).
839 if test "x$enable_wireshark" = "xyes"; then
840 if test "x$with_gtk3" = "xyes"; then
841 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
843 AC_MSG_ERROR([GTK+ 2.12 or later isn't available, so Wireshark can't be compiled])
849 AM_PATH_GLIB_2_0(2.14.0,
851 CFLAGS="$CFLAGS $GLIB_CFLAGS"
852 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
853 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
856 # We have GTK+, and thus will be building Wireshark unless the
857 # user explicitly disabled it.
859 wireshark_bin="wireshark\$(EXEEXT)"
860 wireshark_man="wireshark.1"
861 wireshark_SUBDIRS="codecs ui/gtk"
862 # Don't use GLIB_CFLAGS
863 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
865 CFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
866 ## Define GTK_DISABLE_DEPRECATED only if GTK lt 3.2
867 ## GTK 3.2 deprecates GtkVBox & GtkHBox which are currently used extensively by Wireshark.
868 if test $gtk_config_major_version -eq 2 -o $gtk_config_minor_version -lt 2; then
869 CFLAGS="-DGTK_DISABLE_DEPRECATED $CFLAGS"
871 # CFLAGS="-DGDK_DISABLE_DEPRECATED $CFLAGS"
872 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
873 # Enable GSEAL when building with GTK > 2.20 and < 3.0
874 # (Versions prior to 2.22 lacked some necessary accessors.)
875 CFLAGS="-DGSEAL_ENABLE $CFLAGS"
879 # Error out if a glib header other than a "top level" header
880 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
882 CFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CFLAGS"
884 # Error out on the usage of deprecated glib functions
885 CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
888 # Check whether GLib modules are supported, to determine whether we
889 # can support plugins.
891 AC_MSG_CHECKING(whether GLib supports loadable modules)
892 ac_save_CFLAGS="$CFLAGS"
894 CFLAGS="$CFLAGS $GLIB_CFLAGS"
895 LIBS="$GLIB_LIBS $LIBS"
905 if (g_module_supported())
906 return 0; /* success */
908 return 1; /* failure */
910 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
911 [echo $ac_n "cross compiling; assumed OK... $ac_c"
912 ac_cv_glib_supports_modules=yes])
913 CFLAGS="$ac_save_CFLAGS"
915 if test "$ac_cv_glib_supports_modules" = yes ; then
924 # If we have <dlfcn.h>, check whether we can use dladdr to find a
925 # filename (hopefully, a full pathname, but no guarantees) for
928 if test "$ac_cv_header_dlfcn_h" = "yes"
930 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
931 ac_save_CFLAGS="$CFLAGS"
933 CFLAGS="$CFLAGS $GLIB_CFLAGS"
934 LIBS="$GLIB_LIBS $LIBS"
936 #define _GNU_SOURCE /* required on Linux, sigh */
944 if (!dladdr((void *)main, &info))
945 return 1; /* failure */
946 return 0; /* assume success */
948 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
949 [echo $ac_n "cross compiling; assumed OK... $ac_c"
950 ac_cv_dladdr_finds_executable_path=yes])
951 CFLAGS="$ac_save_CFLAGS"
953 if test x$ac_cv_dladdr_finds_executable_path = xyes
955 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
957 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
960 if test "x$have_gtk" == "xyes"
963 # We have GTK+; do we want the OS X integration functions and,
964 # if so, do we have them and, if so, which versions do we have,
965 # the old Carbon-based ones or the new Cocoa-based ones?
967 AC_MSG_CHECKING(whether to use OS X integration functions)
969 AC_ARG_WITH(osx-integration,
970 AC_HELP_STRING( [--with-osx-integration],
971 [use OS X integration functions @<:@default=yes, if available@:>@]),
973 if test $withval = no
975 want_osx_integration=no
977 want_osx_integration=yes
980 want_osx_integration=yes
982 if test "x$want_osx_integration" = "xno"; then
986 AC_WIRESHARK_OSX_INTEGRATION_CHECK
990 AC_SUBST(wireshark_bin)
991 AC_SUBST(wireshark_man)
994 # Enable/disable tshark
996 AC_ARG_ENABLE(tshark,
997 AC_HELP_STRING( [--enable-tshark],
998 [build TShark @<:@default=yes@:>@]),
999 tshark=$enableval,enable_tshark=yes)
1001 if test "x$enable_tshark" = "xyes" ; then
1002 tshark_bin="tshark\$(EXEEXT)"
1003 tshark_man="tshark.1"
1004 wiresharkfilter_man="wireshark-filter.4"
1009 AC_SUBST(tshark_bin)
1010 AC_SUBST(tshark_man)
1011 AC_SUBST(wiresharkfilter_man)
1015 # Enable/disable editcap
1017 AC_ARG_ENABLE(editcap,
1018 AC_HELP_STRING( [--enable-editcap],
1019 [build editcap @<:@default=yes@:>@]),
1020 enable_editcap=$enableval,enable_editcap=yes)
1022 if test "x$enable_editcap" = "xyes" ; then
1023 editcap_bin="editcap\$(EXEEXT)"
1024 editcap_man="editcap.1"
1029 AC_SUBST(editcap_bin)
1030 AC_SUBST(editcap_man)
1032 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1035 # Enable/disable capinfos
1037 AC_ARG_ENABLE(capinfos,
1038 AC_HELP_STRING( [--enable-capinfos],
1039 [build capinfos @<:@default=yes@:>@]),
1040 enable_capinfos=$enableval,enable_capinfos=yes)
1042 if test "x$enable_capinfos" = "xyes" ; then
1043 capinfos_bin="capinfos\$(EXEEXT)"
1044 capinfos_man="capinfos.1"
1049 AC_SUBST(capinfos_bin)
1050 AC_SUBST(capinfos_man)
1053 # Enable/disable mergecap
1055 AC_ARG_ENABLE(mergecap,
1056 AC_HELP_STRING( [--enable-mergecap],
1057 [build mergecap @<:@default=yes@:>@]),
1058 enable_mergecap=$enableval,enable_mergecap=yes)
1060 if test "x$enable_mergecap" = "xyes" ; then
1061 mergecap_bin="mergecap\$(EXEEXT)"
1062 mergecap_man="mergecap.1"
1067 AC_SUBST(mergecap_bin)
1068 AC_SUBST(mergecap_man)
1071 # Enable/disable text2pcap
1073 AC_ARG_ENABLE(text2pcap,
1074 AC_HELP_STRING( [--enable-text2pcap],
1075 [build text2pcap @<:@default=yes@:>@]),
1076 text2pcap=$enableval,enable_text2pcap=yes)
1078 if test "x$enable_text2pcap" = "xyes" ; then
1079 text2pcap_bin="text2pcap\$(EXEEXT)"
1080 text2pcap_man="text2pcap.1"
1085 AC_SUBST(text2pcap_bin)
1086 AC_SUBST(text2pcap_man)
1089 # Enable/disable dftest
1091 AC_ARG_ENABLE(dftest,
1092 AC_HELP_STRING( [--enable-dftest],
1093 [build dftest @<:@default=yes@:>@]),
1094 enable_dftest=$enableval,enable_dftest=yes)
1096 if test "x$enable_dftest" = "xyes" ; then
1097 dftest_bin="dftest\$(EXEEXT)"
1098 dftest_man="dftest.1"
1103 AC_SUBST(dftest_bin)
1104 AC_SUBST(dftest_man)
1107 # Enable/disable randpkt
1109 AC_ARG_ENABLE(randpkt,
1110 AC_HELP_STRING( [--enable-randpkt],
1111 [build randpkt @<:@default=yes@:>@]),
1112 enable_randpkt=$enableval,enable_randpkt=yes)
1114 if test "x$enable_randpkt" = "xyes" ; then
1115 randpkt_bin="randpkt\$(EXEEXT)"
1116 randpkt_man="randpkt.1"
1121 AC_SUBST(randpkt_bin)
1122 AC_SUBST(randpkt_man)
1126 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1127 dnl "gethostbyname()".
1128 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1130 dnl Checks for "connect()", used as a proxy for "socket()" - and
1131 dnl "-lsocket", if we need it to get "connect()".
1132 AC_WIRESHARK_SOCKET_LIB_CHECK
1135 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1138 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1139 [use libpcap for packet capturing @<:@default=yes@:>@]),
1141 if test $withval = no
1144 elif test $withval = yes
1155 if test "x$want_pcap" = "xno" ; then
1159 AC_WIRESHARK_PCAP_CHECK
1162 # Enable/disable dumpcap
1165 AC_MSG_CHECKING(whether to build dumpcap)
1167 AC_ARG_ENABLE(dumpcap,
1168 AC_HELP_STRING( [--enable-dumpcap],
1169 [build dumpcap @<:@default=yes@:>@]),
1170 enable_dumpcap=$enableval,enable_dumpcap=yes)
1172 if test "x$enable_dumpcap" = "xyes" ; then
1173 if test "x$want_pcap" = "xno" ; then
1175 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1183 if test "x$enable_dumpcap" = "xyes" ; then
1184 dumpcap_bin="dumpcap\$(EXEEXT)"
1185 dumpcap_man="dumpcap.1"
1190 AC_SUBST(dumpcap_bin)
1191 AC_SUBST(dumpcap_man)
1193 # Enable/disable rawshark
1196 AC_MSG_CHECKING(whether to build rawshark)
1198 AC_ARG_ENABLE(rawshark,
1199 AC_HELP_STRING( [--enable-rawshark],
1200 [build rawshark @<:@default=yes@:>@]),
1201 rawshark=$enableval,enable_rawshark=yes)
1203 if test "x$enable_rawshark" = "xyes" ; then
1204 if test "x$want_pcap" = "xno" ; then
1206 AC_MSG_RESULT(pcap not available - disabling rawshark)
1214 if test "x$enable_rawshark" = "xyes" ; then
1215 rawshark_bin="rawshark\$(EXEEXT)"
1216 rawshark_man="rawshark.1"
1221 AC_SUBST(rawshark_bin)
1222 AC_SUBST(rawshark_man)
1224 dnl Use pcap-ng by default
1225 AC_ARG_ENABLE(pcap-ng-default,
1226 AC_HELP_STRING( [--enable-pcap-ng-default],
1227 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1228 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1229 if test x$enable_pcap_ng_default = xyes; then
1230 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1233 dnl pcap remote check
1234 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1236 AC_ARG_WITH(pcap-remote,
1237 AC_HELP_STRING([--with-pcap-remote],
1238 [use libpcap remote capturing (requires libpcap)]),
1240 if test $withval = no
1244 want_pcap_remote=yes
1249 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1253 AC_WIRESHARK_PCAP_REMOTE_CHECK
1257 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1260 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1261 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1263 if test "x$withval" = "xno"
1266 elif test "x$withval" = "xyes"
1275 # Use zlib if it's present, otherwise don't.
1277 want_zlib=ifavailable
1280 if test "x$want_zlib" = "xno" ; then
1284 AC_WIRESHARK_ZLIB_CHECK
1285 if test "x$want_zlib" = "xno" ; then
1286 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1288 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1289 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1295 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1298 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1299 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1301 if test $withval = no
1304 elif test $withval = yes
1313 # Use liblua by default
1315 want_lua=ifavailable
1318 if test "x$want_lua" = "xno" ; then
1322 AC_WIRESHARK_LIBLUA_CHECK
1323 if test "x$want_lua" = "xno" ; then
1324 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1327 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1331 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1333 AC_ARG_WITH(portaudio,
1334 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1335 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1337 if test $withval = no
1340 elif test $withval = yes
1345 portaudio_dir=$withval
1349 # Use libportaudio by default
1351 want_portaudio=ifavailable
1354 if test "x$want_portaudio" = "xno" ; then
1358 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1359 if test "x$want_portaudio" = "xno" ; then
1360 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1363 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1368 AC_HELP_STRING( [--enable-ipv6],
1369 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1370 enable_ipv6=$enableval,enable_ipv6=yes)
1372 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1373 if test "x$enable_ipv6" = "xno" ; then
1377 AC_WIRESHARK_IPV6_STACK
1381 dnl Check if dumpcap should be installed with filesystem capabilities
1382 AC_PATH_PROG(SETCAP, setcap)
1383 AC_ARG_ENABLE(setcap-install,
1384 AC_HELP_STRING( [--enable-setcap-install],
1385 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1386 enable_setcap_install=$enableval,enable_setcap_install=no)
1388 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1389 if test "x$enable_setcap_install" = "xno" ; then
1392 if test "x$SETCAP" = "x" ; then
1393 AC_MSG_RESULT(no. Setcap not found)
1394 elif test "x$enable_dumpcap" = "xno" ; then
1395 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1401 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1403 dnl Check if dumpcap should be installed setuid
1404 AC_ARG_ENABLE(setuid-install,
1405 AC_HELP_STRING( [--enable-setuid-install],
1406 [install dumpcap as setuid @<:@default=no@:>@]),
1407 enable_setuid_install=$enableval,enable_setuid_install=no)
1409 AC_MSG_CHECKING(whether to install dumpcap setuid)
1410 if test "x$enable_setuid_install" = "xno" ; then
1413 if test "x$enable_setcap_install" = "xyes" ; then
1414 enable_setuid_install=no
1415 AC_MSG_RESULT(no; using setcap instead)
1416 elif test "x$enable_dumpcap" = "xno" ; then
1417 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1423 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1424 AC_CHECK_FUNCS(setresuid setresgid)
1426 dnl ...but our Network Operations group is named "no"!
1428 AC_ARG_WITH(dumpcap-group,
1429 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1430 [restrict dumpcap to GROUP]),
1432 if test "x$withval" = "xyes"; then
1433 AC_MSG_ERROR([No dumpcap group specified.])
1434 elif test "x$withval" != "xno"; then
1435 if test "x$enable_dumpcap" = "xno" ; then
1436 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1438 AC_MSG_RESULT($withval)
1439 DUMPCAP_GROUP="$withval"
1442 AC_SUBST(DUMPCAP_GROUP)
1443 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1445 dnl libcap (not libpcap) check
1447 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1450 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1451 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1453 if test "x$withval" = "xno"; then
1455 elif test "x$withval" = "xyes"; then
1457 elif test -d "$withval"; then
1459 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1462 if test "x$with_libcap" = "xno" ; then
1466 AC_WIRESHARK_LIBCAP_CHECK
1468 AC_SUBST(LIBCAP_LIBS)
1470 dnl Checks for header files.
1471 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1472 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)
1473 AC_CHECK_HEADERS(netinet/in.h)
1474 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1478 AC_MSG_CHECKING(whether to use SSL library)
1481 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1482 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1484 if test "x$withval" = "xno"; then
1486 elif test "x$withval" = "xyes"; then
1488 elif test -d "$withval"; then
1490 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1495 if test "x$want_ssl" = "xyes"; then
1497 AC_CHECK_LIB(crypto,EVP_md5,
1502 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1510 AC_MSG_CHECKING(whether to use Kerberos library)
1513 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1514 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1516 if test $withval = no
1519 elif test $withval = yes
1528 # Use Kerberos library if available, otherwise don't.
1530 want_krb5=ifavailable
1533 if test "x$want_krb5" = "xno" ; then
1537 AC_WIRESHARK_KRB5_CHECK
1543 AC_MSG_CHECKING(whether to use the c-ares library if available)
1546 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1547 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1549 if test "x$withval" = "xno"; then
1551 elif test "x$withval" = "xyes"; then
1553 elif test -d "$withval"; then
1555 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1558 if test "x$want_c_ares" = "xno" ; then
1562 AC_WIRESHARK_C_ARES_CHECK
1564 AC_SUBST(C_ARES_LIBS)
1568 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1571 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1572 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1574 if test "x$withval" = "xno"; then
1576 elif test "x$withval" = "xyes"; then
1578 elif test -d "$withval"; then
1580 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1583 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1587 AC_WIRESHARK_ADNS_CHECK
1593 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1596 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1597 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1599 if test "x$withval" = "xno"; then
1601 elif test "x$withval" = "xyes"; then
1603 elif test -d "$withval"; then
1605 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1608 if test "x$want_geoip" = "xno"; then
1612 AC_WIRESHARK_GEOIP_CHECK
1614 AC_SUBST(GEOIP_LIBS)
1616 dnl Python devel Check
1617 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1620 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1621 [use Python interpreter (installed in DIR, if supplied) @<:@default=yes, if available@:>@ (EXPERIMENTAL)]),
1623 pythondir='${libdir}/wireshark/python/${VERSION}'
1624 if test "x$withval" = "xno"
1627 elif test "x$withval" = "xyes"
1632 pythondir="$withval"
1636 # Use the embeddable Python interpreter if it's present,
1639 want_pythin=ifavailable
1640 pythondir='${libdir}/wireshark/python/${VERSION}'
1642 if test "x$want_python" = "xno" ; then
1646 AC_WIRESHARK_PYTHON_CHECK
1648 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1652 # Define WS_VAR_IMPORT appropriately for declarations of external
1653 # variables exported from dynamically-linked libraries.
1655 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1658 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1659 # never return (just like Charlie on the MTA).
1661 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1662 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1663 # follow the function name, so we need two different flavors of
1666 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1668 AC_ARG_ENABLE(airpcap,
1669 AC_HELP_STRING( [--enable-airpcap],
1670 [use AirPcap in Wireshark @<:@default=no@:>@]),
1671 enable_airpcap=$enableval
1672 if test x$enable_airpcap != xno; then
1673 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1677 dnl Checks for typedefs, structures, and compiler characteristics.
1680 # Check how we can get the time zone abbreviation
1681 AC_WIRESHARK_TIMEZONE_ABBREV
1683 # We need to know whether "struct sockaddr" has an "sa_len" member
1684 # for get_interface_list().
1686 AC_WIRESHARK_STRUCT_SA_LEN
1688 # We must know our byte order
1691 # Checks whether "-traditional" is needed when using "ioctl".
1692 # XXX - do we need this?
1693 AC_PROG_GCC_TRADITIONAL
1696 AC_CHECK_FUNC(getopt,
1698 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1700 GETOPT_LO="wsgetopt.lo"
1702 if test "$ac_cv_func_getopt" = no ; then
1703 GETOPT_LO="wsgetopt.lo"
1705 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1708 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1709 STRNCASECMP_LO="strncasecmp.lo")
1710 if test "$ac_cv_func_strncasecmp" = no ; then
1711 STRNCASECMP_LO="strncasecmp.lo"
1713 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1714 AC_SUBST(STRNCASECMP_LO)
1716 AC_CHECK_FUNCS(mkstemp mkdtemp)
1718 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1720 if test "$have_inet_aton" = no; then
1721 INET_ATON_LO="inet_aton.lo"
1722 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1726 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1727 AC_SUBST(INET_ATON_LO)
1729 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1730 dnl check for pre-BIND82 inet_pton() bug.
1731 AC_MSG_CHECKING(for broken inet_pton)
1732 AC_TRY_RUN([#include <sys/types.h>
1733 #include <sys/socket.h>
1734 #include <netinet/in.h>
1735 #include <arpa/inet.h>
1740 /* this should return 0 (error) */
1741 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1745 }], [AC_MSG_RESULT(ok);
1746 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1747 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1748 have_inet_pton=no])],
1750 if test "$have_inet_pton" = no; then
1751 INET_PTON_LO="inet_pton.lo"
1755 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1756 AC_SUBST(INET_PTON_LO)
1758 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1759 AC_MSG_CHECKING([for inet_ntop prototype])
1760 AC_TRY_COMPILE([#include <stdio.h>
1761 #include <sys/types.h>
1762 #include <sys/socket.h>
1763 #include <netinet/in.h>
1764 #include <arpa/inet.h>
1766 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1768 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1769 [Define if inet_ntop() prototype exists])], [
1770 AC_TRY_COMPILE([#include <stdio.h>
1771 #include <sys/types.h>
1772 #include <sys/socket.h>
1773 #include <netinet/in.h>
1774 #include <arpa/inet.h>
1776 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1778 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1779 [Define if inet_ntop() prototype exists])], [
1780 AC_MSG_RESULT(no)])])
1782 INET_NTOP_LO="inet_ntop.lo"
1783 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1784 [Define if inet/v6defs.h needs to be included])])
1785 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1786 AC_SUBST(INET_NTOP_LO)
1788 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1789 [STRPTIME_LO="strptime.lo"
1790 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1792 if test "$ac_cv_func_strptime" = no ; then
1793 STRPTIME_LO="strptime.lo"
1795 AC_SUBST(STRPTIME_C)
1796 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1797 AC_SUBST(STRPTIME_LO)
1799 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1800 AC_CHECK_FUNCS(issetugid)
1801 AC_CHECK_FUNCS(mmap mprotect sysconf)
1802 AC_CHECK_FUNCS(strtoll)
1804 dnl blank for now, but will be used in future
1805 AC_SUBST(wireshark_SUBDIRS)
1808 dnl check whether plugins should be enabled and, if they should be,
1809 dnl check for plugins directory - stolen from Amanda's configure.in
1811 dnl we don't wish to expand ${libdir} yet
1812 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1813 AC_ARG_WITH(plugins,
1814 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1815 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1817 if test "x$withval" = "xno"; then
1819 elif test "x$have_plugins" = "xno"; then
1820 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1821 elif test "x$withval" != "xyes"; then
1822 plugindir="$withval"
1825 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1826 if test x$have_plugins = xyes
1828 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1831 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1834 # The plugin dissectors reside in ./plugins/PROTO/
1837 AC_SUBST(PLUGIN_LIBS)
1841 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1842 # (autoconf? automake? libtool?) - with the newer version(s), it's
1843 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1845 # With older version(s) of those tool(s), however, it's not just an
1846 # alias, and the configure scripts don't work without it.
1849 AC_SUBST(LIBTOOL_DEPS)
1851 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1852 if test x$enable_static = xyes -a x$have_plugins = xyes
1854 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1856 AC_SUBST(ENABLE_STATIC)
1858 dnl Save the cacheable configure results to config.cache before recursing
1861 sinclude(plugins/Custom.m4) dnl
1862 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1864 sinclude(asn1/Custom.m4) dnl
1865 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1867 AM_CONFIG_HEADER(config.h)
1872 _CUSTOM_ASN1_AC_OUTPUT_
1873 asn1/acp133/Makefile
1875 asn1/ansi_map/Makefile
1876 asn1/ansi_tcap/Makefile
1880 asn1/charging_ase/Makefile
1885 asn1/credssp/Makefile
1894 asn1/gprscdr/Makefile
1895 asn1/gsm_map/Makefile
1904 asn1/h450-ros/Makefile
1907 asn1/HI2Operations/Makefile
1911 asn1/kerberos/Makefile
1914 asn1/logotypecertextn/Makefile
1917 asn1/lte-rrc/Makefile
1919 asn1/mpeg-audio/Makefile
1920 asn1/mpeg-pes/Makefile
1922 asn1/ns_cert_exts/Makefile
1930 asn1/pkcs12/Makefile
1931 asn1/pkinit/Makefile
1932 asn1/pkixac/Makefile
1933 asn1/pkix1explicit/Makefile
1934 asn1/pkix1implicit/Makefile
1935 asn1/pkixproxy/Makefile
1936 asn1/pkixqualified/Makefile
1937 asn1/pkixtsp/Makefile
1940 asn1/q932-ros/Makefile
1951 asn1/sbc-ap/Makefile
1954 asn1/spnego/Makefile
1962 asn1/wlancertextn/Makefile
1964 asn1/x509af/Makefile
1965 asn1/x509ce/Makefile
1966 asn1/x509if/Makefile
1967 asn1/x509sat/Makefile
1974 epan/dfilter/Makefile
1975 epan/dissectors/Makefile
1976 epan/dissectors/dcerpc/Makefile
1977 epan/dissectors/pidl/Makefile
1978 epan/ftypes/Makefile
1980 epan/wspython/Makefile
1986 packaging/macosx/Info.plist
1987 packaging/macosx/Makefile
1988 packaging/nsis/Makefile
1989 packaging/rpm/Makefile
1990 packaging/rpm/SPECS/Makefile
1991 packaging/rpm/SPECS/wireshark.spec
1992 packaging/svr4/Makefile
1993 packaging/svr4/checkinstall
1994 packaging/svr4/pkginfo
1996 plugins/asn1/Makefile
1997 plugins/docsis/Makefile
1998 plugins/ethercat/Makefile
1999 plugins/giop/Makefile
2000 plugins/gryphon/Makefile
2001 plugins/irda/Makefile
2002 plugins/m2m/Makefile
2003 plugins/mate/Makefile
2004 plugins/opcua/Makefile
2005 plugins/profinet/Makefile
2006 plugins/stats_tree/Makefile
2007 plugins/unistim/Makefile
2008 plugins/wimax/Makefile
2009 plugins/wimaxasncp/Makefile
2011 tools/lemon/Makefile
2016 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2021 if test "x$enable_setcap_install" = "xyes" ; then
2022 setcap_message="yes"
2028 if test "x$enable_setuid_install" = "xyes" ; then
2029 setuid_message="yes"
2034 if test "x$DUMPCAP_GROUP" = "x" ; then
2035 dumpcap_group_message="(none)"
2037 dumpcap_group_message="$DUMPCAP_GROUP"
2040 if test "x$want_zlib" = "xno" ; then
2046 if test "x$want_lua" = "xyes" ; then
2052 if test "x$want_python" = "xno"; then
2055 python_message="yes"
2058 if test "x$want_portaudio" = "xyes" ; then
2059 portaudio_message="yes"
2061 portaudio_message="no"
2064 if test "x$want_ssl" = "xno" ; then
2070 if test "x$want_krb5" = "xno" ; then
2073 krb5_message="yes ($ac_krb5_version)"
2076 if test "x$have_good_c_ares" = "xyes" ; then
2077 c_ares_message="yes"
2082 if test "x$have_good_adns" = "xyes" ; then
2085 if test "x$have_good_c_ares" = "xyes" ; then
2086 adns_message="no (using c-ares instead)"
2092 if test "x$have_good_libcap" = "xyes" ; then
2093 libcap_message="yes"
2098 if test "x$have_good_geoip" = "xyes" ; then
2105 echo "The Wireshark package has been configured with the following options."
2106 echo " Build wireshark : $enable_wireshark"
2107 echo " Build tshark : $enable_tshark"
2108 echo " Build capinfos : $enable_capinfos"
2109 echo " Build editcap : $enable_editcap"
2110 echo " Build dumpcap : $enable_dumpcap"
2111 echo " Build mergecap : $enable_mergecap"
2112 echo " Build text2pcap : $enable_text2pcap"
2113 echo " Build randpkt : $enable_randpkt"
2114 echo " Build dftest : $enable_dftest"
2115 echo " Build rawshark : $enable_rawshark"
2117 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2118 echo " Install dumpcap with capabilities : $setcap_message"
2119 echo " Install dumpcap setuid : $setuid_message"
2120 echo " Use dumpcap group : $dumpcap_group_message"
2121 echo " Use plugins : $have_plugins"
2122 echo " Use Lua library : $lua_message"
2123 echo " Use Python binding : $python_message"
2124 echo " Build rtp_player : $portaudio_message"
2125 echo " Build profile binaries : $enable_profile_build"
2126 echo " Use pcap library : $want_pcap"
2127 echo " Use zlib library : $zlib_message"
2128 echo " Use kerberos library : $krb5_message"
2129 echo " Use c-ares library : $c_ares_message"
2130 echo " Use GNU ADNS library : $adns_message"
2131 echo " Use SMI MIB library : $libsmi_message"
2132 echo " Use GNU crypto library : $gcrypt_message"
2133 echo " Use SSL crypto library : $ssl_message"
2134 echo " Use IPv6 name resolution : $enable_ipv6"
2135 echo " Use gnutls library : $tls_message"
2136 echo " Use POSIX capabilities library : $libcap_message"
2137 echo " Use GeoIP library : $geoip_message"