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"
408 # If the compiler supports GCC-style flags, enable a barrier "stop on
410 # This barrier is set for a very large part of the code. However, it is
411 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
413 warnings_as_errors_default="yes"
414 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
415 AC_ARG_ENABLE(warnings-as-errors,
416 AC_HELP_STRING( [--enable-warnings-as-errors],
417 [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]),
419 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
420 with_warnings_as_errors="yes"
423 with_warnings_as_errors="no"
427 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
428 with_warnings_as_errors="yes"
431 with_warnings_as_errors="no"
435 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
438 # Add any platform-specific compiler flags needed.
440 AC_MSG_CHECKING(for platform-specific compiler flags)
441 if test "x$GCC" = "xyes" ; then
443 # GCC - do any platform-specific tweaking necessary.
447 # the X11 headers don't automatically include prototype info
448 # and a lot don't include the return type
449 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
450 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
454 # See comments above about Apple's lovely C compiler.
456 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
457 # defines __GNUC__"; clang defines __GNUC__, so that
458 # means we think clang is GCC.
460 # clang whines about -no-cpp-precomp being unused
461 # so we check whether this is really clang, and
462 # only add -no-cpp-precomp if it's not.
464 if test "x$CC" != "xclang" ; then
465 CFLAGS="-no-cpp-precomp $CFLAGS"
466 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
469 # Clang, clang, clang went the trolley....
471 AC_MSG_RESULT(none needed)
475 AC_MSG_RESULT(none needed)
480 # Not GCC - assume it's the vendor's compiler.
485 # HP's ANSI C compiler; flags suggested by Jost Martin.
486 # "-Ae" for ANSI C plus extensions such as "long long".
487 # "+O2", for optimization. XXX - works with "-g"?
489 CFLAGS="-Ae +O2 $CFLAGS"
490 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
494 # It may be called "cc", but it's really a GCC derivative
495 # with a problematic special precompiler and precompiled
496 # headers; turn off the special precompiler, as some
497 # apparently-legal code won't compile with its precompiled
500 # On the other hand, if it's called "clang", it's not a
501 # GCC derivative, and it whines if you pass it
504 # XXX - is there any version of autoconf we support
505 # where it uses another way to decide if the compiler
508 if test "x$CC" != "xclang" ; then
509 CFLAGS="-no-cpp-precomp $CFLAGS"
510 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
513 # Clang, clang, clang went the trolley....
515 AC_MSG_RESULT(none needed)
519 AC_MSG_RESULT(none needed)
525 # Add any platform-specific linker flags needed.
527 AC_MSG_CHECKING(for platform-specific linker flags)
531 # Add -Wl,-single_module to the LDFLAGS used with shared
532 # libraries, to fix some error that show up in some cases;
533 # some Apple documentation recommends it for most shared
536 LDFLAGS_SHAREDLIB="-Wl,-single_module"
538 # Add -Wl,-search_paths_first to make sure that if we search
539 # directories A and B, in that order, for a given library, a
540 # non-shared version in directory A, rather than a shared
541 # version in directory B, is chosen (so we can use
542 # --with-pcap=/usr/local to force all programs to be linked
543 # with a static version installed in /usr/local/lib rather than
544 # the system version in /usr/lib).
546 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
547 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
551 # Shared libraries in cygwin/Win32 must never contain
554 LDFLAGS="$LDFLAGS -no-undefined"
555 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
558 AC_MSG_RESULT(none needed)
561 AC_SUBST(LDFLAGS_SHAREDLIB)
563 # Control silent compiling
564 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
567 # On OS X, if we find the headers for Core Foundation, Launch Services,
568 # and Core Services, add -framework options to link with Application
569 # Services (of which Launch Services is a subframework), Core Foundation
570 # (required by the Launch Services APIs), and Core Services, so we can
571 # use them to launch a Web browser from the Help menu and to use
572 # Gestalt() to get the Mac OS X version number.
577 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
579 ac_coreservices_frameworks="-framework CoreServices"
580 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
581 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
584 # include <CoreFoundation/CFBase.h>
585 # include <CoreFoundation/CFString.h>
586 # include <CoreFoundation/CFURL.h>
587 # include <ApplicationServices/ApplicationServices.h>
588 # include <CoreServices/CoreServices.h>
591 CFStringRef url_CFString;
596 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
597 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
598 status = LSOpenCFURLRef(url_CFURL, NULL);
600 Gestalt(gestaltSystemVersion, &os_version);
602 ac_cv_can_use_osx_frameworks=yes,
603 ac_cv_can_use_osx_frameworks=no,
604 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
605 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
606 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
607 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
608 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
616 AC_SUBST(CORESERVICES_FRAMEWORKS)
617 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
620 # If using $prefix we add "$prefix/include" to the include search path
621 # and "$prefix/lib" to the library search path.
623 if test "x$prefix" != "x" ; then
624 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
625 if test -d $prefix/include ; then
628 # Arrange that we search for header files in "$prefix/include", as
629 # various packages we use may have been installed under "$prefix/include".
631 CFLAGS="$CFLAGS -I$prefix/include"
632 CPPFLAGS="$CPPFLAGS -I$prefix/include"
635 # Arrange that we search for libraries in "$prefix/lib".
637 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
643 dnl Look in /usr/local for header files and libraries ?
644 dnl XXX FIXME don't include /usr/local if it is already in the system
645 dnl search path as this causes gcc 3.2 on Linux to complain about a change
646 dnl of the system search order for includes
647 AC_ARG_ENABLE(usr-local,
648 AC_HELP_STRING( [--enable-usr-local],
649 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
650 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
652 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
653 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
654 if test -d "/usr/local"; then
657 # Arrange that we search for header files in the source directory
658 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
659 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
660 # may have been installed under "/usr/local/include".
662 CFLAGS="$CFLAGS -I/usr/local/include"
663 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
666 # Arrange that we search for libraries in "/usr/local/lib".
668 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
677 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
682 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
683 if test x$LD_LIBRARY_PATH != x ; then
684 LIBS="$LIBS -R$LD_LIBRARY_PATH"
685 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
687 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
693 # Check for versions of "sed" inadequate to handle, in libtool, a list
694 # of object files as large as the list in Wireshark.
696 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
697 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
698 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
699 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
700 # is the only "sed" that comes with Solaris that can handle Wireshark.
702 # Add any checks here that are necessary for other OSes.
704 AC_WIRESHARK_GNU_SED_CHECK
705 if test "$HAVE_GNU_SED" = no ; then
708 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
710 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
712 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
727 # Enable/disable tshark
729 AC_ARG_ENABLE(wireshark,
730 AC_HELP_STRING( [--enable-wireshark],
731 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
732 enable_wireshark=$enableval,enable_wireshark=yes)
734 AC_ARG_ENABLE(ui-manager,
735 AC_HELP_STRING( [--enable-ui-manager],
736 [use ui-manager in Wireshark (experimental) @<:@default=no@:>@]),
737 enable_uimanager=$enableval,enable_uimanager=no)
738 if test x$enable_uimanager = xyes; then
739 AC_DEFINE(MAIN_MENU_USE_UIMANAGER, 1, [Use GTK ui-manager])
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(threads,
751 AC_HELP_STRING( [--enable-threads],
752 [use threads in Wireshark @<:@default=yes@:>@]),
753 enable_threads=$enableval,enable_threads=yes)
754 if test x$enable_threads = xyes; then
755 AC_DEFINE(USE_THREADS, 1, [Support for threads])
758 AC_ARG_ENABLE(profile-build,
759 AC_HELP_STRING( [--enable-profile-build],
760 [build profile-ready binaries @<:@default=no@:>@]),
761 enable_profile_build=$enableval,enable_profile_build=no)
762 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
763 AC_MSG_CHECKING(if profile builds must be generated)
764 if test "x$enable_profile_build" = "xyes" ; then
765 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
767 CFLAGS=" -pg $CFLAGS"
770 echo "Building profile binaries currently only supported for GCC and clang."
776 # Create DATAFILE_DIR #define for config.h
777 datafiledir=$datadir/wireshark
779 test "x$prefix" = xNONE && prefix=$ac_default_prefix
780 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
781 # Ugly hack, but I don't see how this problem can be solved
782 # properly that DATAFILE_DIR had a value starting with
783 # "${prefix}/" instead of e.g. "/usr/local/"
784 eval eval echo "$datafiledir"
786 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
788 # Create DOC_DIR #define for config.h
790 test "x$prefix" = xNONE && prefix=$ac_default_prefix
791 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
792 # Ugly hack, but I don't see how this problem can be solved
793 # properly that DOC_DIR had a value starting with
794 # "${prefix}/" instead of e.g. "/usr/local/"
795 eval eval echo "$docdir"
797 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
799 # GTK checks; we require GTK+ 2.12 or later.
800 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
801 # programs to be built with GTK+.
803 if test "x$enable_wireshark" = "xyes"; then
804 if test "x$with_gtk3" = "xyes"; then
805 AM_PATH_GTK_3_0(3.0.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)
813 AM_PATH_GTK_2_0(2.12.0,
815 CFLAGS="$CFLAGS $GTK_CFLAGS"
816 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
817 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
818 ], GTK_OK=no, gthread)
824 # GLib checks; we require GLib 2.14 or later, and require gmodule
825 # support, as we need that for dynamically loading plugins.
826 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
827 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
828 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
829 # GLIB_CFLAGS to CFLAGS.
830 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
831 # set when generating the Makefile, so we can make programs that require
832 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
833 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
834 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
835 # programs to be built with GLib.
837 if test "$GTK_OK" = "no" ; then
839 # We don't have GTK+.
840 # If they didn't explicitly say "--disable-wireshark", fail (so
841 # that, unless they explicitly indicated that they don't want
842 # Wireshark, we stop so they know they won't be getting
843 # Wireshark unless they fix the GTK+ problem).
845 if test "x$enable_wireshark" = "xyes"; then
846 if test "x$with_gtk3" = "xyes"; then
847 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
849 AC_MSG_ERROR([GTK+ 2.12 or later isn't available, so Wireshark can't be compiled])
855 AM_PATH_GLIB_2_0(2.14.0,
857 CFLAGS="$CFLAGS $GLIB_CFLAGS"
858 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
859 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
862 # We have GTK+, and thus will be building Wireshark unless the
863 # user explicitly disabled it.
865 wireshark_bin="wireshark\$(EXEEXT)"
866 wireshark_man="wireshark.1"
867 wireshark_SUBDIRS="codecs gtk"
868 # Don't use GLIB_CFLAGS
869 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
871 CFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CFLAGS"
872 if test x$enable_uimanager = xyes; then
873 CFLAGS="-DGTK_DISABLE_DEPRECATED $CFLAGS"
875 # CFLAGS="-DGDK_DISABLE_DEPRECATED $CFLAGS"
876 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
877 # Enable GSEAL when building with GTK > 2.20 and < 3.0
878 # (Versions prior to 2.22 lacked some necessary accessors.)
879 CFLAGS="-DGSEAL_ENABLE $CFLAGS"
884 # Check whether GLib modules are supported, to determine whether we
885 # can support plugins.
887 AC_MSG_CHECKING(whether GLib supports loadable modules)
888 ac_save_CFLAGS="$CFLAGS"
890 CFLAGS="$CFLAGS $GLIB_CFLAGS"
891 # Error out on the usage of deprecated glib functions
892 CFLAGS="$CFLAGS -DG_DISABLE_DEPRECATED"
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)
1086 # Enable/disable idl2wrs
1088 AC_ARG_ENABLE(idl2wrs,
1089 AC_HELP_STRING( [--enable-idl2wrs],
1090 [build idl2wrs @<:@default=yes@:>@]),
1091 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
1093 if test "x$enable_idl2wrs" = "xyes" ; then
1094 idl2wrs_bin="idl2wrs"
1095 idl2wrs_man="idl2wrs.1"
1100 AC_SUBST(idl2wrs_bin)
1101 AC_SUBST(idl2wrs_man)
1104 # Enable/disable dftest
1106 AC_ARG_ENABLE(dftest,
1107 AC_HELP_STRING( [--enable-dftest],
1108 [build dftest @<:@default=yes@:>@]),
1109 enable_dftest=$enableval,enable_dftest=yes)
1111 if test "x$enable_dftest" = "xyes" ; then
1112 dftest_bin="dftest\$(EXEEXT)"
1113 dftest_man="dftest.1"
1118 AC_SUBST(dftest_bin)
1119 AC_SUBST(dftest_man)
1122 # Enable/disable randpkt
1124 AC_ARG_ENABLE(randpkt,
1125 AC_HELP_STRING( [--enable-randpkt],
1126 [build randpkt @<:@default=yes@:>@]),
1127 enable_randpkt=$enableval,enable_randpkt=yes)
1129 if test "x$enable_randpkt" = "xyes" ; then
1130 randpkt_bin="randpkt\$(EXEEXT)"
1131 randpkt_man="randpkt.1"
1136 AC_SUBST(randpkt_bin)
1137 AC_SUBST(randpkt_man)
1141 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1142 dnl "gethostbyname()".
1143 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1145 dnl Checks for "connect()", used as a proxy for "socket()" - and
1146 dnl "-lsocket", if we need it to get "connect()".
1147 AC_WIRESHARK_SOCKET_LIB_CHECK
1150 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1153 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1154 [use libpcap for packet capturing @<:@default=yes@:>@]),
1156 if test $withval = no
1159 elif test $withval = yes
1170 if test "x$want_pcap" = "xno" ; then
1174 AC_WIRESHARK_PCAP_CHECK
1177 # Enable/disable dumpcap
1180 AC_MSG_CHECKING(whether to build dumpcap)
1182 AC_ARG_ENABLE(dumpcap,
1183 AC_HELP_STRING( [--enable-dumpcap],
1184 [build dumpcap @<:@default=yes@:>@]),
1185 enable_dumpcap=$enableval,enable_dumpcap=yes)
1187 if test "x$enable_dumpcap" = "xyes" ; then
1188 if test "x$want_pcap" = "xno" ; then
1190 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1198 if test "x$enable_dumpcap" = "xyes" ; then
1199 dumpcap_bin="dumpcap\$(EXEEXT)"
1200 dumpcap_man="dumpcap.1"
1205 AC_SUBST(dumpcap_bin)
1206 AC_SUBST(dumpcap_man)
1208 # Enable/disable rawshark
1211 AC_MSG_CHECKING(whether to build rawshark)
1213 AC_ARG_ENABLE(rawshark,
1214 AC_HELP_STRING( [--enable-rawshark],
1215 [build rawshark @<:@default=yes@:>@]),
1216 rawshark=$enableval,enable_rawshark=yes)
1218 if test "x$enable_rawshark" = "xyes" ; then
1219 if test "x$want_pcap" = "xno" ; then
1221 AC_MSG_RESULT(pcap not available - disabling rawshark)
1229 if test "x$enable_rawshark" = "xyes" ; then
1230 rawshark_bin="rawshark\$(EXEEXT)"
1231 rawshark_man="rawshark.1"
1236 AC_SUBST(rawshark_bin)
1237 AC_SUBST(rawshark_man)
1239 dnl Use pcap-ng by default
1240 AC_ARG_ENABLE(pcap-ng-default,
1241 AC_HELP_STRING( [--enable-pcap-ng-default],
1242 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1243 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1244 if test x$enable_pcap_ng_default = xyes; then
1245 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1248 dnl pcap remote check
1249 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1251 AC_ARG_WITH(pcap-remote,
1252 AC_HELP_STRING([--with-pcap-remote],
1253 [use libpcap remote capturing (requires libpcap)]),
1255 if test $withval = no
1259 want_pcap_remote=yes
1264 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1268 AC_WIRESHARK_PCAP_REMOTE_CHECK
1272 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1275 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1276 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1278 if test "x$withval" = "xno"
1281 elif test "x$withval" = "xyes"
1290 # Use zlib if it's present, otherwise don't.
1292 want_zlib=ifavailable
1295 if test "x$want_zlib" = "xno" ; then
1299 AC_WIRESHARK_ZLIB_CHECK
1300 if test "x$want_zlib" = "xno" ; then
1301 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1303 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1304 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1310 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1313 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1314 [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@:>@]),
1316 if test $withval = no
1319 elif test $withval = yes
1330 if test "x$want_pcre" = "xno" ; then
1334 AC_WIRESHARK_LIBPCRE_CHECK
1335 if test "x$want_pcre" = "xno" ; then
1336 AC_MSG_RESULT(libpcre not found)
1342 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1345 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1346 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1348 if test $withval = no
1351 elif test $withval = yes
1360 # Use liblua by default
1362 want_lua=ifavailable
1365 if test "x$want_lua" = "xno" ; then
1369 AC_WIRESHARK_LIBLUA_CHECK
1370 if test "x$want_lua" = "xno" ; then
1371 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1374 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1378 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1380 AC_ARG_WITH(portaudio,
1381 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1382 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1384 if test $withval = no
1387 elif test $withval = yes
1392 portaudio_dir=$withval
1396 # Use libportaudio by default
1398 want_portaudio=ifavailable
1401 if test "x$want_portaudio" = "xno" ; then
1405 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1406 if test "x$want_portaudio" = "xno" ; then
1407 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1410 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1415 AC_HELP_STRING( [--enable-ipv6],
1416 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1417 enable_ipv6=$enableval,enable_ipv6=yes)
1419 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1420 if test "x$enable_ipv6" = "xno" ; then
1424 AC_WIRESHARK_IPV6_STACK
1428 dnl Check if dumpcap should be installed with filesystem capabilities
1429 AC_PATH_PROG(SETCAP, setcap)
1430 AC_ARG_ENABLE(setcap-install,
1431 AC_HELP_STRING( [--enable-setcap-install],
1432 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1433 enable_setcap_install=$enableval,enable_setcap_install=no)
1435 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1436 if test "x$enable_setcap_install" = "xno" ; then
1439 if test "x$SETCAP" = "x" ; then
1440 AC_MSG_RESULT(no. Setcap not found)
1441 elif test "x$enable_dumpcap" = "xno" ; then
1442 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1448 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1450 dnl Check if dumpcap should be installed setuid
1451 AC_ARG_ENABLE(setuid-install,
1452 AC_HELP_STRING( [--enable-setuid-install],
1453 [install dumpcap as setuid @<:@default=no@:>@]),
1454 enable_setuid_install=$enableval,enable_setuid_install=no)
1456 AC_MSG_CHECKING(whether to install dumpcap setuid)
1457 if test "x$enable_setuid_install" = "xno" ; then
1460 if test "x$enable_setcap_install" = "xyes" ; then
1461 enable_setuid_install=no
1462 AC_MSG_RESULT(no; using setcap instead)
1463 elif test "x$enable_dumpcap" = "xno" ; then
1464 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1470 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1471 AC_CHECK_FUNCS(setresuid setresgid)
1473 dnl ...but our Network Operations group is named "no"!
1475 AC_ARG_WITH(dumpcap-group,
1476 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1477 [restrict dumpcap to GROUP]),
1479 if test "x$withval" = "xyes"; then
1480 AC_MSG_ERROR([No dumpcap group specified.])
1481 elif test "x$withval" != "xno"; then
1482 if test "x$enable_dumpcap" = "xno" ; then
1483 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1485 AC_MSG_RESULT($withval)
1486 DUMPCAP_GROUP="$withval"
1489 AC_SUBST(DUMPCAP_GROUP)
1490 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1492 dnl libcap (not libpcap) check
1494 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1497 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1498 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1500 if test "x$withval" = "xno"; then
1502 elif test "x$withval" = "xyes"; then
1504 elif test -d "$withval"; then
1506 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1509 if test "x$with_libcap" = "xno" ; then
1513 AC_WIRESHARK_LIBCAP_CHECK
1515 AC_SUBST(LIBCAP_LIBS)
1517 dnl Checks for header files.
1518 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1519 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)
1520 AC_CHECK_HEADERS(netinet/in.h)
1521 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1525 AC_MSG_CHECKING(whether to use SSL library)
1528 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1529 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1531 if test "x$withval" = "xno"; then
1533 elif test "x$withval" = "xyes"; then
1535 elif test -d "$withval"; then
1537 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1542 if test "x$want_ssl" = "xyes"; then
1544 AC_CHECK_LIB(crypto,EVP_md5,
1549 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1557 AC_MSG_CHECKING(whether to use Kerberos library)
1560 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1561 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1563 if test $withval = no
1566 elif test $withval = yes
1575 # Use Kerberos library if available, otherwise don't.
1577 want_krb5=ifavailable
1580 if test "x$want_krb5" = "xno" ; then
1584 AC_WIRESHARK_KRB5_CHECK
1590 AC_MSG_CHECKING(whether to use the c-ares library if available)
1593 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1594 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1596 if test "x$withval" = "xno"; then
1598 elif test "x$withval" = "xyes"; then
1600 elif test -d "$withval"; then
1602 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1605 if test "x$want_c_ares" = "xno" ; then
1609 AC_WIRESHARK_C_ARES_CHECK
1611 AC_SUBST(C_ARES_LIBS)
1615 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1618 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1619 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1621 if test "x$withval" = "xno"; then
1623 elif test "x$withval" = "xyes"; then
1625 elif test -d "$withval"; then
1627 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1630 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1634 AC_WIRESHARK_ADNS_CHECK
1640 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1643 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1644 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1646 if test "x$withval" = "xno"; then
1648 elif test "x$withval" = "xyes"; then
1650 elif test -d "$withval"; then
1652 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1655 if test "x$want_geoip" = "xno"; then
1659 AC_WIRESHARK_GEOIP_CHECK
1661 AC_SUBST(GEOIP_LIBS)
1663 dnl Python devel Check
1664 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1667 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1668 [use Python interpreter (installed in DIR, if supplied) @<:@default=yes, if available@:>@ (EXPERIMENTAL)]),
1670 pythondir='${libdir}/wireshark/python/${VERSION}'
1671 if test "x$withval" = "xno"
1674 elif test "x$withval" = "xyes"
1679 pythondir="$withval"
1683 # Use the embeddable Python interpreter if it's present,
1686 want_pythin=ifavailable
1687 pythondir='${libdir}/wireshark/python/${VERSION}'
1689 if test "x$want_python" = "xno" ; then
1693 AC_WIRESHARK_PYTHON_CHECK
1695 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1699 # Define WS_VAR_IMPORT appropriately for declarations of external
1700 # variables exported from dynamically-linked libraries.
1702 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1705 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1706 # never return (just like Charlie on the MTA).
1708 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1709 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1710 # follow the function name, so we need two different flavors of
1713 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1715 AC_ARG_ENABLE(airpcap,
1716 AC_HELP_STRING( [--enable-airpcap],
1717 [use AirPcap in Wireshark @<:@default=no@:>@]),
1718 enable_airpcap=$enableval
1719 if test x$enable_airpcap != xno; then
1720 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1724 dnl Checks for typedefs, structures, and compiler characteristics.
1727 # Check how we can get the time zone abbreviation
1728 AC_WIRESHARK_TIMEZONE_ABBREV
1730 # We need to know whether "struct sockaddr" has an "sa_len" member
1731 # for get_interface_list().
1733 AC_WIRESHARK_STRUCT_SA_LEN
1735 # We must know our byte order
1738 # Checks whether "-traditional" is needed when using "ioctl".
1739 # XXX - do we need this?
1740 AC_PROG_GCC_TRADITIONAL
1743 AC_CHECK_FUNC(getopt,
1745 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1747 GETOPT_LO="wsgetopt.lo"
1749 if test "$ac_cv_func_getopt" = no ; then
1750 GETOPT_LO="wsgetopt.lo"
1752 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1755 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1756 STRNCASECMP_LO="strncasecmp.lo")
1757 if test "$ac_cv_func_strncasecmp" = no ; then
1758 STRNCASECMP_LO="strncasecmp.lo"
1760 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1761 AC_SUBST(STRNCASECMP_LO)
1763 AC_CHECK_FUNCS(mkstemp mkdtemp)
1765 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1767 if test "$have_inet_aton" = no; then
1768 INET_ATON_LO="inet_aton.lo"
1769 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1773 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1774 AC_SUBST(INET_ATON_LO)
1776 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1777 dnl check for pre-BIND82 inet_pton() bug.
1778 AC_MSG_CHECKING(for broken inet_pton)
1779 AC_TRY_RUN([#include <sys/types.h>
1780 #include <sys/socket.h>
1781 #include <netinet/in.h>
1782 #include <arpa/inet.h>
1787 /* this should return 0 (error) */
1788 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1792 }], [AC_MSG_RESULT(ok);
1793 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1794 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1795 have_inet_pton=no])],
1797 if test "$have_inet_pton" = no; then
1798 INET_PTON_LO="inet_pton.lo"
1802 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1803 AC_SUBST(INET_PTON_LO)
1805 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1806 AC_MSG_CHECKING([for inet_ntop prototype])
1807 AC_TRY_COMPILE([#include <stdio.h>
1808 #include <sys/types.h>
1809 #include <sys/socket.h>
1810 #include <netinet/in.h>
1811 #include <arpa/inet.h>
1813 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1815 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1816 [Define if inet_ntop() prototype exists])], [
1817 AC_TRY_COMPILE([#include <stdio.h>
1818 #include <sys/types.h>
1819 #include <sys/socket.h>
1820 #include <netinet/in.h>
1821 #include <arpa/inet.h>
1823 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1825 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1826 [Define if inet_ntop() prototype exists])], [
1827 AC_MSG_RESULT(no)])])
1829 INET_NTOP_LO="inet_ntop.lo"
1830 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1831 [Define if inet/v6defs.h needs to be included])])
1832 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1833 AC_SUBST(INET_NTOP_LO)
1835 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1836 [STRPTIME_LO="strptime.lo"
1837 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1839 if test "$ac_cv_func_strptime" = no ; then
1840 STRPTIME_LO="strptime.lo"
1842 AC_SUBST(STRPTIME_C)
1843 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1844 AC_SUBST(STRPTIME_LO)
1846 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1847 AC_CHECK_FUNCS(issetugid)
1848 AC_CHECK_FUNCS(mmap mprotect sysconf)
1849 AC_CHECK_FUNCS(strtoll)
1851 dnl blank for now, but will be used in future
1852 AC_SUBST(wireshark_SUBDIRS)
1855 dnl check whether plugins should be enabled and, if they should be,
1856 dnl check for plugins directory - stolen from Amanda's configure.in
1858 dnl we don't wish to expand ${libdir} yet
1859 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1860 AC_ARG_WITH(plugins,
1861 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1862 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1864 if test "x$withval" = "xno"; then
1866 elif test "x$have_plugins" = "xno"; then
1867 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1868 elif test "x$withval" != "xyes"; then
1869 plugindir="$withval"
1872 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1873 if test x$have_plugins = xyes
1875 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1878 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1881 # The plugin dissectors reside in ./plugins/PROTO/
1884 AC_SUBST(PLUGIN_LIBS)
1888 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1889 # (autoconf? automake? libtool?) - with the newer version(s), it's
1890 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1892 # With older version(s) of those tool(s), however, it's not just an
1893 # alias, and the configure scripts don't work without it.
1896 AC_SUBST(LIBTOOL_DEPS)
1898 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1899 if test x$enable_static = xyes -a x$have_plugins = xyes
1901 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1903 AC_SUBST(ENABLE_STATIC)
1905 dnl Save the cacheable configure results to config.cache before recursing
1908 sinclude(plugins/Custom.m4) dnl
1909 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1911 sinclude(asn1/Custom.m4) dnl
1912 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1914 AM_CONFIG_HEADER(config.h)
1919 _CUSTOM_ASN1_AC_OUTPUT_
1920 asn1/acp133/Makefile
1922 asn1/ansi_map/Makefile
1923 asn1/ansi_tcap/Makefile
1926 asn1/charging_ase/Makefile
1939 asn1/gprscdr/Makefile
1940 asn1/gsm_map/Makefile
1949 asn1/h450-ros/Makefile
1952 asn1/HI2Operations/Makefile
1956 asn1/kerberos/Makefile
1958 asn1/logotypecertextn/Makefile
1959 asn1/lte-rrc/Makefile
1961 asn1/mpeg-audio/Makefile
1962 asn1/mpeg-pes/Makefile
1964 asn1/ns_cert_exts/Makefile
1972 asn1/pkcs12/Makefile
1973 asn1/pkinit/Makefile
1974 asn1/pkixac/Makefile
1975 asn1/pkix1explicit/Makefile
1976 asn1/pkix1implicit/Makefile
1977 asn1/pkixproxy/Makefile
1978 asn1/pkixqualified/Makefile
1979 asn1/pkixtsp/Makefile
1982 asn1/q932-ros/Makefile
1995 asn1/spnego/Makefile
2002 asn1/wlancertextn/Makefile
2004 asn1/x509af/Makefile
2005 asn1/x509ce/Makefile
2006 asn1/x509if/Makefile
2007 asn1/x509sat/Makefile
2015 epan/dfilter/Makefile
2016 epan/dissectors/Makefile
2017 epan/dissectors/dcerpc/Makefile
2018 epan/dissectors/pidl/Makefile
2019 epan/ftypes/Makefile
2021 epan/wspython/Makefile
2027 packaging/macosx/Info.plist
2028 packaging/macosx/Makefile
2029 packaging/nsis/Makefile
2030 packaging/rpm/Makefile
2031 packaging/rpm/SPECS/Makefile
2032 packaging/rpm/SPECS/wireshark.spec
2033 packaging/svr4/Makefile
2034 packaging/svr4/checkinstall
2035 packaging/svr4/pkginfo
2037 plugins/asn1/Makefile
2038 plugins/docsis/Makefile
2039 plugins/ethercat/Makefile
2040 plugins/giop/Makefile
2041 plugins/gryphon/Makefile
2042 plugins/irda/Makefile
2043 plugins/m2m/Makefile
2044 plugins/mate/Makefile
2045 plugins/opcua/Makefile
2046 plugins/profinet/Makefile
2047 plugins/stats_tree/Makefile
2048 plugins/unistim/Makefile
2049 plugins/wimax/Makefile
2050 plugins/wimaxasncp/Makefile
2053 tools/lemon/Makefile
2058 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2063 if test "x$enable_setcap_install" = "xyes" ; then
2064 setcap_message="yes"
2070 if test "x$enable_setuid_install" = "xyes" ; then
2071 setuid_message="yes"
2076 if test "x$DUMPCAP_GROUP" = "x" ; then
2077 dumpcap_group_message="(none)"
2079 dumpcap_group_message="$DUMPCAP_GROUP"
2082 if test "x$want_zlib" = "xno" ; then
2088 if test "x$want_pcre" = "xno" ; then
2089 pcre_message="no (using GRegex instead)"
2094 if test "x$want_lua" = "xyes" ; then
2100 if test "x$want_python" = "xno"; then
2103 python_message="yes"
2106 if test "x$want_portaudio" = "xyes" ; then
2107 portaudio_message="yes"
2109 portaudio_message="no"
2112 if test "x$want_ssl" = "xno" ; then
2118 if test "x$want_krb5" = "xno" ; then
2121 krb5_message="yes ($ac_krb5_version)"
2124 if test "x$have_good_c_ares" = "xyes" ; then
2125 c_ares_message="yes"
2130 if test "x$have_good_adns" = "xyes" ; then
2133 if test "x$have_good_c_ares" = "xyes" ; then
2134 adns_message="no (using c-ares instead)"
2140 if test "x$have_good_libcap" = "xyes" ; then
2141 libcap_message="yes"
2146 if test "x$have_good_geoip" = "xyes" ; then
2153 echo "The Wireshark package has been configured with the following options."
2154 echo " Build wireshark : $enable_wireshark"
2155 echo " Build tshark : $enable_tshark"
2156 echo " Build capinfos : $enable_capinfos"
2157 echo " Build editcap : $enable_editcap"
2158 echo " Build dumpcap : $enable_dumpcap"
2159 echo " Build mergecap : $enable_mergecap"
2160 echo " Build text2pcap : $enable_text2pcap"
2161 echo " Build idl2wrs : $enable_idl2wrs"
2162 echo " Build randpkt : $enable_randpkt"
2163 echo " Build dftest : $enable_dftest"
2164 echo " Build rawshark : $enable_rawshark"
2166 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2167 echo " Install dumpcap with capabilities : $setcap_message"
2168 echo " Install dumpcap setuid : $setuid_message"
2169 echo " Use dumpcap group : $dumpcap_group_message"
2170 echo " Use plugins : $have_plugins"
2171 echo " Use Lua library : $lua_message"
2172 echo " Use Python binding : $python_message"
2173 echo " Build rtp_player : $portaudio_message"
2174 echo " Use threads : $enable_threads"
2175 echo " Build profile binaries : $enable_profile_build"
2176 echo " Use pcap library : $want_pcap"
2177 echo " Use zlib library : $zlib_message"
2178 echo " Use pcre library : $pcre_message"
2179 echo " Use kerberos library : $krb5_message"
2180 echo " Use c-ares library : $c_ares_message"
2181 echo " Use GNU ADNS library : $adns_message"
2182 echo " Use SMI MIB library : $libsmi_message"
2183 echo " Use GNU crypto library : $gcrypt_message"
2184 echo " Use SSL crypto library : $ssl_message"
2185 echo " Use IPv6 name resolution : $enable_ipv6"
2186 echo " Use gnutls library : $tls_message"
2187 echo " Use POSIX capabilities library : $libcap_message"
2188 echo " Use GeoIP library : $geoip_message"