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"
801 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
802 ], GTK_OK=no, gthread)
805 AM_PATH_GTK_2_0(2.12.0,
807 CFLAGS="$CFLAGS $GTK_CFLAGS"
808 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
809 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
810 ], GTK_OK=no, gthread)
816 # GLib checks; we require GLib 2.14 or later, and require gmodule
817 # support, as we need that for dynamically loading plugins.
818 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
819 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
820 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
821 # GLIB_CFLAGS to CFLAGS.
822 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
823 # set when generating the Makefile, so we can make programs that require
824 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
825 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
826 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
827 # programs to be built with GLib.
829 if test "$GTK_OK" = "no" ; then
831 # We don't have GTK+.
832 # If they didn't explicitly say "--disable-wireshark", fail (so
833 # that, unless they explicitly indicated that they don't want
834 # Wireshark, we stop so they know they won't be getting
835 # Wireshark unless they fix the GTK+ problem).
837 if test "x$enable_wireshark" = "xyes"; then
838 if test "x$with_gtk3" = "xyes"; then
839 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
841 AC_MSG_ERROR([GTK+ 2.12 or later isn't available, so Wireshark can't be compiled])
847 AM_PATH_GLIB_2_0(2.14.0,
849 CFLAGS="$CFLAGS $GLIB_CFLAGS"
850 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
851 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
854 # We have GTK+, and thus will be building Wireshark unless the
855 # user explicitly disabled it.
857 wireshark_bin="wireshark\$(EXEEXT)"
858 wireshark_man="wireshark.1"
859 wireshark_SUBDIRS="codecs ui/gtk"
860 # Don't use GLIB_CFLAGS
861 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
863 CFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
864 ## Define GTK_DISABLE_DEPRECATED only if GTK lt 3.2
865 ## GTK 3.2 deprecates GtkVBox & GtkHBox which are currently used extensively by Wireshark.
866 if test $gtk_config_major_version -eq 2 -o $gtk_config_minor_version -lt 2; then
867 CFLAGS="-DGTK_DISABLE_DEPRECATED $CFLAGS"
869 # CFLAGS="-DGDK_DISABLE_DEPRECATED $CFLAGS"
870 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
871 # Enable GSEAL when building with GTK > 2.20 and < 3.0
872 # (Versions prior to 2.22 lacked some necessary accessors.)
873 CFLAGS="-DGSEAL_ENABLE $CFLAGS"
877 # Error out if a glib header other than a "top level" header
878 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
880 CFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CFLAGS"
882 # Error out on the usage of deprecated glib functions
883 CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
886 # Check whether GLib modules are supported, to determine whether we
887 # can support plugins.
889 AC_MSG_CHECKING(whether GLib supports loadable modules)
890 ac_save_CFLAGS="$CFLAGS"
892 CFLAGS="$CFLAGS $GLIB_CFLAGS"
893 LIBS="$GLIB_LIBS $LIBS"
903 if (g_module_supported())
904 return 0; /* success */
906 return 1; /* failure */
908 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
909 [echo $ac_n "cross compiling; assumed OK... $ac_c"
910 ac_cv_glib_supports_modules=yes])
911 CFLAGS="$ac_save_CFLAGS"
913 if test "$ac_cv_glib_supports_modules" = yes ; then
922 # If we have <dlfcn.h>, check whether we can use dladdr to find a
923 # filename (hopefully, a full pathname, but no guarantees) for
926 if test "$ac_cv_header_dlfcn_h" = "yes"
928 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
929 ac_save_CFLAGS="$CFLAGS"
931 CFLAGS="$CFLAGS $GLIB_CFLAGS"
932 LIBS="$GLIB_LIBS $LIBS"
934 #define _GNU_SOURCE /* required on Linux, sigh */
942 if (!dladdr((void *)main, &info))
943 return 1; /* failure */
944 return 0; /* assume success */
946 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
947 [echo $ac_n "cross compiling; assumed OK... $ac_c"
948 ac_cv_dladdr_finds_executable_path=yes])
949 CFLAGS="$ac_save_CFLAGS"
951 if test x$ac_cv_dladdr_finds_executable_path = xyes
953 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
955 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
958 if test "x$no_gtk" != "xyes"
961 # We have GTK+; do we want the OS X integration functions and,
962 # if so, do we have them and, if so, which versions do we have,
963 # the old Carbon-based ones or the new Cocoa-based ones?
965 AC_MSG_CHECKING(whether to use OS X integration functions)
967 AC_ARG_WITH(osx-integration,
968 AC_HELP_STRING( [--with-osx-integration],
969 [use OS X integration functions @<:@default=yes, if available@:>@]),
971 if test $withval = no
973 want_osx_integration=no
975 want_osx_integration=yes
978 want_osx_integration=yes
980 if test "x$want_osx_integration" = "xno"; then
984 AC_WIRESHARK_OSX_INTEGRATION_CHECK
988 AC_SUBST(wireshark_bin)
989 AC_SUBST(wireshark_man)
992 # Enable/disable tshark
994 AC_ARG_ENABLE(tshark,
995 AC_HELP_STRING( [--enable-tshark],
996 [build TShark @<:@default=yes@:>@]),
997 tshark=$enableval,enable_tshark=yes)
999 if test "x$enable_tshark" = "xyes" ; then
1000 tshark_bin="tshark\$(EXEEXT)"
1001 tshark_man="tshark.1"
1002 wiresharkfilter_man="wireshark-filter.4"
1007 AC_SUBST(tshark_bin)
1008 AC_SUBST(tshark_man)
1009 AC_SUBST(wiresharkfilter_man)
1013 # Enable/disable editcap
1015 AC_ARG_ENABLE(editcap,
1016 AC_HELP_STRING( [--enable-editcap],
1017 [build editcap @<:@default=yes@:>@]),
1018 enable_editcap=$enableval,enable_editcap=yes)
1020 if test "x$enable_editcap" = "xyes" ; then
1021 editcap_bin="editcap\$(EXEEXT)"
1022 editcap_man="editcap.1"
1027 AC_SUBST(editcap_bin)
1028 AC_SUBST(editcap_man)
1030 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1033 # Enable/disable capinfos
1035 AC_ARG_ENABLE(capinfos,
1036 AC_HELP_STRING( [--enable-capinfos],
1037 [build capinfos @<:@default=yes@:>@]),
1038 enable_capinfos=$enableval,enable_capinfos=yes)
1040 if test "x$enable_capinfos" = "xyes" ; then
1041 capinfos_bin="capinfos\$(EXEEXT)"
1042 capinfos_man="capinfos.1"
1047 AC_SUBST(capinfos_bin)
1048 AC_SUBST(capinfos_man)
1051 # Enable/disable mergecap
1053 AC_ARG_ENABLE(mergecap,
1054 AC_HELP_STRING( [--enable-mergecap],
1055 [build mergecap @<:@default=yes@:>@]),
1056 enable_mergecap=$enableval,enable_mergecap=yes)
1058 if test "x$enable_mergecap" = "xyes" ; then
1059 mergecap_bin="mergecap\$(EXEEXT)"
1060 mergecap_man="mergecap.1"
1065 AC_SUBST(mergecap_bin)
1066 AC_SUBST(mergecap_man)
1069 # Enable/disable text2pcap
1071 AC_ARG_ENABLE(text2pcap,
1072 AC_HELP_STRING( [--enable-text2pcap],
1073 [build text2pcap @<:@default=yes@:>@]),
1074 text2pcap=$enableval,enable_text2pcap=yes)
1076 if test "x$enable_text2pcap" = "xyes" ; then
1077 text2pcap_bin="text2pcap\$(EXEEXT)"
1078 text2pcap_man="text2pcap.1"
1083 AC_SUBST(text2pcap_bin)
1084 AC_SUBST(text2pcap_man)
1087 # Enable/disable dftest
1089 AC_ARG_ENABLE(dftest,
1090 AC_HELP_STRING( [--enable-dftest],
1091 [build dftest @<:@default=yes@:>@]),
1092 enable_dftest=$enableval,enable_dftest=yes)
1094 if test "x$enable_dftest" = "xyes" ; then
1095 dftest_bin="dftest\$(EXEEXT)"
1096 dftest_man="dftest.1"
1101 AC_SUBST(dftest_bin)
1102 AC_SUBST(dftest_man)
1105 # Enable/disable randpkt
1107 AC_ARG_ENABLE(randpkt,
1108 AC_HELP_STRING( [--enable-randpkt],
1109 [build randpkt @<:@default=yes@:>@]),
1110 enable_randpkt=$enableval,enable_randpkt=yes)
1112 if test "x$enable_randpkt" = "xyes" ; then
1113 randpkt_bin="randpkt\$(EXEEXT)"
1114 randpkt_man="randpkt.1"
1119 AC_SUBST(randpkt_bin)
1120 AC_SUBST(randpkt_man)
1124 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1125 dnl "gethostbyname()".
1126 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1128 dnl Checks for "connect()", used as a proxy for "socket()" - and
1129 dnl "-lsocket", if we need it to get "connect()".
1130 AC_WIRESHARK_SOCKET_LIB_CHECK
1133 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1136 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1137 [use libpcap for packet capturing @<:@default=yes@:>@]),
1139 if test $withval = no
1142 elif test $withval = yes
1153 if test "x$want_pcap" = "xno" ; then
1157 AC_WIRESHARK_PCAP_CHECK
1160 # Enable/disable dumpcap
1163 AC_MSG_CHECKING(whether to build dumpcap)
1165 AC_ARG_ENABLE(dumpcap,
1166 AC_HELP_STRING( [--enable-dumpcap],
1167 [build dumpcap @<:@default=yes@:>@]),
1168 enable_dumpcap=$enableval,enable_dumpcap=yes)
1170 if test "x$enable_dumpcap" = "xyes" ; then
1171 if test "x$want_pcap" = "xno" ; then
1173 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1181 if test "x$enable_dumpcap" = "xyes" ; then
1182 dumpcap_bin="dumpcap\$(EXEEXT)"
1183 dumpcap_man="dumpcap.1"
1188 AC_SUBST(dumpcap_bin)
1189 AC_SUBST(dumpcap_man)
1191 # Enable/disable rawshark
1194 AC_MSG_CHECKING(whether to build rawshark)
1196 AC_ARG_ENABLE(rawshark,
1197 AC_HELP_STRING( [--enable-rawshark],
1198 [build rawshark @<:@default=yes@:>@]),
1199 rawshark=$enableval,enable_rawshark=yes)
1201 if test "x$enable_rawshark" = "xyes" ; then
1202 if test "x$want_pcap" = "xno" ; then
1204 AC_MSG_RESULT(pcap not available - disabling rawshark)
1212 if test "x$enable_rawshark" = "xyes" ; then
1213 rawshark_bin="rawshark\$(EXEEXT)"
1214 rawshark_man="rawshark.1"
1219 AC_SUBST(rawshark_bin)
1220 AC_SUBST(rawshark_man)
1222 dnl Use pcap-ng by default
1223 AC_ARG_ENABLE(pcap-ng-default,
1224 AC_HELP_STRING( [--enable-pcap-ng-default],
1225 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1226 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1227 if test x$enable_pcap_ng_default = xyes; then
1228 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1231 dnl pcap remote check
1232 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1234 AC_ARG_WITH(pcap-remote,
1235 AC_HELP_STRING([--with-pcap-remote],
1236 [use libpcap remote capturing (requires libpcap)]),
1238 if test $withval = no
1242 want_pcap_remote=yes
1247 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1251 AC_WIRESHARK_PCAP_REMOTE_CHECK
1255 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1258 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1259 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1261 if test "x$withval" = "xno"
1264 elif test "x$withval" = "xyes"
1273 # Use zlib if it's present, otherwise don't.
1275 want_zlib=ifavailable
1278 if test "x$want_zlib" = "xno" ; then
1282 AC_WIRESHARK_ZLIB_CHECK
1283 if test "x$want_zlib" = "xno" ; then
1284 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1286 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1287 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1293 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1296 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1297 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1299 if test $withval = no
1302 elif test $withval = yes
1311 # Use liblua by default
1313 want_lua=ifavailable
1316 if test "x$want_lua" = "xno" ; then
1320 AC_WIRESHARK_LIBLUA_CHECK
1321 if test "x$want_lua" = "xno" ; then
1322 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1325 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1329 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1331 AC_ARG_WITH(portaudio,
1332 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1333 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1335 if test $withval = no
1338 elif test $withval = yes
1343 portaudio_dir=$withval
1347 # Use libportaudio by default
1349 want_portaudio=ifavailable
1352 if test "x$want_portaudio" = "xno" ; then
1356 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1357 if test "x$want_portaudio" = "xno" ; then
1358 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1361 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1366 AC_HELP_STRING( [--enable-ipv6],
1367 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1368 enable_ipv6=$enableval,enable_ipv6=yes)
1370 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1371 if test "x$enable_ipv6" = "xno" ; then
1375 AC_WIRESHARK_IPV6_STACK
1379 dnl Check if dumpcap should be installed with filesystem capabilities
1380 AC_PATH_PROG(SETCAP, setcap)
1381 AC_ARG_ENABLE(setcap-install,
1382 AC_HELP_STRING( [--enable-setcap-install],
1383 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1384 enable_setcap_install=$enableval,enable_setcap_install=no)
1386 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1387 if test "x$enable_setcap_install" = "xno" ; then
1390 if test "x$SETCAP" = "x" ; then
1391 AC_MSG_RESULT(no. Setcap not found)
1392 elif test "x$enable_dumpcap" = "xno" ; then
1393 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1399 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1401 dnl Check if dumpcap should be installed setuid
1402 AC_ARG_ENABLE(setuid-install,
1403 AC_HELP_STRING( [--enable-setuid-install],
1404 [install dumpcap as setuid @<:@default=no@:>@]),
1405 enable_setuid_install=$enableval,enable_setuid_install=no)
1407 AC_MSG_CHECKING(whether to install dumpcap setuid)
1408 if test "x$enable_setuid_install" = "xno" ; then
1411 if test "x$enable_setcap_install" = "xyes" ; then
1412 enable_setuid_install=no
1413 AC_MSG_RESULT(no; using setcap instead)
1414 elif test "x$enable_dumpcap" = "xno" ; then
1415 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1421 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1422 AC_CHECK_FUNCS(setresuid setresgid)
1424 dnl ...but our Network Operations group is named "no"!
1426 AC_ARG_WITH(dumpcap-group,
1427 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1428 [restrict dumpcap to GROUP]),
1430 if test "x$withval" = "xyes"; then
1431 AC_MSG_ERROR([No dumpcap group specified.])
1432 elif test "x$withval" != "xno"; then
1433 if test "x$enable_dumpcap" = "xno" ; then
1434 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1436 AC_MSG_RESULT($withval)
1437 DUMPCAP_GROUP="$withval"
1440 AC_SUBST(DUMPCAP_GROUP)
1441 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1443 dnl libcap (not libpcap) check
1445 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1448 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1449 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1451 if test "x$withval" = "xno"; then
1453 elif test "x$withval" = "xyes"; then
1455 elif test -d "$withval"; then
1457 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1460 if test "x$with_libcap" = "xno" ; then
1464 AC_WIRESHARK_LIBCAP_CHECK
1466 AC_SUBST(LIBCAP_LIBS)
1468 dnl Checks for header files.
1469 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1470 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)
1471 AC_CHECK_HEADERS(netinet/in.h)
1472 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1476 AC_MSG_CHECKING(whether to use SSL library)
1479 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1480 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1482 if test "x$withval" = "xno"; then
1484 elif test "x$withval" = "xyes"; then
1486 elif test -d "$withval"; then
1488 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1493 if test "x$want_ssl" = "xyes"; then
1495 AC_CHECK_LIB(crypto,EVP_md5,
1500 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1508 AC_MSG_CHECKING(whether to use Kerberos library)
1511 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1512 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1514 if test $withval = no
1517 elif test $withval = yes
1526 # Use Kerberos library if available, otherwise don't.
1528 want_krb5=ifavailable
1531 if test "x$want_krb5" = "xno" ; then
1535 AC_WIRESHARK_KRB5_CHECK
1541 AC_MSG_CHECKING(whether to use the c-ares library if available)
1544 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1545 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1547 if test "x$withval" = "xno"; then
1549 elif test "x$withval" = "xyes"; then
1551 elif test -d "$withval"; then
1553 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1556 if test "x$want_c_ares" = "xno" ; then
1560 AC_WIRESHARK_C_ARES_CHECK
1562 AC_SUBST(C_ARES_LIBS)
1566 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1569 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1570 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1572 if test "x$withval" = "xno"; then
1574 elif test "x$withval" = "xyes"; then
1576 elif test -d "$withval"; then
1578 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1581 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1585 AC_WIRESHARK_ADNS_CHECK
1591 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1594 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1595 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1597 if test "x$withval" = "xno"; then
1599 elif test "x$withval" = "xyes"; then
1601 elif test -d "$withval"; then
1603 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1606 if test "x$want_geoip" = "xno"; then
1610 AC_WIRESHARK_GEOIP_CHECK
1612 AC_SUBST(GEOIP_LIBS)
1614 dnl Python devel Check
1615 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1618 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1619 [use Python interpreter (installed in DIR, if supplied) @<:@default=yes, if available@:>@ (EXPERIMENTAL)]),
1621 pythondir='${libdir}/wireshark/python/${VERSION}'
1622 if test "x$withval" = "xno"
1625 elif test "x$withval" = "xyes"
1630 pythondir="$withval"
1634 # Use the embeddable Python interpreter if it's present,
1637 want_pythin=ifavailable
1638 pythondir='${libdir}/wireshark/python/${VERSION}'
1640 if test "x$want_python" = "xno" ; then
1644 AC_WIRESHARK_PYTHON_CHECK
1646 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1650 # Define WS_VAR_IMPORT appropriately for declarations of external
1651 # variables exported from dynamically-linked libraries.
1653 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1656 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1657 # never return (just like Charlie on the MTA).
1659 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1660 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1661 # follow the function name, so we need two different flavors of
1664 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1666 AC_ARG_ENABLE(airpcap,
1667 AC_HELP_STRING( [--enable-airpcap],
1668 [use AirPcap in Wireshark @<:@default=no@:>@]),
1669 enable_airpcap=$enableval
1670 if test x$enable_airpcap != xno; then
1671 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1675 dnl Checks for typedefs, structures, and compiler characteristics.
1678 # Check how we can get the time zone abbreviation
1679 AC_WIRESHARK_TIMEZONE_ABBREV
1681 # We need to know whether "struct sockaddr" has an "sa_len" member
1682 # for get_interface_list().
1684 AC_WIRESHARK_STRUCT_SA_LEN
1686 # We must know our byte order
1689 # Checks whether "-traditional" is needed when using "ioctl".
1690 # XXX - do we need this?
1691 AC_PROG_GCC_TRADITIONAL
1694 AC_CHECK_FUNC(getopt,
1696 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1698 GETOPT_LO="wsgetopt.lo"
1700 if test "$ac_cv_func_getopt" = no ; then
1701 GETOPT_LO="wsgetopt.lo"
1703 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1706 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1707 STRNCASECMP_LO="strncasecmp.lo")
1708 if test "$ac_cv_func_strncasecmp" = no ; then
1709 STRNCASECMP_LO="strncasecmp.lo"
1711 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1712 AC_SUBST(STRNCASECMP_LO)
1714 AC_CHECK_FUNCS(mkstemp mkdtemp)
1716 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1718 if test "$have_inet_aton" = no; then
1719 INET_ATON_LO="inet_aton.lo"
1720 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1724 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1725 AC_SUBST(INET_ATON_LO)
1727 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1728 dnl check for pre-BIND82 inet_pton() bug.
1729 AC_MSG_CHECKING(for broken inet_pton)
1730 AC_TRY_RUN([#include <sys/types.h>
1731 #include <sys/socket.h>
1732 #include <netinet/in.h>
1733 #include <arpa/inet.h>
1738 /* this should return 0 (error) */
1739 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1743 }], [AC_MSG_RESULT(ok);
1744 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1745 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1746 have_inet_pton=no])],
1748 if test "$have_inet_pton" = no; then
1749 INET_PTON_LO="inet_pton.lo"
1753 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1754 AC_SUBST(INET_PTON_LO)
1756 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1757 AC_MSG_CHECKING([for inet_ntop prototype])
1758 AC_TRY_COMPILE([#include <stdio.h>
1759 #include <sys/types.h>
1760 #include <sys/socket.h>
1761 #include <netinet/in.h>
1762 #include <arpa/inet.h>
1764 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1766 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1767 [Define if inet_ntop() prototype exists])], [
1768 AC_TRY_COMPILE([#include <stdio.h>
1769 #include <sys/types.h>
1770 #include <sys/socket.h>
1771 #include <netinet/in.h>
1772 #include <arpa/inet.h>
1774 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1776 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1777 [Define if inet_ntop() prototype exists])], [
1778 AC_MSG_RESULT(no)])])
1780 INET_NTOP_LO="inet_ntop.lo"
1781 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1782 [Define if inet/v6defs.h needs to be included])])
1783 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1784 AC_SUBST(INET_NTOP_LO)
1786 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1787 [STRPTIME_LO="strptime.lo"
1788 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1790 if test "$ac_cv_func_strptime" = no ; then
1791 STRPTIME_LO="strptime.lo"
1793 AC_SUBST(STRPTIME_C)
1794 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1795 AC_SUBST(STRPTIME_LO)
1797 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1798 AC_CHECK_FUNCS(issetugid)
1799 AC_CHECK_FUNCS(mmap mprotect sysconf)
1800 AC_CHECK_FUNCS(strtoll)
1802 dnl blank for now, but will be used in future
1803 AC_SUBST(wireshark_SUBDIRS)
1806 dnl check whether plugins should be enabled and, if they should be,
1807 dnl check for plugins directory - stolen from Amanda's configure.in
1809 dnl we don't wish to expand ${libdir} yet
1810 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1811 AC_ARG_WITH(plugins,
1812 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1813 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1815 if test "x$withval" = "xno"; then
1817 elif test "x$have_plugins" = "xno"; then
1818 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1819 elif test "x$withval" != "xyes"; then
1820 plugindir="$withval"
1823 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1824 if test x$have_plugins = xyes
1826 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1829 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1832 # The plugin dissectors reside in ./plugins/PROTO/
1835 AC_SUBST(PLUGIN_LIBS)
1839 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1840 # (autoconf? automake? libtool?) - with the newer version(s), it's
1841 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1843 # With older version(s) of those tool(s), however, it's not just an
1844 # alias, and the configure scripts don't work without it.
1847 AC_SUBST(LIBTOOL_DEPS)
1849 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1850 if test x$enable_static = xyes -a x$have_plugins = xyes
1852 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1854 AC_SUBST(ENABLE_STATIC)
1856 dnl Save the cacheable configure results to config.cache before recursing
1859 sinclude(plugins/Custom.m4) dnl
1860 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1862 sinclude(asn1/Custom.m4) dnl
1863 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1865 AM_CONFIG_HEADER(config.h)
1870 _CUSTOM_ASN1_AC_OUTPUT_
1871 asn1/acp133/Makefile
1873 asn1/ansi_map/Makefile
1874 asn1/ansi_tcap/Makefile
1878 asn1/charging_ase/Makefile
1883 asn1/credssp/Makefile
1892 asn1/gprscdr/Makefile
1893 asn1/gsm_map/Makefile
1902 asn1/h450-ros/Makefile
1905 asn1/HI2Operations/Makefile
1909 asn1/kerberos/Makefile
1912 asn1/logotypecertextn/Makefile
1915 asn1/lte-rrc/Makefile
1917 asn1/mpeg-audio/Makefile
1918 asn1/mpeg-pes/Makefile
1920 asn1/ns_cert_exts/Makefile
1928 asn1/pkcs12/Makefile
1929 asn1/pkinit/Makefile
1930 asn1/pkixac/Makefile
1931 asn1/pkix1explicit/Makefile
1932 asn1/pkix1implicit/Makefile
1933 asn1/pkixproxy/Makefile
1934 asn1/pkixqualified/Makefile
1935 asn1/pkixtsp/Makefile
1938 asn1/q932-ros/Makefile
1949 asn1/sbc-ap/Makefile
1952 asn1/spnego/Makefile
1960 asn1/wlancertextn/Makefile
1962 asn1/x509af/Makefile
1963 asn1/x509ce/Makefile
1964 asn1/x509if/Makefile
1965 asn1/x509sat/Makefile
1972 epan/dfilter/Makefile
1973 epan/dissectors/Makefile
1974 epan/dissectors/dcerpc/Makefile
1975 epan/dissectors/pidl/Makefile
1976 epan/ftypes/Makefile
1978 epan/wspython/Makefile
1984 packaging/macosx/Info.plist
1985 packaging/macosx/Makefile
1986 packaging/nsis/Makefile
1987 packaging/rpm/Makefile
1988 packaging/rpm/SPECS/Makefile
1989 packaging/rpm/SPECS/wireshark.spec
1990 packaging/svr4/Makefile
1991 packaging/svr4/checkinstall
1992 packaging/svr4/pkginfo
1994 plugins/asn1/Makefile
1995 plugins/docsis/Makefile
1996 plugins/ethercat/Makefile
1997 plugins/giop/Makefile
1998 plugins/gryphon/Makefile
1999 plugins/irda/Makefile
2000 plugins/m2m/Makefile
2001 plugins/mate/Makefile
2002 plugins/opcua/Makefile
2003 plugins/profinet/Makefile
2004 plugins/stats_tree/Makefile
2005 plugins/unistim/Makefile
2006 plugins/wimax/Makefile
2007 plugins/wimaxasncp/Makefile
2009 tools/lemon/Makefile
2014 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2019 if test "x$enable_setcap_install" = "xyes" ; then
2020 setcap_message="yes"
2026 if test "x$enable_setuid_install" = "xyes" ; then
2027 setuid_message="yes"
2032 if test "x$DUMPCAP_GROUP" = "x" ; then
2033 dumpcap_group_message="(none)"
2035 dumpcap_group_message="$DUMPCAP_GROUP"
2038 if test "x$want_zlib" = "xno" ; then
2044 if test "x$want_lua" = "xyes" ; then
2050 if test "x$want_python" = "xno"; then
2053 python_message="yes"
2056 if test "x$want_portaudio" = "xyes" ; then
2057 portaudio_message="yes"
2059 portaudio_message="no"
2062 if test "x$want_ssl" = "xno" ; then
2068 if test "x$want_krb5" = "xno" ; then
2071 krb5_message="yes ($ac_krb5_version)"
2074 if test "x$have_good_c_ares" = "xyes" ; then
2075 c_ares_message="yes"
2080 if test "x$have_good_adns" = "xyes" ; then
2083 if test "x$have_good_c_ares" = "xyes" ; then
2084 adns_message="no (using c-ares instead)"
2090 if test "x$have_good_libcap" = "xyes" ; then
2091 libcap_message="yes"
2096 if test "x$have_good_geoip" = "xyes" ; then
2103 echo "The Wireshark package has been configured with the following options."
2104 echo " Build wireshark : $enable_wireshark"
2105 echo " Build tshark : $enable_tshark"
2106 echo " Build capinfos : $enable_capinfos"
2107 echo " Build editcap : $enable_editcap"
2108 echo " Build dumpcap : $enable_dumpcap"
2109 echo " Build mergecap : $enable_mergecap"
2110 echo " Build text2pcap : $enable_text2pcap"
2111 echo " Build randpkt : $enable_randpkt"
2112 echo " Build dftest : $enable_dftest"
2113 echo " Build rawshark : $enable_rawshark"
2115 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2116 echo " Install dumpcap with capabilities : $setcap_message"
2117 echo " Install dumpcap setuid : $setuid_message"
2118 echo " Use dumpcap group : $dumpcap_group_message"
2119 echo " Use plugins : $have_plugins"
2120 echo " Use Lua library : $lua_message"
2121 echo " Use Python binding : $python_message"
2122 echo " Build rtp_player : $portaudio_message"
2123 echo " Build profile binaries : $enable_profile_build"
2124 echo " Use pcap library : $want_pcap"
2125 echo " Use zlib library : $zlib_message"
2126 echo " Use kerberos library : $krb5_message"
2127 echo " Use c-ares library : $c_ares_message"
2128 echo " Use GNU ADNS library : $adns_message"
2129 echo " Use SMI MIB library : $libsmi_message"
2130 echo " Use GNU crypto library : $gcrypt_message"
2131 echo " Use SSL crypto library : $ssl_message"
2132 echo " Use IPv6 name resolution : $enable_ipv6"
2133 echo " Use gnutls library : $tls_message"
2134 echo " Use POSIX capabilities library : $libcap_message"
2135 echo " Use GeoIP library : $geoip_message"