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_gtk3="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,
803 [Define to 1 if compiling with GTK])
807 AM_PATH_GTK_2_0(2.12.0,
809 CFLAGS="$CFLAGS $GTK_CFLAGS"
810 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
812 AC_DEFINE(HAVE_GTK, 1,
813 [Define to 1 if compiling with GTK])
820 # GLib checks; we require GLib 2.14 or later, and require gmodule
821 # support, as we need that for dynamically loading plugins.
822 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
823 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
824 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
825 # GLIB_CFLAGS to CFLAGS.
826 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
827 # set when generating the Makefile, so we can make programs that require
828 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
829 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
830 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
831 # programs to be built with GLib.
833 if test "$have_gtk" = "no" ; then
835 # We don't have GTK+.
836 # If they didn't explicitly say "--disable-wireshark", fail (so
837 # that, unless they explicitly indicated that they don't want
838 # Wireshark, we stop so they know they won't be getting
839 # Wireshark unless they fix the GTK+ problem).
841 if test "x$enable_wireshark" = "xyes"; then
842 if test "x$with_gtk3" = "xyes"; then
843 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
845 AC_MSG_ERROR([GTK+ 2.12 or later isn't available, so Wireshark can't be compiled])
851 AM_PATH_GLIB_2_0(2.14.0,
853 CFLAGS="$CFLAGS $GLIB_CFLAGS"
854 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
855 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
858 # We have GTK+, and thus will be building Wireshark unless the
859 # user explicitly disabled it.
861 wireshark_bin="wireshark\$(EXEEXT)"
862 wireshark_man="wireshark.1"
863 wireshark_SUBDIRS="codecs ui/gtk"
864 # Don't use GLIB_CFLAGS
865 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
867 CFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
868 ## Define GTK_DISABLE_DEPRECATED only if GTK lt 3.2
869 ## GTK 3.2 deprecates GtkVBox & GtkHBox which are currently used extensively by Wireshark.
870 if test $gtk_config_major_version -eq 2 -o $gtk_config_minor_version -lt 2; then
871 CFLAGS="-DGTK_DISABLE_DEPRECATED $CFLAGS"
873 # CFLAGS="-DGDK_DISABLE_DEPRECATED $CFLAGS"
874 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
875 # Enable GSEAL when building with GTK > 2.20 and < 3.0
876 # (Versions prior to 2.22 lacked some necessary accessors.)
877 CFLAGS="-DGSEAL_ENABLE $CFLAGS"
881 # Error out if a glib header other than a "top level" header
882 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
884 CFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CFLAGS"
886 # Error out on the usage of deprecated glib functions
887 CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
890 # Check whether GLib modules are supported, to determine whether we
891 # can support plugins.
893 AC_MSG_CHECKING(whether GLib supports loadable modules)
894 ac_save_CFLAGS="$CFLAGS"
896 CFLAGS="$CFLAGS $GLIB_CFLAGS"
897 LIBS="$GLIB_LIBS $LIBS"
907 if (g_module_supported())
908 return 0; /* success */
910 return 1; /* failure */
912 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
913 [echo $ac_n "cross compiling; assumed OK... $ac_c"
914 ac_cv_glib_supports_modules=yes])
915 CFLAGS="$ac_save_CFLAGS"
917 if test "$ac_cv_glib_supports_modules" = yes ; then
926 # If we have <dlfcn.h>, check whether we can use dladdr to find a
927 # filename (hopefully, a full pathname, but no guarantees) for
930 if test "$ac_cv_header_dlfcn_h" = "yes"
932 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
933 ac_save_CFLAGS="$CFLAGS"
935 CFLAGS="$CFLAGS $GLIB_CFLAGS"
936 LIBS="$GLIB_LIBS $LIBS"
938 #define _GNU_SOURCE /* required on Linux, sigh */
946 if (!dladdr((void *)main, &info))
947 return 1; /* failure */
948 return 0; /* assume success */
950 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
951 [echo $ac_n "cross compiling; assumed OK... $ac_c"
952 ac_cv_dladdr_finds_executable_path=yes])
953 CFLAGS="$ac_save_CFLAGS"
955 if test x$ac_cv_dladdr_finds_executable_path = xyes
957 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
959 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
962 if test "x$have_gtk" = "xyes"
965 # We have GTK+; do we want the OS X integration functions and,
966 # if so, do we have them and, if so, which versions do we have,
967 # the old Carbon-based ones or the new Cocoa-based ones?
969 AC_MSG_CHECKING(whether to use OS X integration functions)
971 AC_ARG_WITH(osx-integration,
972 AC_HELP_STRING( [--with-osx-integration],
973 [use OS X integration functions @<:@default=yes, if available@:>@]),
975 if test $withval = no
977 want_osx_integration=no
979 want_osx_integration=yes
982 want_osx_integration=yes
984 if test "x$want_osx_integration" = "xno"; then
988 AC_WIRESHARK_OSX_INTEGRATION_CHECK
992 AC_SUBST(wireshark_bin)
993 AC_SUBST(wireshark_man)
996 # Enable/disable tshark
998 AC_ARG_ENABLE(tshark,
999 AC_HELP_STRING( [--enable-tshark],
1000 [build TShark @<:@default=yes@:>@]),
1001 tshark=$enableval,enable_tshark=yes)
1003 if test "x$enable_tshark" = "xyes" ; then
1004 tshark_bin="tshark\$(EXEEXT)"
1005 tshark_man="tshark.1"
1006 wiresharkfilter_man="wireshark-filter.4"
1011 AC_SUBST(tshark_bin)
1012 AC_SUBST(tshark_man)
1013 AC_SUBST(wiresharkfilter_man)
1017 # Enable/disable editcap
1019 AC_ARG_ENABLE(editcap,
1020 AC_HELP_STRING( [--enable-editcap],
1021 [build editcap @<:@default=yes@:>@]),
1022 enable_editcap=$enableval,enable_editcap=yes)
1024 if test "x$enable_editcap" = "xyes" ; then
1025 editcap_bin="editcap\$(EXEEXT)"
1026 editcap_man="editcap.1"
1031 AC_SUBST(editcap_bin)
1032 AC_SUBST(editcap_man)
1034 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1037 # Enable/disable capinfos
1039 AC_ARG_ENABLE(capinfos,
1040 AC_HELP_STRING( [--enable-capinfos],
1041 [build capinfos @<:@default=yes@:>@]),
1042 enable_capinfos=$enableval,enable_capinfos=yes)
1044 if test "x$enable_capinfos" = "xyes" ; then
1045 capinfos_bin="capinfos\$(EXEEXT)"
1046 capinfos_man="capinfos.1"
1051 AC_SUBST(capinfos_bin)
1052 AC_SUBST(capinfos_man)
1055 # Enable/disable mergecap
1057 AC_ARG_ENABLE(mergecap,
1058 AC_HELP_STRING( [--enable-mergecap],
1059 [build mergecap @<:@default=yes@:>@]),
1060 enable_mergecap=$enableval,enable_mergecap=yes)
1062 if test "x$enable_mergecap" = "xyes" ; then
1063 mergecap_bin="mergecap\$(EXEEXT)"
1064 mergecap_man="mergecap.1"
1069 AC_SUBST(mergecap_bin)
1070 AC_SUBST(mergecap_man)
1073 # Enable/disable text2pcap
1075 AC_ARG_ENABLE(text2pcap,
1076 AC_HELP_STRING( [--enable-text2pcap],
1077 [build text2pcap @<:@default=yes@:>@]),
1078 text2pcap=$enableval,enable_text2pcap=yes)
1080 if test "x$enable_text2pcap" = "xyes" ; then
1081 text2pcap_bin="text2pcap\$(EXEEXT)"
1082 text2pcap_man="text2pcap.1"
1087 AC_SUBST(text2pcap_bin)
1088 AC_SUBST(text2pcap_man)
1091 # Enable/disable dftest
1093 AC_ARG_ENABLE(dftest,
1094 AC_HELP_STRING( [--enable-dftest],
1095 [build dftest @<:@default=yes@:>@]),
1096 enable_dftest=$enableval,enable_dftest=yes)
1098 if test "x$enable_dftest" = "xyes" ; then
1099 dftest_bin="dftest\$(EXEEXT)"
1100 dftest_man="dftest.1"
1105 AC_SUBST(dftest_bin)
1106 AC_SUBST(dftest_man)
1109 # Enable/disable randpkt
1111 AC_ARG_ENABLE(randpkt,
1112 AC_HELP_STRING( [--enable-randpkt],
1113 [build randpkt @<:@default=yes@:>@]),
1114 enable_randpkt=$enableval,enable_randpkt=yes)
1116 if test "x$enable_randpkt" = "xyes" ; then
1117 randpkt_bin="randpkt\$(EXEEXT)"
1118 randpkt_man="randpkt.1"
1123 AC_SUBST(randpkt_bin)
1124 AC_SUBST(randpkt_man)
1128 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1129 dnl "gethostbyname()".
1130 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1132 dnl Checks for "connect()", used as a proxy for "socket()" - and
1133 dnl "-lsocket", if we need it to get "connect()".
1134 AC_WIRESHARK_SOCKET_LIB_CHECK
1137 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1140 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1141 [use libpcap for packet capturing @<:@default=yes@:>@]),
1143 if test $withval = no
1146 elif test $withval = yes
1157 if test "x$want_pcap" = "xno" ; then
1161 AC_WIRESHARK_PCAP_CHECK
1164 # Enable/disable dumpcap
1167 AC_MSG_CHECKING(whether to build dumpcap)
1169 AC_ARG_ENABLE(dumpcap,
1170 AC_HELP_STRING( [--enable-dumpcap],
1171 [build dumpcap @<:@default=yes@:>@]),
1172 enable_dumpcap=$enableval,enable_dumpcap=yes)
1174 if test "x$enable_dumpcap" = "xyes" ; then
1175 if test "x$want_pcap" = "xno" ; then
1177 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1185 if test "x$enable_dumpcap" = "xyes" ; then
1186 dumpcap_bin="dumpcap\$(EXEEXT)"
1187 dumpcap_man="dumpcap.1"
1192 AC_SUBST(dumpcap_bin)
1193 AC_SUBST(dumpcap_man)
1195 # Enable/disable rawshark
1198 AC_MSG_CHECKING(whether to build rawshark)
1200 AC_ARG_ENABLE(rawshark,
1201 AC_HELP_STRING( [--enable-rawshark],
1202 [build rawshark @<:@default=yes@:>@]),
1203 rawshark=$enableval,enable_rawshark=yes)
1205 if test "x$enable_rawshark" = "xyes" ; then
1206 if test "x$want_pcap" = "xno" ; then
1208 AC_MSG_RESULT(pcap not available - disabling rawshark)
1216 if test "x$enable_rawshark" = "xyes" ; then
1217 rawshark_bin="rawshark\$(EXEEXT)"
1218 rawshark_man="rawshark.1"
1223 AC_SUBST(rawshark_bin)
1224 AC_SUBST(rawshark_man)
1226 dnl Use pcap-ng by default
1227 AC_ARG_ENABLE(pcap-ng-default,
1228 AC_HELP_STRING( [--enable-pcap-ng-default],
1229 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1230 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1231 if test x$enable_pcap_ng_default = xyes; then
1232 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1235 dnl pcap remote check
1236 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1238 AC_ARG_WITH(pcap-remote,
1239 AC_HELP_STRING([--with-pcap-remote],
1240 [use libpcap remote capturing (requires libpcap)]),
1242 if test $withval = no
1246 want_pcap_remote=yes
1251 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1255 AC_WIRESHARK_PCAP_REMOTE_CHECK
1259 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1262 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1263 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1265 if test "x$withval" = "xno"
1268 elif test "x$withval" = "xyes"
1277 # Use zlib if it's present, otherwise don't.
1279 want_zlib=ifavailable
1282 if test "x$want_zlib" = "xno" ; then
1286 AC_WIRESHARK_ZLIB_CHECK
1287 if test "x$want_zlib" = "xno" ; then
1288 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1290 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1291 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1297 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1300 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1301 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1303 if test $withval = no
1306 elif test $withval = yes
1315 # Use liblua by default
1317 want_lua=ifavailable
1320 if test "x$want_lua" = "xno" ; then
1324 AC_WIRESHARK_LIBLUA_CHECK
1325 if test "x$want_lua" = "xno" ; then
1326 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1329 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1333 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1335 AC_ARG_WITH(portaudio,
1336 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1337 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1339 if test $withval = no
1342 elif test $withval = yes
1347 portaudio_dir=$withval
1351 # Use libportaudio by default
1353 want_portaudio=ifavailable
1356 if test "x$want_portaudio" = "xno" ; then
1360 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1361 if test "x$want_portaudio" = "xno" ; then
1362 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1365 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1370 AC_HELP_STRING( [--enable-ipv6],
1371 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1372 enable_ipv6=$enableval,enable_ipv6=yes)
1374 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1375 if test "x$enable_ipv6" = "xno" ; then
1379 AC_WIRESHARK_IPV6_STACK
1383 dnl Check if dumpcap should be installed with filesystem capabilities
1384 AC_PATH_PROG(SETCAP, setcap)
1385 AC_ARG_ENABLE(setcap-install,
1386 AC_HELP_STRING( [--enable-setcap-install],
1387 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1388 enable_setcap_install=$enableval,enable_setcap_install=no)
1390 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1391 if test "x$enable_setcap_install" = "xno" ; then
1394 if test "x$SETCAP" = "x" ; then
1395 AC_MSG_RESULT(no. Setcap not found)
1396 elif test "x$enable_dumpcap" = "xno" ; then
1397 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1403 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1405 dnl Check if dumpcap should be installed setuid
1406 AC_ARG_ENABLE(setuid-install,
1407 AC_HELP_STRING( [--enable-setuid-install],
1408 [install dumpcap as setuid @<:@default=no@:>@]),
1409 enable_setuid_install=$enableval,enable_setuid_install=no)
1411 AC_MSG_CHECKING(whether to install dumpcap setuid)
1412 if test "x$enable_setuid_install" = "xno" ; then
1415 if test "x$enable_setcap_install" = "xyes" ; then
1416 enable_setuid_install=no
1417 AC_MSG_RESULT(no; using setcap instead)
1418 elif test "x$enable_dumpcap" = "xno" ; then
1419 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1425 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1426 AC_CHECK_FUNCS(setresuid setresgid)
1428 dnl ...but our Network Operations group is named "no"!
1430 AC_ARG_WITH(dumpcap-group,
1431 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1432 [restrict dumpcap to GROUP]),
1434 if test "x$withval" = "xyes"; then
1435 AC_MSG_ERROR([No dumpcap group specified.])
1436 elif test "x$withval" != "xno"; then
1437 if test "x$enable_dumpcap" = "xno" ; then
1438 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1440 AC_MSG_RESULT($withval)
1441 DUMPCAP_GROUP="$withval"
1444 AC_SUBST(DUMPCAP_GROUP)
1445 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1447 dnl libcap (not libpcap) check
1449 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1452 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1453 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1455 if test "x$withval" = "xno"; then
1457 elif test "x$withval" = "xyes"; then
1459 elif test -d "$withval"; then
1461 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1464 if test "x$with_libcap" = "xno" ; then
1468 AC_WIRESHARK_LIBCAP_CHECK
1470 AC_SUBST(LIBCAP_LIBS)
1472 dnl Checks for header files.
1473 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1474 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)
1475 AC_CHECK_HEADERS(netinet/in.h)
1476 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1480 AC_MSG_CHECKING(whether to use SSL library)
1483 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1484 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1486 if test "x$withval" = "xno"; then
1488 elif test "x$withval" = "xyes"; then
1490 elif test -d "$withval"; then
1492 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1497 if test "x$want_ssl" = "xyes"; then
1499 AC_CHECK_LIB(crypto,EVP_md5,
1504 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1512 AC_MSG_CHECKING(whether to use Kerberos library)
1515 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1516 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1518 if test $withval = no
1521 elif test $withval = yes
1530 # Use Kerberos library if available, otherwise don't.
1532 want_krb5=ifavailable
1535 if test "x$want_krb5" = "xno" ; then
1539 AC_WIRESHARK_KRB5_CHECK
1545 AC_MSG_CHECKING(whether to use the c-ares library if available)
1548 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1549 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1551 if test "x$withval" = "xno"; then
1553 elif test "x$withval" = "xyes"; then
1555 elif test -d "$withval"; then
1557 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1560 if test "x$want_c_ares" = "xno" ; then
1564 AC_WIRESHARK_C_ARES_CHECK
1566 AC_SUBST(C_ARES_LIBS)
1570 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1573 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1574 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1576 if test "x$withval" = "xno"; then
1578 elif test "x$withval" = "xyes"; then
1580 elif test -d "$withval"; then
1582 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1585 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1589 AC_WIRESHARK_ADNS_CHECK
1595 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1598 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1599 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1601 if test "x$withval" = "xno"; then
1603 elif test "x$withval" = "xyes"; then
1605 elif test -d "$withval"; then
1607 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1610 if test "x$want_geoip" = "xno"; then
1614 AC_WIRESHARK_GEOIP_CHECK
1616 AC_SUBST(GEOIP_LIBS)
1618 dnl Python devel Check
1619 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1622 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1623 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (EXPERIMENTAL)]),
1625 pythondir='${libdir}/wireshark/python/${VERSION}'
1626 if test "x$withval" = "xno"
1629 elif test "x$withval" = "xyes"
1634 pythondir="$withval"
1637 # By default (user didn't explicitly enable Python), don't enable
1641 #pythondir='${libdir}/wireshark/python/${VERSION}'
1643 if test "x$want_python" = "xno" ; then
1647 AC_WIRESHARK_PYTHON_CHECK
1649 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1653 # Define WS_VAR_IMPORT appropriately for declarations of external
1654 # variables exported from dynamically-linked libraries.
1656 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1659 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1660 # never return (just like Charlie on the MTA).
1662 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1663 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1664 # follow the function name, so we need two different flavors of
1667 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1669 AC_ARG_ENABLE(airpcap,
1670 AC_HELP_STRING( [--enable-airpcap],
1671 [use AirPcap in Wireshark @<:@default=no@:>@]),
1672 enable_airpcap=$enableval
1673 if test x$enable_airpcap != xno; then
1674 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1678 dnl Checks for typedefs, structures, and compiler characteristics.
1681 # Check how we can get the time zone abbreviation
1682 AC_WIRESHARK_TIMEZONE_ABBREV
1684 # We need to know whether "struct sockaddr" has an "sa_len" member
1685 # for get_interface_list().
1687 AC_WIRESHARK_STRUCT_SA_LEN
1689 # We must know our byte order
1692 # Checks whether "-traditional" is needed when using "ioctl".
1693 # XXX - do we need this?
1694 AC_PROG_GCC_TRADITIONAL
1697 AC_CHECK_FUNC(getopt,
1699 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1701 GETOPT_LO="wsgetopt.lo"
1703 if test "$ac_cv_func_getopt" = no ; then
1704 GETOPT_LO="wsgetopt.lo"
1706 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1709 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1710 STRNCASECMP_LO="strncasecmp.lo")
1711 if test "$ac_cv_func_strncasecmp" = no ; then
1712 STRNCASECMP_LO="strncasecmp.lo"
1714 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1715 AC_SUBST(STRNCASECMP_LO)
1717 AC_CHECK_FUNCS(mkstemp mkdtemp)
1719 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1721 if test "$have_inet_aton" = no; then
1722 INET_ATON_LO="inet_aton.lo"
1723 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1727 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1728 AC_SUBST(INET_ATON_LO)
1730 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1731 dnl check for pre-BIND82 inet_pton() bug.
1732 AC_MSG_CHECKING(for broken inet_pton)
1733 AC_TRY_RUN([#include <sys/types.h>
1734 #include <sys/socket.h>
1735 #include <netinet/in.h>
1736 #include <arpa/inet.h>
1741 /* this should return 0 (error) */
1742 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1746 }], [AC_MSG_RESULT(ok);
1747 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1748 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1749 have_inet_pton=no])],
1751 if test "$have_inet_pton" = no; then
1752 INET_PTON_LO="inet_pton.lo"
1756 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1757 AC_SUBST(INET_PTON_LO)
1759 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1760 AC_MSG_CHECKING([for inet_ntop prototype])
1761 AC_TRY_COMPILE([#include <stdio.h>
1762 #include <sys/types.h>
1763 #include <sys/socket.h>
1764 #include <netinet/in.h>
1765 #include <arpa/inet.h>
1767 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1769 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1770 [Define if inet_ntop() prototype exists])], [
1771 AC_TRY_COMPILE([#include <stdio.h>
1772 #include <sys/types.h>
1773 #include <sys/socket.h>
1774 #include <netinet/in.h>
1775 #include <arpa/inet.h>
1777 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1779 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1780 [Define if inet_ntop() prototype exists])], [
1781 AC_MSG_RESULT(no)])])
1783 INET_NTOP_LO="inet_ntop.lo"
1784 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1785 [Define if inet/v6defs.h needs to be included])])
1786 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1787 AC_SUBST(INET_NTOP_LO)
1789 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1790 [STRPTIME_LO="strptime.lo"
1791 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1793 if test "$ac_cv_func_strptime" = no ; then
1794 STRPTIME_LO="strptime.lo"
1796 AC_SUBST(STRPTIME_C)
1797 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1798 AC_SUBST(STRPTIME_LO)
1800 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1801 AC_CHECK_FUNCS(issetugid)
1802 AC_CHECK_FUNCS(mmap mprotect sysconf)
1803 AC_CHECK_FUNCS(strtoll)
1805 dnl blank for now, but will be used in future
1806 AC_SUBST(wireshark_SUBDIRS)
1809 dnl check whether plugins should be enabled and, if they should be,
1810 dnl check for plugins directory - stolen from Amanda's configure.in
1812 dnl we don't wish to expand ${libdir} yet
1813 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1814 AC_ARG_WITH(plugins,
1815 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1816 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1818 if test "x$withval" = "xno"; then
1820 elif test "x$have_plugins" = "xno"; then
1821 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1822 elif test "x$withval" != "xyes"; then
1823 plugindir="$withval"
1826 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1827 if test x$have_plugins = xyes
1829 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1832 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1835 # The plugin dissectors reside in ./plugins/PROTO/
1838 AC_SUBST(PLUGIN_LIBS)
1842 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1843 # (autoconf? automake? libtool?) - with the newer version(s), it's
1844 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1846 # With older version(s) of those tool(s), however, it's not just an
1847 # alias, and the configure scripts don't work without it.
1850 AC_SUBST(LIBTOOL_DEPS)
1852 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1853 if test x$enable_static = xyes -a x$have_plugins = xyes
1855 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1857 AC_SUBST(ENABLE_STATIC)
1859 dnl Save the cacheable configure results to config.cache before recursing
1862 sinclude(plugins/Custom.m4) dnl
1863 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1865 sinclude(asn1/Custom.m4) dnl
1866 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1868 AM_CONFIG_HEADER(config.h)
1873 _CUSTOM_ASN1_AC_OUTPUT_
1874 asn1/acp133/Makefile
1876 asn1/ansi_map/Makefile
1877 asn1/ansi_tcap/Makefile
1881 asn1/charging_ase/Makefile
1886 asn1/credssp/Makefile
1895 asn1/gprscdr/Makefile
1896 asn1/gsm_map/Makefile
1905 asn1/h450-ros/Makefile
1908 asn1/HI2Operations/Makefile
1912 asn1/kerberos/Makefile
1915 asn1/logotypecertextn/Makefile
1918 asn1/lte-rrc/Makefile
1921 asn1/mpeg-audio/Makefile
1922 asn1/mpeg-pes/Makefile
1924 asn1/ns_cert_exts/Makefile
1932 asn1/pkcs12/Makefile
1933 asn1/pkinit/Makefile
1934 asn1/pkixac/Makefile
1935 asn1/pkix1explicit/Makefile
1936 asn1/pkix1implicit/Makefile
1937 asn1/pkixproxy/Makefile
1938 asn1/pkixqualified/Makefile
1939 asn1/pkixtsp/Makefile
1942 asn1/q932-ros/Makefile
1953 asn1/sbc-ap/Makefile
1956 asn1/spnego/Makefile
1964 asn1/wlancertextn/Makefile
1966 asn1/x509af/Makefile
1967 asn1/x509ce/Makefile
1968 asn1/x509if/Makefile
1969 asn1/x509sat/Makefile
1976 epan/dfilter/Makefile
1977 epan/dissectors/Makefile
1978 epan/dissectors/dcerpc/Makefile
1979 epan/dissectors/pidl/Makefile
1980 epan/ftypes/Makefile
1982 epan/wspython/Makefile
1988 packaging/macosx/Info.plist
1989 packaging/macosx/Makefile
1990 packaging/nsis/Makefile
1991 packaging/rpm/Makefile
1992 packaging/rpm/SPECS/Makefile
1993 packaging/rpm/SPECS/wireshark.spec
1994 packaging/svr4/Makefile
1995 packaging/svr4/checkinstall
1996 packaging/svr4/pkginfo
1998 plugins/asn1/Makefile
1999 plugins/docsis/Makefile
2000 plugins/ethercat/Makefile
2001 plugins/giop/Makefile
2002 plugins/gryphon/Makefile
2003 plugins/irda/Makefile
2004 plugins/m2m/Makefile
2005 plugins/mate/Makefile
2006 plugins/opcua/Makefile
2007 plugins/profinet/Makefile
2008 plugins/stats_tree/Makefile
2009 plugins/unistim/Makefile
2010 plugins/wimax/Makefile
2011 plugins/wimaxasncp/Makefile
2013 tools/lemon/Makefile
2018 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2023 if test "x$have_gtk" = "xyes"; then
2024 if test "x$with_gtk3" = "xyes"; then
2025 gui_lib_message=" (with GTK+ 3"
2027 gui_lib_message=" (with GTK+ 2"
2029 if test "x$have_ige_mac" = "xyes"; then
2030 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2032 gui_lib_message="$gui_lib_message)"
2036 if test "x$enable_setcap_install" = "xyes" ; then
2037 setcap_message="yes"
2042 if test "x$enable_setuid_install" = "xyes" ; then
2043 setuid_message="yes"
2048 if test "x$DUMPCAP_GROUP" = "x" ; then
2049 dumpcap_group_message="(none)"
2051 dumpcap_group_message="$DUMPCAP_GROUP"
2054 if test "x$want_zlib" = "xno" ; then
2060 if test "x$want_lua" = "xyes" ; then
2066 if test "x$want_python" = "xno"; then
2069 python_message="yes"
2072 if test "x$want_portaudio" = "xyes" ; then
2073 portaudio_message="yes"
2075 portaudio_message="no"
2078 if test "x$want_ssl" = "xno" ; then
2084 if test "x$want_krb5" = "xno" ; then
2087 krb5_message="yes ($ac_krb5_version)"
2090 if test "x$have_good_c_ares" = "xyes" ; then
2091 c_ares_message="yes"
2096 if test "x$have_good_adns" = "xyes" ; then
2099 if test "x$have_good_c_ares" = "xyes" ; then
2100 adns_message="no (using c-ares instead)"
2106 if test "x$have_good_libcap" = "xyes" ; then
2107 libcap_message="yes"
2112 if test "x$have_good_geoip" = "xyes" ; then
2119 echo "The Wireshark package has been configured with the following options."
2120 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2121 echo " Build tshark : $enable_tshark"
2122 echo " Build capinfos : $enable_capinfos"
2123 echo " Build editcap : $enable_editcap"
2124 echo " Build dumpcap : $enable_dumpcap"
2125 echo " Build mergecap : $enable_mergecap"
2126 echo " Build text2pcap : $enable_text2pcap"
2127 echo " Build randpkt : $enable_randpkt"
2128 echo " Build dftest : $enable_dftest"
2129 echo " Build rawshark : $enable_rawshark"
2131 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2132 echo " Install dumpcap with capabilities : $setcap_message"
2133 echo " Install dumpcap setuid : $setuid_message"
2134 echo " Use dumpcap group : $dumpcap_group_message"
2135 echo " Use plugins : $have_plugins"
2136 echo " Use Lua library : $lua_message"
2137 echo " Use Python binding : $python_message"
2138 echo " Build rtp_player : $portaudio_message"
2139 echo " Build profile binaries : $enable_profile_build"
2140 echo " Use pcap library : $want_pcap"
2141 echo " Use zlib library : $zlib_message"
2142 echo " Use kerberos library : $krb5_message"
2143 echo " Use c-ares library : $c_ares_message"
2144 echo " Use GNU ADNS library : $adns_message"
2145 echo " Use SMI MIB library : $libsmi_message"
2146 echo " Use GNU crypto library : $gcrypt_message"
2147 echo " Use SSL crypto library : $ssl_message"
2148 echo " Use IPv6 name resolution : $enable_ipv6"
2149 echo " Use gnutls library : $tls_message"
2150 echo " Use POSIX capabilities library : $libcap_message"
2151 echo " Use GeoIP library : $geoip_message"