5 AC_INIT(wireshark, 1.7.0)
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(-Wattributes)
331 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
332 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
333 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
334 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
335 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
336 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
337 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
338 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
340 # epan/dissectors/packet-ncp2222.inc blocks this one
343 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
345 # GLib blocks this for now.
347 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
349 # All the registration functions block these for now.
351 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
352 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
354 # epan/dissectors/packet-afs.c blocks this one for now.
356 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
358 # More cleanup needed for this on LP64.
360 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
363 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
364 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
365 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
366 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
367 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
368 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
369 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
370 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
371 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
372 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition)
373 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable) ## for now
375 # Use the faster pre gcc 4.5 floating point precision if available;
376 # clang doesn't error out on -f options that it doesn't know about,
377 # it just warns and ignores them, so this check doesn't cause us
378 # to omit -fexcess-precision=fast, which produces a pile of
381 if test "x$CC" != "xclang" ; then
382 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
385 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
386 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
387 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
388 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
389 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
390 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
393 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
394 # CFLAGS as well, so we can use _U_ to flag unused function arguments and
395 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
396 # to flag an unused function argument will compile with non-GCC, non-clang
399 # XXX - other compilers?
401 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
402 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
404 CFLAGS="-D_U_=\"\" $CFLAGS"
407 # If we're running GCC or CLang, always use FORTIFY_SOURCE=2
408 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
409 # Note: FORTIFY_SOURCE is only effective for gcc -O2 (and -O1 ?)
410 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
411 CFLAGS="-D_FORTIFY_SOURCE=2 $CFLAGS"
415 # If the compiler supports GCC-style flags, enable a barrier "stop on
417 # This barrier is set for a very large part of the code. However, it is
418 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
420 warnings_as_errors_default="yes"
421 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
422 AC_ARG_ENABLE(warnings-as-errors,
423 AC_HELP_STRING( [--enable-warnings-as-errors],
424 [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]),
426 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
427 with_warnings_as_errors="yes"
430 with_warnings_as_errors="no"
434 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
435 with_warnings_as_errors="yes"
438 with_warnings_as_errors="no"
442 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
445 # Add any platform-specific compiler flags needed.
447 AC_MSG_CHECKING(for platform-specific compiler flags)
448 if test "x$GCC" = "xyes" ; then
450 # GCC - do any platform-specific tweaking necessary.
454 # the X11 headers don't automatically include prototype info
455 # and a lot don't include the return type
456 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
457 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
461 # See comments above about Apple's lovely C compiler.
463 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
464 # defines __GNUC__"; clang defines __GNUC__, so that
465 # means we think clang is GCC.
467 # clang whines about -no-cpp-precomp being unused
468 # so we check whether this is really clang, and
469 # only add -no-cpp-precomp if it's not.
471 if test "x$CC" != "xclang" ; then
472 CFLAGS="-no-cpp-precomp $CFLAGS"
473 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
476 # Clang, clang, clang went the trolley....
478 AC_MSG_RESULT(none needed)
482 AC_MSG_RESULT(none needed)
487 # Not GCC - assume it's the vendor's compiler.
492 # HP's ANSI C compiler; flags suggested by Jost Martin.
493 # "-Ae" for ANSI C plus extensions such as "long long".
494 # "+O2", for optimization. XXX - works with "-g"?
496 CFLAGS="-Ae +O2 $CFLAGS"
497 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
501 # It may be called "cc", but it's really a GCC derivative
502 # with a problematic special precompiler and precompiled
503 # headers; turn off the special precompiler, as some
504 # apparently-legal code won't compile with its precompiled
507 # On the other hand, if it's called "clang", it's not a
508 # GCC derivative, and it whines if you pass it
511 # XXX - is there any version of autoconf we support
512 # where it uses another way to decide if the compiler
515 if test "x$CC" != "xclang" ; then
516 CFLAGS="-no-cpp-precomp $CFLAGS"
517 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
520 # Clang, clang, clang went the trolley....
522 AC_MSG_RESULT(none needed)
526 AC_MSG_RESULT(none needed)
532 # Add any platform-specific linker flags needed.
534 AC_MSG_CHECKING(for platform-specific linker flags)
538 # Add -Wl,-single_module to the LDFLAGS used with shared
539 # libraries, to fix some error that show up in some cases;
540 # some Apple documentation recommends it for most shared
543 LDFLAGS_SHAREDLIB="-Wl,-single_module"
545 # Add -Wl,-search_paths_first to make sure that if we search
546 # directories A and B, in that order, for a given library, a
547 # non-shared version in directory A, rather than a shared
548 # version in directory B, is chosen (so we can use
549 # --with-pcap=/usr/local to force all programs to be linked
550 # with a static version installed in /usr/local/lib rather than
551 # the system version in /usr/lib).
553 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
554 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
558 # Shared libraries in cygwin/Win32 must never contain
561 LDFLAGS="$LDFLAGS -no-undefined"
562 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
565 AC_MSG_RESULT(none needed)
568 AC_SUBST(LDFLAGS_SHAREDLIB)
570 # Control silent compiling
571 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
574 # On OS X, if we find the headers for Core Foundation, Launch Services,
575 # and Core Services, add -framework options to link with Application
576 # Services (of which Launch Services is a subframework), Core Foundation
577 # (required by the Launch Services APIs), and Core Services, so we can
578 # use them to launch a Web browser from the Help menu and to use
579 # Gestalt() to get the Mac OS X version number.
584 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
586 ac_coreservices_frameworks="-framework CoreServices"
587 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
588 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
591 # include <CoreFoundation/CFBase.h>
592 # include <CoreFoundation/CFString.h>
593 # include <CoreFoundation/CFURL.h>
594 # include <ApplicationServices/ApplicationServices.h>
595 # include <CoreServices/CoreServices.h>
598 CFStringRef url_CFString;
603 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
604 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
605 status = LSOpenCFURLRef(url_CFURL, NULL);
607 Gestalt(gestaltSystemVersion, &os_version);
609 ac_cv_can_use_osx_frameworks=yes,
610 ac_cv_can_use_osx_frameworks=no,
611 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
612 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
613 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
614 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
615 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
623 AC_SUBST(CORESERVICES_FRAMEWORKS)
624 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
627 # If using $prefix we add "$prefix/include" to the include search path
628 # and "$prefix/lib" to the library search path.
630 if test "x$prefix" != "x" ; then
631 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
632 if test -d $prefix/include ; then
635 # Arrange that we search for header files in "$prefix/include", as
636 # various packages we use may have been installed under "$prefix/include".
638 CFLAGS="$CFLAGS -I$prefix/include"
639 CPPFLAGS="$CPPFLAGS -I$prefix/include"
642 # Arrange that we search for libraries in "$prefix/lib".
644 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
650 dnl Look in /usr/local for header files and libraries ?
651 dnl XXX FIXME don't include /usr/local if it is already in the system
652 dnl search path as this causes gcc 3.2 on Linux to complain about a change
653 dnl of the system search order for includes
654 AC_ARG_ENABLE(usr-local,
655 AC_HELP_STRING( [--enable-usr-local],
656 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
657 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
659 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
660 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
661 if test -d "/usr/local"; then
664 # Arrange that we search for header files in the source directory
665 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
666 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
667 # may have been installed under "/usr/local/include".
669 CFLAGS="$CFLAGS -I/usr/local/include"
670 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
673 # Arrange that we search for libraries in "/usr/local/lib".
675 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
684 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
689 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
690 if test x$LD_LIBRARY_PATH != x ; then
691 LIBS="$LIBS -R$LD_LIBRARY_PATH"
692 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
694 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
700 # Check for versions of "sed" inadequate to handle, in libtool, a list
701 # of object files as large as the list in Wireshark.
703 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
704 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
705 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
706 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
707 # is the only "sed" that comes with Solaris that can handle Wireshark.
709 # Add any checks here that are necessary for other OSes.
711 AC_WIRESHARK_GNU_SED_CHECK
712 if test "$HAVE_GNU_SED" = no ; then
715 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
717 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
719 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
734 # Enable/disable tshark
736 AC_ARG_ENABLE(wireshark,
737 AC_HELP_STRING( [--enable-wireshark],
738 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
739 enable_wireshark=$enableval,enable_wireshark=yes)
741 AC_ARG_ENABLE(packet-editor,
742 AC_HELP_STRING( [--enable-packet-editor],
743 [add support for packet editor in Wireshark @<:@default=no@:>@]),
744 enable_packet_editor=$enableval,enable_packet_editor=no)
745 if test x$enable_packet_editor = xyes; then
746 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
749 AC_ARG_ENABLE(threads,
750 AC_HELP_STRING( [--enable-threads],
751 [use threads in Wireshark @<:@default=yes@:>@]),
752 enable_threads=$enableval,enable_threads=yes)
753 if test x$enable_threads = xyes; then
754 AC_DEFINE(USE_THREADS, 1, [Support for threads])
757 AC_ARG_ENABLE(profile-build,
758 AC_HELP_STRING( [--enable-profile-build],
759 [build profile-ready binaries @<:@default=no@:>@]),
760 enable_profile_build=$enableval,enable_profile_build=no)
761 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
762 AC_MSG_CHECKING(if profile builds must be generated)
763 if test "x$enable_profile_build" = "xyes" ; then
764 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
766 CFLAGS=" -pg $CFLAGS"
769 echo "Building profile binaries currently only supported for GCC and clang."
775 # Create DATAFILE_DIR #define for config.h
776 datafiledir=$datadir/wireshark
778 test "x$prefix" = xNONE && prefix=$ac_default_prefix
779 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
780 # Ugly hack, but I don't see how this problem can be solved
781 # properly that DATAFILE_DIR had a value starting with
782 # "${prefix}/" instead of e.g. "/usr/local/"
783 eval eval echo "$datafiledir"
785 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
787 # Create DOC_DIR #define for config.h
789 test "x$prefix" = xNONE && prefix=$ac_default_prefix
790 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
791 # Ugly hack, but I don't see how this problem can be solved
792 # properly that DOC_DIR had a value starting with
793 # "${prefix}/" instead of e.g. "/usr/local/"
794 eval eval echo "$docdir"
796 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
798 # GTK checks; we require GTK+ 2.12 or later.
799 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
800 # programs to be built with GTK+.
802 if test "x$enable_wireshark" = "xyes"; then
803 if test "x$with_gtk3" = "xyes"; then
804 AM_PATH_GTK_3_0(3.0.0,
806 CFLAGS="$CFLAGS $GTK_CFLAGS"
807 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
808 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
809 ], GTK_OK=no, gthread)
812 AM_PATH_GTK_2_0(2.12.0,
814 CFLAGS="$CFLAGS $GTK_CFLAGS"
815 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
816 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
817 ], GTK_OK=no, gthread)
823 AC_ARG_ENABLE(ui-manager,
824 AC_HELP_STRING( [--enable-ui-manager],
825 [use ui-manager in Wireshark (experimental) @<:@default=yes@:>@]),
826 enable_uimanager=$enableval,enable_uimanager=yes)
827 if test x$enable_uimanager = xyes -o x$with_gtk3 = xyes; then
828 AC_DEFINE(MAIN_MENU_USE_UIMANAGER, 1, [Use GTK ui-manager])
831 # GLib checks; we require GLib 2.14 or later, and require gmodule
832 # support, as we need that for dynamically loading plugins.
833 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
834 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
835 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
836 # GLIB_CFLAGS to CFLAGS.
837 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
838 # set when generating the Makefile, so we can make programs that require
839 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
840 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
841 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
842 # programs to be built with GLib.
844 if test "$GTK_OK" = "no" ; then
846 # We don't have GTK+.
847 # If they didn't explicitly say "--disable-wireshark", fail (so
848 # that, unless they explicitly indicated that they don't want
849 # Wireshark, we stop so they know they won't be getting
850 # Wireshark unless they fix the GTK+ problem).
852 if test "x$enable_wireshark" = "xyes"; then
853 if test "x$with_gtk3" = "xyes"; then
854 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
856 AC_MSG_ERROR([GTK+ 2.12 or later isn't available, so Wireshark can't be compiled])
862 AM_PATH_GLIB_2_0(2.14.0,
864 CFLAGS="$CFLAGS $GLIB_CFLAGS"
865 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
866 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
869 # We have GTK+, and thus will be building Wireshark unless the
870 # user explicitly disabled it.
872 wireshark_bin="wireshark\$(EXEEXT)"
873 wireshark_man="wireshark.1"
874 wireshark_SUBDIRS="codecs gtk"
875 # Don't use GLIB_CFLAGS
876 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
878 CFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
879 CFLAGS="-DGTK_DISABLE_DEPRECATED $CFLAGS"
880 # CFLAGS="-DGDK_DISABLE_DEPRECATED $CFLAGS"
881 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
882 # Enable GSEAL when building with GTK > 2.20 and < 3.0
883 # (Versions prior to 2.22 lacked some necessary accessors.)
884 CFLAGS="-DGSEAL_ENABLE $CFLAGS"
888 # Error out if a glib header other than a "top level" header
889 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
891 CFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CFLAGS"
893 # Error out on the usage of deprecated glib functions
894 CFLAGS="-DG_DISABLE_DEPRECATED $CFLAGS"
897 # Check whether GLib modules are supported, to determine whether we
898 # can support plugins.
900 AC_MSG_CHECKING(whether GLib supports loadable modules)
901 ac_save_CFLAGS="$CFLAGS"
903 CFLAGS="$CFLAGS $GLIB_CFLAGS"
904 LIBS="$GLIB_LIBS $LIBS"
914 if (g_module_supported())
915 return 0; /* success */
917 return 1; /* failure */
919 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
920 [echo $ac_n "cross compiling; assumed OK... $ac_c"
921 ac_cv_glib_supports_modules=yes])
922 CFLAGS="$ac_save_CFLAGS"
924 if test "$ac_cv_glib_supports_modules" = yes ; then
933 # If we have <dlfcn.h>, check whether we can use dladdr to find a
934 # filename (hopefully, a full pathname, but no guarantees) for
937 if test "$ac_cv_header_dlfcn_h" = "yes"
939 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
940 ac_save_CFLAGS="$CFLAGS"
942 CFLAGS="$CFLAGS $GLIB_CFLAGS"
943 LIBS="$GLIB_LIBS $LIBS"
945 #define _GNU_SOURCE /* required on Linux, sigh */
953 if (!dladdr((void *)main, &info))
954 return 1; /* failure */
955 return 0; /* assume success */
957 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
958 [echo $ac_n "cross compiling; assumed OK... $ac_c"
959 ac_cv_dladdr_finds_executable_path=yes])
960 CFLAGS="$ac_save_CFLAGS"
962 if test x$ac_cv_dladdr_finds_executable_path = xyes
964 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
966 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
969 if test "x$no_gtk" != "xyes"
972 # We have GTK+; do we want the OS X integration functions and,
973 # if so, do we have them and, if so, which versions do we have,
974 # the old Carbon-based ones or the new Cocoa-based ones?
976 AC_MSG_CHECKING(whether to use OS X integration functions)
978 AC_ARG_WITH(osx-integration,
979 AC_HELP_STRING( [--with-osx-integration],
980 [use OS X integration functions @<:@default=yes, if available@:>@]),
982 if test $withval = no
984 want_osx_integration=no
986 want_osx_integration=yes
989 want_osx_integration=yes
991 if test "x$want_osx_integration" = "xno"; then
995 AC_WIRESHARK_OSX_INTEGRATION_CHECK
999 AC_SUBST(wireshark_bin)
1000 AC_SUBST(wireshark_man)
1003 # Enable/disable tshark
1005 AC_ARG_ENABLE(tshark,
1006 AC_HELP_STRING( [--enable-tshark],
1007 [build TShark @<:@default=yes@:>@]),
1008 tshark=$enableval,enable_tshark=yes)
1010 if test "x$enable_tshark" = "xyes" ; then
1011 tshark_bin="tshark\$(EXEEXT)"
1012 tshark_man="tshark.1"
1013 wiresharkfilter_man="wireshark-filter.4"
1018 AC_SUBST(tshark_bin)
1019 AC_SUBST(tshark_man)
1020 AC_SUBST(wiresharkfilter_man)
1024 # Enable/disable editcap
1026 AC_ARG_ENABLE(editcap,
1027 AC_HELP_STRING( [--enable-editcap],
1028 [build editcap @<:@default=yes@:>@]),
1029 enable_editcap=$enableval,enable_editcap=yes)
1031 if test "x$enable_editcap" = "xyes" ; then
1032 editcap_bin="editcap\$(EXEEXT)"
1033 editcap_man="editcap.1"
1038 AC_SUBST(editcap_bin)
1039 AC_SUBST(editcap_man)
1041 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1044 # Enable/disable capinfos
1046 AC_ARG_ENABLE(capinfos,
1047 AC_HELP_STRING( [--enable-capinfos],
1048 [build capinfos @<:@default=yes@:>@]),
1049 enable_capinfos=$enableval,enable_capinfos=yes)
1051 if test "x$enable_capinfos" = "xyes" ; then
1052 capinfos_bin="capinfos\$(EXEEXT)"
1053 capinfos_man="capinfos.1"
1058 AC_SUBST(capinfos_bin)
1059 AC_SUBST(capinfos_man)
1062 # Enable/disable mergecap
1064 AC_ARG_ENABLE(mergecap,
1065 AC_HELP_STRING( [--enable-mergecap],
1066 [build mergecap @<:@default=yes@:>@]),
1067 enable_mergecap=$enableval,enable_mergecap=yes)
1069 if test "x$enable_mergecap" = "xyes" ; then
1070 mergecap_bin="mergecap\$(EXEEXT)"
1071 mergecap_man="mergecap.1"
1076 AC_SUBST(mergecap_bin)
1077 AC_SUBST(mergecap_man)
1080 # Enable/disable text2pcap
1082 AC_ARG_ENABLE(text2pcap,
1083 AC_HELP_STRING( [--enable-text2pcap],
1084 [build text2pcap @<:@default=yes@:>@]),
1085 text2pcap=$enableval,enable_text2pcap=yes)
1087 if test "x$enable_text2pcap" = "xyes" ; then
1088 text2pcap_bin="text2pcap\$(EXEEXT)"
1089 text2pcap_man="text2pcap.1"
1094 AC_SUBST(text2pcap_bin)
1095 AC_SUBST(text2pcap_man)
1097 # Enable/disable idl2wrs
1099 AC_ARG_ENABLE(idl2wrs,
1100 AC_HELP_STRING( [--enable-idl2wrs],
1101 [build idl2wrs @<:@default=yes@:>@]),
1102 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
1104 if test "x$enable_idl2wrs" = "xyes" ; then
1105 idl2wrs_bin="idl2wrs"
1106 idl2wrs_man="idl2wrs.1"
1111 AC_SUBST(idl2wrs_bin)
1112 AC_SUBST(idl2wrs_man)
1115 # Enable/disable dftest
1117 AC_ARG_ENABLE(dftest,
1118 AC_HELP_STRING( [--enable-dftest],
1119 [build dftest @<:@default=yes@:>@]),
1120 enable_dftest=$enableval,enable_dftest=yes)
1122 if test "x$enable_dftest" = "xyes" ; then
1123 dftest_bin="dftest\$(EXEEXT)"
1124 dftest_man="dftest.1"
1129 AC_SUBST(dftest_bin)
1130 AC_SUBST(dftest_man)
1133 # Enable/disable randpkt
1135 AC_ARG_ENABLE(randpkt,
1136 AC_HELP_STRING( [--enable-randpkt],
1137 [build randpkt @<:@default=yes@:>@]),
1138 enable_randpkt=$enableval,enable_randpkt=yes)
1140 if test "x$enable_randpkt" = "xyes" ; then
1141 randpkt_bin="randpkt\$(EXEEXT)"
1142 randpkt_man="randpkt.1"
1147 AC_SUBST(randpkt_bin)
1148 AC_SUBST(randpkt_man)
1152 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1153 dnl "gethostbyname()".
1154 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1156 dnl Checks for "connect()", used as a proxy for "socket()" - and
1157 dnl "-lsocket", if we need it to get "connect()".
1158 AC_WIRESHARK_SOCKET_LIB_CHECK
1161 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1164 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1165 [use libpcap for packet capturing @<:@default=yes@:>@]),
1167 if test $withval = no
1170 elif test $withval = yes
1181 if test "x$want_pcap" = "xno" ; then
1185 AC_WIRESHARK_PCAP_CHECK
1188 # Enable/disable dumpcap
1191 AC_MSG_CHECKING(whether to build dumpcap)
1193 AC_ARG_ENABLE(dumpcap,
1194 AC_HELP_STRING( [--enable-dumpcap],
1195 [build dumpcap @<:@default=yes@:>@]),
1196 enable_dumpcap=$enableval,enable_dumpcap=yes)
1198 if test "x$enable_dumpcap" = "xyes" ; then
1199 if test "x$want_pcap" = "xno" ; then
1201 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1209 if test "x$enable_dumpcap" = "xyes" ; then
1210 dumpcap_bin="dumpcap\$(EXEEXT)"
1211 dumpcap_man="dumpcap.1"
1216 AC_SUBST(dumpcap_bin)
1217 AC_SUBST(dumpcap_man)
1219 # Enable/disable rawshark
1222 AC_MSG_CHECKING(whether to build rawshark)
1224 AC_ARG_ENABLE(rawshark,
1225 AC_HELP_STRING( [--enable-rawshark],
1226 [build rawshark @<:@default=yes@:>@]),
1227 rawshark=$enableval,enable_rawshark=yes)
1229 if test "x$enable_rawshark" = "xyes" ; then
1230 if test "x$want_pcap" = "xno" ; then
1232 AC_MSG_RESULT(pcap not available - disabling rawshark)
1240 if test "x$enable_rawshark" = "xyes" ; then
1241 rawshark_bin="rawshark\$(EXEEXT)"
1242 rawshark_man="rawshark.1"
1247 AC_SUBST(rawshark_bin)
1248 AC_SUBST(rawshark_man)
1250 dnl Use pcap-ng by default
1251 AC_ARG_ENABLE(pcap-ng-default,
1252 AC_HELP_STRING( [--enable-pcap-ng-default],
1253 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1254 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1255 if test x$enable_pcap_ng_default = xyes; then
1256 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1259 dnl pcap remote check
1260 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1262 AC_ARG_WITH(pcap-remote,
1263 AC_HELP_STRING([--with-pcap-remote],
1264 [use libpcap remote capturing (requires libpcap)]),
1266 if test $withval = no
1270 want_pcap_remote=yes
1275 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1279 AC_WIRESHARK_PCAP_REMOTE_CHECK
1283 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1286 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1287 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1289 if test "x$withval" = "xno"
1292 elif test "x$withval" = "xyes"
1301 # Use zlib if it's present, otherwise don't.
1303 want_zlib=ifavailable
1306 if test "x$want_zlib" = "xno" ; then
1310 AC_WIRESHARK_ZLIB_CHECK
1311 if test "x$want_zlib" = "xno" ; then
1312 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1314 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1315 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1321 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1324 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1325 [use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. Not needed if you have GLib 2.14 or later @<:@default=no@:>@]),
1327 if test $withval = no
1330 elif test $withval = yes
1341 if test "x$want_pcre" = "xno" ; then
1345 AC_WIRESHARK_LIBPCRE_CHECK
1346 if test "x$want_pcre" = "xno" ; then
1347 AC_MSG_RESULT(libpcre not found)
1353 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1356 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1357 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1359 if test $withval = no
1362 elif test $withval = yes
1371 # Use liblua by default
1373 want_lua=ifavailable
1376 if test "x$want_lua" = "xno" ; then
1380 AC_WIRESHARK_LIBLUA_CHECK
1381 if test "x$want_lua" = "xno" ; then
1382 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1385 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1389 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1391 AC_ARG_WITH(portaudio,
1392 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1393 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1395 if test $withval = no
1398 elif test $withval = yes
1403 portaudio_dir=$withval
1407 # Use libportaudio by default
1409 want_portaudio=ifavailable
1412 if test "x$want_portaudio" = "xno" ; then
1416 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1417 if test "x$want_portaudio" = "xno" ; then
1418 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1421 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1426 AC_HELP_STRING( [--enable-ipv6],
1427 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1428 enable_ipv6=$enableval,enable_ipv6=yes)
1430 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1431 if test "x$enable_ipv6" = "xno" ; then
1435 AC_WIRESHARK_IPV6_STACK
1439 dnl Check if dumpcap should be installed with filesystem capabilities
1440 AC_PATH_PROG(SETCAP, setcap)
1441 AC_ARG_ENABLE(setcap-install,
1442 AC_HELP_STRING( [--enable-setcap-install],
1443 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1444 enable_setcap_install=$enableval,enable_setcap_install=no)
1446 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1447 if test "x$enable_setcap_install" = "xno" ; then
1450 if test "x$SETCAP" = "x" ; then
1451 AC_MSG_RESULT(no. Setcap not found)
1452 elif test "x$enable_dumpcap" = "xno" ; then
1453 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1459 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1461 dnl Check if dumpcap should be installed setuid
1462 AC_ARG_ENABLE(setuid-install,
1463 AC_HELP_STRING( [--enable-setuid-install],
1464 [install dumpcap as setuid @<:@default=no@:>@]),
1465 enable_setuid_install=$enableval,enable_setuid_install=no)
1467 AC_MSG_CHECKING(whether to install dumpcap setuid)
1468 if test "x$enable_setuid_install" = "xno" ; then
1471 if test "x$enable_setcap_install" = "xyes" ; then
1472 enable_setuid_install=no
1473 AC_MSG_RESULT(no; using setcap instead)
1474 elif test "x$enable_dumpcap" = "xno" ; then
1475 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1481 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1482 AC_CHECK_FUNCS(setresuid setresgid)
1484 dnl ...but our Network Operations group is named "no"!
1486 AC_ARG_WITH(dumpcap-group,
1487 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1488 [restrict dumpcap to GROUP]),
1490 if test "x$withval" = "xyes"; then
1491 AC_MSG_ERROR([No dumpcap group specified.])
1492 elif test "x$withval" != "xno"; then
1493 if test "x$enable_dumpcap" = "xno" ; then
1494 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1496 AC_MSG_RESULT($withval)
1497 DUMPCAP_GROUP="$withval"
1500 AC_SUBST(DUMPCAP_GROUP)
1501 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1503 dnl libcap (not libpcap) check
1505 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1508 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1509 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1511 if test "x$withval" = "xno"; then
1513 elif test "x$withval" = "xyes"; then
1515 elif test -d "$withval"; then
1517 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1520 if test "x$with_libcap" = "xno" ; then
1524 AC_WIRESHARK_LIBCAP_CHECK
1526 AC_SUBST(LIBCAP_LIBS)
1528 dnl Checks for header files.
1529 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1530 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)
1531 AC_CHECK_HEADERS(netinet/in.h)
1532 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1536 AC_MSG_CHECKING(whether to use SSL library)
1539 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1540 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1542 if test "x$withval" = "xno"; then
1544 elif test "x$withval" = "xyes"; then
1546 elif test -d "$withval"; then
1548 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1553 if test "x$want_ssl" = "xyes"; then
1555 AC_CHECK_LIB(crypto,EVP_md5,
1560 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1568 AC_MSG_CHECKING(whether to use Kerberos library)
1571 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1572 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1574 if test $withval = no
1577 elif test $withval = yes
1586 # Use Kerberos library if available, otherwise don't.
1588 want_krb5=ifavailable
1591 if test "x$want_krb5" = "xno" ; then
1595 AC_WIRESHARK_KRB5_CHECK
1601 AC_MSG_CHECKING(whether to use the c-ares library if available)
1604 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1605 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1607 if test "x$withval" = "xno"; then
1609 elif test "x$withval" = "xyes"; then
1611 elif test -d "$withval"; then
1613 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1616 if test "x$want_c_ares" = "xno" ; then
1620 AC_WIRESHARK_C_ARES_CHECK
1622 AC_SUBST(C_ARES_LIBS)
1626 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1629 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1630 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1632 if test "x$withval" = "xno"; then
1634 elif test "x$withval" = "xyes"; then
1636 elif test -d "$withval"; then
1638 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1641 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1645 AC_WIRESHARK_ADNS_CHECK
1651 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1654 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1655 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1657 if test "x$withval" = "xno"; then
1659 elif test "x$withval" = "xyes"; then
1661 elif test -d "$withval"; then
1663 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1666 if test "x$want_geoip" = "xno"; then
1670 AC_WIRESHARK_GEOIP_CHECK
1672 AC_SUBST(GEOIP_LIBS)
1674 dnl Python devel Check
1675 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1678 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1679 [use Python interpreter (installed in DIR, if supplied) @<:@default=yes, if available@:>@ (EXPERIMENTAL)]),
1681 pythondir='${libdir}/wireshark/python/${VERSION}'
1682 if test "x$withval" = "xno"
1685 elif test "x$withval" = "xyes"
1690 pythondir="$withval"
1694 # Use the embeddable Python interpreter if it's present,
1697 want_pythin=ifavailable
1698 pythondir='${libdir}/wireshark/python/${VERSION}'
1700 if test "x$want_python" = "xno" ; then
1704 AC_WIRESHARK_PYTHON_CHECK
1706 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1710 # Define WS_VAR_IMPORT appropriately for declarations of external
1711 # variables exported from dynamically-linked libraries.
1713 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1716 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1717 # never return (just like Charlie on the MTA).
1719 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1720 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1721 # follow the function name, so we need two different flavors of
1724 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1726 AC_ARG_ENABLE(airpcap,
1727 AC_HELP_STRING( [--enable-airpcap],
1728 [use AirPcap in Wireshark @<:@default=no@:>@]),
1729 enable_airpcap=$enableval
1730 if test x$enable_airpcap != xno; then
1731 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1735 dnl Checks for typedefs, structures, and compiler characteristics.
1738 # Check how we can get the time zone abbreviation
1739 AC_WIRESHARK_TIMEZONE_ABBREV
1741 # We need to know whether "struct sockaddr" has an "sa_len" member
1742 # for get_interface_list().
1744 AC_WIRESHARK_STRUCT_SA_LEN
1746 # We must know our byte order
1749 # Checks whether "-traditional" is needed when using "ioctl".
1750 # XXX - do we need this?
1751 AC_PROG_GCC_TRADITIONAL
1754 AC_CHECK_FUNC(getopt,
1756 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1758 GETOPT_LO="wsgetopt.lo"
1760 if test "$ac_cv_func_getopt" = no ; then
1761 GETOPT_LO="wsgetopt.lo"
1763 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1766 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1767 STRNCASECMP_LO="strncasecmp.lo")
1768 if test "$ac_cv_func_strncasecmp" = no ; then
1769 STRNCASECMP_LO="strncasecmp.lo"
1771 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1772 AC_SUBST(STRNCASECMP_LO)
1774 AC_CHECK_FUNCS(mkstemp mkdtemp)
1776 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1778 if test "$have_inet_aton" = no; then
1779 INET_ATON_LO="inet_aton.lo"
1780 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1784 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1785 AC_SUBST(INET_ATON_LO)
1787 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1788 dnl check for pre-BIND82 inet_pton() bug.
1789 AC_MSG_CHECKING(for broken inet_pton)
1790 AC_TRY_RUN([#include <sys/types.h>
1791 #include <sys/socket.h>
1792 #include <netinet/in.h>
1793 #include <arpa/inet.h>
1798 /* this should return 0 (error) */
1799 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1803 }], [AC_MSG_RESULT(ok);
1804 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1805 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1806 have_inet_pton=no])],
1808 if test "$have_inet_pton" = no; then
1809 INET_PTON_LO="inet_pton.lo"
1813 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1814 AC_SUBST(INET_PTON_LO)
1816 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1817 AC_MSG_CHECKING([for inet_ntop prototype])
1818 AC_TRY_COMPILE([#include <stdio.h>
1819 #include <sys/types.h>
1820 #include <sys/socket.h>
1821 #include <netinet/in.h>
1822 #include <arpa/inet.h>
1824 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1826 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1827 [Define if inet_ntop() prototype exists])], [
1828 AC_TRY_COMPILE([#include <stdio.h>
1829 #include <sys/types.h>
1830 #include <sys/socket.h>
1831 #include <netinet/in.h>
1832 #include <arpa/inet.h>
1834 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1836 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1837 [Define if inet_ntop() prototype exists])], [
1838 AC_MSG_RESULT(no)])])
1840 INET_NTOP_LO="inet_ntop.lo"
1841 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1842 [Define if inet/v6defs.h needs to be included])])
1843 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1844 AC_SUBST(INET_NTOP_LO)
1846 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1847 [STRPTIME_LO="strptime.lo"
1848 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1850 if test "$ac_cv_func_strptime" = no ; then
1851 STRPTIME_LO="strptime.lo"
1853 AC_SUBST(STRPTIME_C)
1854 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1855 AC_SUBST(STRPTIME_LO)
1857 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1858 AC_CHECK_FUNCS(issetugid)
1859 AC_CHECK_FUNCS(mmap mprotect sysconf)
1860 AC_CHECK_FUNCS(strtoll)
1862 dnl blank for now, but will be used in future
1863 AC_SUBST(wireshark_SUBDIRS)
1866 dnl check whether plugins should be enabled and, if they should be,
1867 dnl check for plugins directory - stolen from Amanda's configure.in
1869 dnl we don't wish to expand ${libdir} yet
1870 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1871 AC_ARG_WITH(plugins,
1872 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1873 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1875 if test "x$withval" = "xno"; then
1877 elif test "x$have_plugins" = "xno"; then
1878 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1879 elif test "x$withval" != "xyes"; then
1880 plugindir="$withval"
1883 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1884 if test x$have_plugins = xyes
1886 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1889 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1892 # The plugin dissectors reside in ./plugins/PROTO/
1895 AC_SUBST(PLUGIN_LIBS)
1899 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1900 # (autoconf? automake? libtool?) - with the newer version(s), it's
1901 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1903 # With older version(s) of those tool(s), however, it's not just an
1904 # alias, and the configure scripts don't work without it.
1907 AC_SUBST(LIBTOOL_DEPS)
1909 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1910 if test x$enable_static = xyes -a x$have_plugins = xyes
1912 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1914 AC_SUBST(ENABLE_STATIC)
1916 dnl Save the cacheable configure results to config.cache before recursing
1919 sinclude(plugins/Custom.m4) dnl
1920 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1922 sinclude(asn1/Custom.m4) dnl
1923 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1925 AM_CONFIG_HEADER(config.h)
1930 _CUSTOM_ASN1_AC_OUTPUT_
1931 asn1/acp133/Makefile
1933 asn1/ansi_map/Makefile
1934 asn1/ansi_tcap/Makefile
1937 asn1/charging_ase/Makefile
1950 asn1/gprscdr/Makefile
1951 asn1/gsm_map/Makefile
1960 asn1/h450-ros/Makefile
1963 asn1/HI2Operations/Makefile
1967 asn1/kerberos/Makefile
1969 asn1/logotypecertextn/Makefile
1970 asn1/lte-rrc/Makefile
1972 asn1/mpeg-audio/Makefile
1973 asn1/mpeg-pes/Makefile
1975 asn1/ns_cert_exts/Makefile
1983 asn1/pkcs12/Makefile
1984 asn1/pkinit/Makefile
1985 asn1/pkixac/Makefile
1986 asn1/pkix1explicit/Makefile
1987 asn1/pkix1implicit/Makefile
1988 asn1/pkixproxy/Makefile
1989 asn1/pkixqualified/Makefile
1990 asn1/pkixtsp/Makefile
1993 asn1/q932-ros/Makefile
2006 asn1/spnego/Makefile
2013 asn1/wlancertextn/Makefile
2015 asn1/x509af/Makefile
2016 asn1/x509ce/Makefile
2017 asn1/x509if/Makefile
2018 asn1/x509sat/Makefile
2026 epan/dfilter/Makefile
2027 epan/dissectors/Makefile
2028 epan/dissectors/dcerpc/Makefile
2029 epan/dissectors/pidl/Makefile
2030 epan/ftypes/Makefile
2032 epan/wspython/Makefile
2038 packaging/macosx/Info.plist
2039 packaging/macosx/Makefile
2040 packaging/nsis/Makefile
2041 packaging/rpm/Makefile
2042 packaging/rpm/SPECS/Makefile
2043 packaging/rpm/SPECS/wireshark.spec
2044 packaging/svr4/Makefile
2045 packaging/svr4/checkinstall
2046 packaging/svr4/pkginfo
2048 plugins/asn1/Makefile
2049 plugins/docsis/Makefile
2050 plugins/ethercat/Makefile
2051 plugins/giop/Makefile
2052 plugins/gryphon/Makefile
2053 plugins/irda/Makefile
2054 plugins/m2m/Makefile
2055 plugins/mate/Makefile
2056 plugins/opcua/Makefile
2057 plugins/profinet/Makefile
2058 plugins/stats_tree/Makefile
2059 plugins/unistim/Makefile
2060 plugins/wimax/Makefile
2061 plugins/wimaxasncp/Makefile
2064 tools/lemon/Makefile
2069 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2074 if test "x$enable_setcap_install" = "xyes" ; then
2075 setcap_message="yes"
2081 if test "x$enable_setuid_install" = "xyes" ; then
2082 setuid_message="yes"
2087 if test "x$DUMPCAP_GROUP" = "x" ; then
2088 dumpcap_group_message="(none)"
2090 dumpcap_group_message="$DUMPCAP_GROUP"
2093 if test "x$want_zlib" = "xno" ; then
2099 if test "x$want_pcre" = "xno" ; then
2100 pcre_message="no (using GRegex instead)"
2105 if test "x$want_lua" = "xyes" ; then
2111 if test "x$want_python" = "xno"; then
2114 python_message="yes"
2117 if test "x$want_portaudio" = "xyes" ; then
2118 portaudio_message="yes"
2120 portaudio_message="no"
2123 if test "x$want_ssl" = "xno" ; then
2129 if test "x$want_krb5" = "xno" ; then
2132 krb5_message="yes ($ac_krb5_version)"
2135 if test "x$have_good_c_ares" = "xyes" ; then
2136 c_ares_message="yes"
2141 if test "x$have_good_adns" = "xyes" ; then
2144 if test "x$have_good_c_ares" = "xyes" ; then
2145 adns_message="no (using c-ares instead)"
2151 if test "x$have_good_libcap" = "xyes" ; then
2152 libcap_message="yes"
2157 if test "x$have_good_geoip" = "xyes" ; then
2164 echo "The Wireshark package has been configured with the following options."
2165 echo " Build wireshark : $enable_wireshark"
2166 echo " Build tshark : $enable_tshark"
2167 echo " Build capinfos : $enable_capinfos"
2168 echo " Build editcap : $enable_editcap"
2169 echo " Build dumpcap : $enable_dumpcap"
2170 echo " Build mergecap : $enable_mergecap"
2171 echo " Build text2pcap : $enable_text2pcap"
2172 echo " Build idl2wrs : $enable_idl2wrs"
2173 echo " Build randpkt : $enable_randpkt"
2174 echo " Build dftest : $enable_dftest"
2175 echo " Build rawshark : $enable_rawshark"
2177 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2178 echo " Install dumpcap with capabilities : $setcap_message"
2179 echo " Install dumpcap setuid : $setuid_message"
2180 echo " Use dumpcap group : $dumpcap_group_message"
2181 echo " Use plugins : $have_plugins"
2182 echo " Use Lua library : $lua_message"
2183 echo " Use Python binding : $python_message"
2184 echo " Build rtp_player : $portaudio_message"
2185 echo " Use threads : $enable_threads"
2186 echo " Build profile binaries : $enable_profile_build"
2187 echo " Use pcap library : $want_pcap"
2188 echo " Use zlib library : $zlib_message"
2189 echo " Use pcre library : $pcre_message"
2190 echo " Use kerberos library : $krb5_message"
2191 echo " Use c-ares library : $c_ares_message"
2192 echo " Use GNU ADNS library : $adns_message"
2193 echo " Use SMI MIB library : $libsmi_message"
2194 echo " Use GNU crypto library : $gcrypt_message"
2195 echo " Use SSL crypto library : $ssl_message"
2196 echo " Use IPv6 name resolution : $enable_ipv6"
2197 echo " Use gnutls library : $tls_message"
2198 echo " Use POSIX capabilities library : $libcap_message"
2199 echo " Use GeoIP library : $geoip_message"