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(-Warray-bounds)
331 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
332 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
333 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
334 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
335 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
336 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
337 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
338 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
339 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
340 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
342 # epan/dissectors/packet-ncp2222.inc blocks this one
345 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
346 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
347 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
349 # epan/dissectors/packet-afs.c blocks this one for now.
351 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
353 # More cleanup needed for this on LP64.
355 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
358 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
359 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
360 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
361 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
362 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
363 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
364 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
365 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
366 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
367 # Use the faster pre gcc 4.5 floating point precision
368 if test "x$CC" != "xclang" ; then
369 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
372 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
373 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
374 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
375 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
376 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
377 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
380 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
381 # CFLAGS as well, so we can use _U_ to flag unused function arguments and
382 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
383 # to flag an unused function argument will compile with non-GCC, non-clang
386 # XXX - other compilers?
388 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
389 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
391 CFLAGS="-D_U_=\"\" $CFLAGS"
395 # If the compiler supports GCC-style flags, enable a barrier "stop on
397 # This barrier is set for a very large part of the code. However, it is
398 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
400 warnings_as_errors_default="yes"
401 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
402 AC_ARG_ENABLE(warnings-as-errors,
403 AC_HELP_STRING( [--enable-warnings-as-errors],
404 [Treat warnings as errors (only for GCC or clang). @<:@default=yes@:>@]),
406 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
407 with_warnings_as_errors="yes"
410 with_warnings_as_errors="no"
414 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
415 with_warnings_as_errors="yes"
418 with_warnings_as_errors="no"
422 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
425 # Add any platform-specific compiler flags needed.
427 AC_MSG_CHECKING(for platform-specific compiler flags)
428 if test "x$GCC" = "xyes" ; then
430 # GCC - do any platform-specific tweaking necessary.
434 # the X11 headers don't automatically include prototype info
435 # and a lot don't include the return type
436 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
437 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
441 # See comments above about Apple's lovely C compiler.
443 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
444 # defines __GNUC__"; clang defines __GNUC__, so that
445 # means we think clang is GCC.
447 # clang whines about -no-cpp-precomp being unused
448 # so we check whether this is really clang, and
449 # only add -no-cpp-precomp if it's not.
451 if test "x$CC" != "xclang" ; then
452 CFLAGS="-no-cpp-precomp $CFLAGS"
453 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
456 # Clang, clang, clang went the trolley....
458 AC_MSG_RESULT(none needed)
462 AC_MSG_RESULT(none needed)
467 # Not GCC - assume it's the vendor's compiler.
472 # HP's ANSI C compiler; flags suggested by Jost Martin.
473 # "-Ae" for ANSI C plus extensions such as "long long".
474 # "+O2", for optimization. XXX - works with "-g"?
476 CFLAGS="-Ae +O2 $CFLAGS"
477 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
481 # It may be called "cc", but it's really a GCC derivative
482 # with a problematic special precompiler and precompiled
483 # headers; turn off the special precompiler, as some
484 # apparently-legal code won't compile with its precompiled
487 # On the other hand, if it's called "clang", it's not a
488 # GCC derivative, and it whines if you pass it
491 # XXX - is there any version of autoconf we support
492 # where it uses another way to decide if the compiler
495 if test "x$CC" != "xclang" ; then
496 CFLAGS="-no-cpp-precomp $CFLAGS"
497 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
500 # Clang, clang, clang went the trolley....
502 AC_MSG_RESULT(none needed)
506 AC_MSG_RESULT(none needed)
512 # Add any platform-specific linker flags needed.
514 AC_MSG_CHECKING(for platform-specific linker flags)
518 # Add -Wl,-single_module to the LDFLAGS used with shared
519 # libraries, to fix some error that show up in some cases;
520 # some Apple documentation recommends it for most shared
523 LDFLAGS_SHAREDLIB="-Wl,-single_module"
525 # Add -Wl,-search_paths_first to make sure that if we search
526 # directories A and B, in that order, for a given library, a
527 # non-shared version in directory A, rather than a shared
528 # version in directory B, is chosen (so we can use
529 # --with-pcap=/usr/local to force all programs to be linked
530 # with a static version installed in /usr/local/lib rather than
531 # the system version in /usr/lib).
533 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
534 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
538 # Shared libraries in cygwin/Win32 must never contain
541 LDFLAGS="$LDFLAGS -no-undefined"
542 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
545 AC_MSG_RESULT(none needed)
548 AC_SUBST(LDFLAGS_SHAREDLIB)
550 # Control silent compiling
551 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
554 # On OS X, if we find the headers for Core Foundation, Launch Services,
555 # and Core Services, add -framework options to link with Application
556 # Services (of which Launch Services is a subframework), Core Foundation
557 # (required by the Launch Services APIs), and Core Services, so we can
558 # use them to launch a Web browser from the Help menu and to use
559 # Gestalt() to get the Mac OS X version number.
564 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
566 ac_coreservices_frameworks="-framework CoreServices"
567 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
568 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
571 # include <CoreFoundation/CFBase.h>
572 # include <CoreFoundation/CFString.h>
573 # include <CoreFoundation/CFURL.h>
574 # include <ApplicationServices/ApplicationServices.h>
575 # include <CoreServices/CoreServices.h>
578 CFStringRef url_CFString;
583 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
584 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
585 status = LSOpenCFURLRef(url_CFURL, NULL);
587 Gestalt(gestaltSystemVersion, &os_version);
589 ac_cv_can_use_osx_frameworks=yes,
590 ac_cv_can_use_osx_frameworks=no,
591 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
592 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
593 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
594 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
595 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
603 AC_SUBST(CORESERVICES_FRAMEWORKS)
604 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
607 # If using $prefix we add "$prefix/include" to the include search path
608 # and "$prefix/lib" to the library search path.
610 if test "x$prefix" != "x" ; then
611 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
612 if test -d $prefix/include ; then
615 # Arrange that we search for header files in "$prefix/include", as
616 # various packages we use may have been installed under "$prefix/include".
618 CFLAGS="$CFLAGS -I$prefix/include"
619 CPPFLAGS="$CPPFLAGS -I$prefix/include"
622 # Arrange that we search for libraries in "$prefix/lib".
624 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
630 dnl Look in /usr/local for header files and libraries ?
631 dnl XXX FIXME don't include /usr/local if it is already in the system
632 dnl search path as this causes gcc 3.2 on Linux to complain about a change
633 dnl of the system search order for includes
634 AC_ARG_ENABLE(usr-local,
635 AC_HELP_STRING( [--enable-usr-local],
636 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
637 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
639 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
640 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
641 if test -d "/usr/local"; then
644 # Arrange that we search for header files in the source directory
645 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
646 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
647 # may have been installed under "/usr/local/include".
649 CFLAGS="$CFLAGS -I/usr/local/include"
650 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
653 # Arrange that we search for libraries in "/usr/local/lib".
655 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
664 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
669 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
670 if test x$LD_LIBRARY_PATH != x ; then
671 LIBS="$LIBS -R$LD_LIBRARY_PATH"
672 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
674 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
680 # Check for versions of "sed" inadequate to handle, in libtool, a list
681 # of object files as large as the list in Wireshark.
683 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
684 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
685 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
686 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
687 # is the only "sed" that comes with Solaris that can handle Wireshark.
689 # Add any checks here that are necessary for other OSes.
691 AC_WIRESHARK_GNU_SED_CHECK
692 if test "$HAVE_GNU_SED" = no ; then
695 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
697 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
699 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
714 # Enable/disable tshark
716 AC_ARG_ENABLE(wireshark,
717 AC_HELP_STRING( [--enable-wireshark],
718 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
719 enable_wireshark=$enableval,enable_wireshark=yes)
721 AC_ARG_ENABLE(packet-editor,
722 AC_HELP_STRING( [--enable-packet-editor],
723 [add support for packet editor in wireshark. @<:@default=no@:>@]),
724 enable_packet_editor=$enableval,enable_packet_editor=no)
725 if test x$enable_packet_editor = xyes; then
726 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
729 AC_ARG_ENABLE(threads,
730 AC_HELP_STRING( [--enable-threads],
731 [use threads in wireshark. @<:@default=no@:>@]),
732 enable_threads=$enableval,enable_threads=no)
733 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
735 AC_ARG_ENABLE(profile-build,
736 AC_HELP_STRING( [--enable-profile-build],
737 [build profile-ready binaries. @<:@default=no@:>@]),
738 enable_profile_build=$enableval,enable_profile_build=no)
739 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
740 AC_MSG_CHECKING(if profile builds must be generated)
741 if test "x$enable_profile_build" = "xyes" ; then
742 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
744 CFLAGS=" -pg $CFLAGS"
747 echo "Building profile binaries currently only supported for GCC and clang."
753 # Create DATAFILE_DIR #define for config.h
754 datafiledir=$datadir/wireshark
756 test "x$prefix" = xNONE && prefix=$ac_default_prefix
757 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
758 # Ugly hack, but I don't see how this problem can be solved
759 # properly that DATAFILE_DIR had a value starting with
760 # "${prefix}/" instead of e.g. "/usr/local/"
761 eval eval echo "$datafiledir"
763 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
765 # Create DOC_DIR #define for config.h
767 test "x$prefix" = xNONE && prefix=$ac_default_prefix
768 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
769 # Ugly hack, but I don't see how this problem can be solved
770 # properly that DOC_DIR had a value starting with
771 # "${prefix}/" instead of e.g. "/usr/local/"
772 eval eval echo "$docdir"
774 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
776 # GTK checks; we require GTK+ 2.4 or later.
777 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
778 # programs to be built with GTK+.
780 if test "x$enable_wireshark" = "xyes"; then
781 if test "x$with_gtk3" = "xyes"; then
782 AM_PATH_GTK_3_0(3.0.0,
784 CFLAGS="$CFLAGS $GTK_CFLAGS"
785 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
786 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
787 ], GTK_OK=no, gthread)
790 AM_PATH_GTK_2_0(2.4.0,
792 CFLAGS="$CFLAGS $GTK_CFLAGS"
793 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
794 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
795 ], GTK_OK=no, gthread)
801 # GLib checks; we require GLib 2.4 or later, and require gmodule
802 # support, as we need that for dynamically loading plugins.
803 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
804 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
805 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
806 # GLIB_CFLAGS to CFLAGS.
807 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
808 # set when generating the Makefile, so we can make programs that require
809 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
810 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
811 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
812 # programs to be built with GLib.
814 if test "$GTK_OK" = "no" ; then
816 # We don't have GTK+.
817 # If they didn't explicitly say "--disable-wireshark", fail (so
818 # that, unless they explicitly indicated that they don't want
819 # Wireshark, we stop so they know they won't be getting
820 # Wireshark unless they fix the GTK+ problem).
822 if test "x$enable_wireshark" = "xyes"; then
823 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
828 AM_PATH_GLIB_2_0(2.4.0,
830 CFLAGS="$CFLAGS $GLIB_CFLAGS"
831 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
832 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gthread gmodule)
835 # We have GTK+, and thus will be building Wireshark unless the
836 # user explicitly disabled it.
838 wireshark_bin="wireshark\$(EXEEXT)"
839 wireshark_man="wireshark.1"
840 wireshark_SUBDIRS="codecs gtk"
841 # Don't use GLIB_CFLAGS
842 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gthread gmodule)
846 # Check whether GLib includes GRegex support.
847 # We just assume that everybody builds GLib 2.14.0 and later
848 # with GRegex support; it's possible to compile GLib without
849 # GRegex but it doesn't look as if anyone does.
851 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
852 if test x$PKG_CONFIG != xno ; then
853 ## don't try to run the test against uninstalled libtool libs
854 if $PKG_CONFIG --uninstalled $pkg_config_args; then
855 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
859 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
864 AC_MSG_RESULT($have_gregex)
868 # Check whether GLib modules are supported, to determine whether we
869 # can support plugins.
871 AC_MSG_CHECKING(whether GLib supports loadable modules)
872 ac_save_CFLAGS="$CFLAGS"
874 CFLAGS="$CFLAGS $GLIB_CFLAGS"
875 LIBS="$GLIB_LIBS $LIBS"
885 if (g_module_supported())
886 return 0; /* success */
888 return 1; /* failure */
890 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
891 [echo $ac_n "cross compiling; assumed OK... $ac_c"
892 ac_cv_glib_supports_modules=yes])
893 CFLAGS="$ac_save_CFLAGS"
895 if test "$ac_cv_glib_supports_modules" = yes ; then
904 # If we have <dlfcn.h>, check whether we can use dladdr to find a
905 # filename (hopefully, a full pathname, but no guarantees) for
908 if test "$ac_cv_header_dlfcn_h" = "yes"
910 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
911 ac_save_CFLAGS="$CFLAGS"
913 CFLAGS="$CFLAGS $GLIB_CFLAGS"
914 LIBS="$GLIB_LIBS $LIBS"
916 #define _GNU_SOURCE /* required on Linux, sigh */
924 if (!dladdr((void *)main, &info))
925 return 1; /* failure */
926 return 0; /* assume success */
928 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
929 [echo $ac_n "cross compiling; assumed OK... $ac_c"
930 ac_cv_dladdr_finds_executable_path=yes])
931 CFLAGS="$ac_save_CFLAGS"
933 if test x$ac_cv_dladdr_finds_executable_path = xyes
935 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
937 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
940 if test "x$no_gtk" != "xyes"
943 # We have GTK+; do we want the OS X integration functions and,
944 # if so, do we have them and, if so, which versions do we have,
945 # the old Carbon-based ones or the new Cocoa-based ones?
947 AC_MSG_CHECKING(whether to use OS X integration functions)
949 AC_ARG_WITH(osx-integration,
950 AC_HELP_STRING( [--with-osx-integration],
951 [use OS X integration functions (@<:@default=yes, if available@:>@]),
953 if test $withval = no
955 want_osx_integration=no
957 want_osx_integration=yes
960 want_osx_integration=yes
962 if test "x$want_osx_integration" = "xno"; then
966 AC_WIRESHARK_OSX_INTEGRATION_CHECK
970 AC_SUBST(wireshark_bin)
971 AC_SUBST(wireshark_man)
974 # Enable/disable tshark
976 AC_ARG_ENABLE(tshark,
977 AC_HELP_STRING( [--enable-tshark],
978 [build tshark. @<:@default=yes@:>@]),
979 tshark=$enableval,enable_tshark=yes)
981 if test "x$enable_tshark" = "xyes" ; then
982 tshark_bin="tshark\$(EXEEXT)"
983 tshark_man="tshark.1"
984 wiresharkfilter_man="wireshark-filter.4"
991 AC_SUBST(wiresharkfilter_man)
995 # Enable/disable editcap
997 AC_ARG_ENABLE(editcap,
998 AC_HELP_STRING( [--enable-editcap],
999 [build editcap. @<:@default=yes@:>@]),
1000 enable_editcap=$enableval,enable_editcap=yes)
1002 if test "x$enable_editcap" = "xyes" ; then
1003 editcap_bin="editcap\$(EXEEXT)"
1004 editcap_man="editcap.1"
1009 AC_SUBST(editcap_bin)
1010 AC_SUBST(editcap_man)
1012 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1015 # Enable/disable capinfos
1017 AC_ARG_ENABLE(capinfos,
1018 AC_HELP_STRING( [--enable-capinfos],
1019 [build capinfos. @<:@default=yes@:>@]),
1020 enable_capinfos=$enableval,enable_capinfos=yes)
1022 if test "x$enable_capinfos" = "xyes" ; then
1023 capinfos_bin="capinfos\$(EXEEXT)"
1024 capinfos_man="capinfos.1"
1029 AC_SUBST(capinfos_bin)
1030 AC_SUBST(capinfos_man)
1033 # Enable/disable mergecap
1035 AC_ARG_ENABLE(mergecap,
1036 AC_HELP_STRING( [--enable-mergecap],
1037 [build mergecap. @<:@default=yes@:>@]),
1038 enable_mergecap=$enableval,enable_mergecap=yes)
1040 if test "x$enable_mergecap" = "xyes" ; then
1041 mergecap_bin="mergecap\$(EXEEXT)"
1042 mergecap_man="mergecap.1"
1047 AC_SUBST(mergecap_bin)
1048 AC_SUBST(mergecap_man)
1051 # Enable/disable text2pcap
1053 AC_ARG_ENABLE(text2pcap,
1054 AC_HELP_STRING( [--enable-text2pcap],
1055 [build text2pcap. @<:@default=yes@:>@]),
1056 text2pcap=$enableval,enable_text2pcap=yes)
1058 if test "x$enable_text2pcap" = "xyes" ; then
1059 text2pcap_bin="text2pcap\$(EXEEXT)"
1060 text2pcap_man="text2pcap.1"
1065 AC_SUBST(text2pcap_bin)
1066 AC_SUBST(text2pcap_man)
1068 # Enable/disable idl2wrs
1070 AC_ARG_ENABLE(idl2wrs,
1071 AC_HELP_STRING( [--enable-idl2wrs],
1072 [build idl2wrs. @<:@default=yes@:>@]),
1073 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
1075 if test "x$enable_idl2wrs" = "xyes" ; then
1076 idl2wrs_bin="idl2wrs"
1077 idl2wrs_man="idl2wrs.1"
1082 AC_SUBST(idl2wrs_bin)
1083 AC_SUBST(idl2wrs_man)
1086 # Enable/disable dftest
1088 AC_ARG_ENABLE(dftest,
1089 AC_HELP_STRING( [--enable-dftest],
1090 [build dftest. @<:@default=yes@:>@]),
1091 enable_dftest=$enableval,enable_dftest=yes)
1093 if test "x$enable_dftest" = "xyes" ; then
1094 dftest_bin="dftest\$(EXEEXT)"
1095 dftest_man="dftest.1"
1100 AC_SUBST(dftest_bin)
1101 AC_SUBST(dftest_man)
1104 # Enable/disable randpkt
1106 AC_ARG_ENABLE(randpkt,
1107 AC_HELP_STRING( [--enable-randpkt],
1108 [build randpkt. @<:@default=yes@:>@]),
1109 enable_randpkt=$enableval,enable_randpkt=yes)
1111 if test "x$enable_randpkt" = "xyes" ; then
1112 randpkt_bin="randpkt\$(EXEEXT)"
1113 randpkt_man="randpkt.1"
1118 AC_SUBST(randpkt_bin)
1119 AC_SUBST(randpkt_man)
1123 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1124 dnl "gethostbyname()".
1125 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1127 dnl Checks for "connect()", used as a proxy for "socket()" - and
1128 dnl "-lsocket", if we need it to get "connect()".
1129 AC_WIRESHARK_SOCKET_LIB_CHECK
1132 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1135 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1136 [use libpcap for packet capturing. @<:@default=yes@:>@]),
1138 if test $withval = no
1141 elif test $withval = yes
1152 if test "x$want_pcap" = "xno" ; then
1156 AC_WIRESHARK_PCAP_CHECK
1159 # Enable/disable dumpcap
1162 AC_MSG_CHECKING(whether to build dumpcap)
1164 AC_ARG_ENABLE(dumpcap,
1165 AC_HELP_STRING( [--enable-dumpcap],
1166 [build dumpcap. @<:@default=yes@:>@]),
1167 enable_dumpcap=$enableval,enable_dumpcap=yes)
1169 if test "x$enable_dumpcap" = "xyes" ; then
1170 if test "x$want_pcap" = "xno" ; then
1172 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1180 if test "x$enable_dumpcap" = "xyes" ; then
1181 dumpcap_bin="dumpcap\$(EXEEXT)"
1182 dumpcap_man="dumpcap.1"
1187 AC_SUBST(dumpcap_bin)
1188 AC_SUBST(dumpcap_man)
1190 # Enable/disable rawshark
1193 AC_MSG_CHECKING(whether to build rawshark)
1195 AC_ARG_ENABLE(rawshark,
1196 AC_HELP_STRING( [--enable-rawshark],
1197 [build rawshark. @<:@default=yes@:>@]),
1198 rawshark=$enableval,enable_rawshark=yes)
1200 if test "x$enable_rawshark" = "xyes" ; then
1201 if test "x$want_pcap" = "xno" ; then
1203 AC_MSG_RESULT(pcap not available - disabling rawshark)
1211 if test "x$enable_rawshark" = "xyes" ; then
1212 rawshark_bin="rawshark\$(EXEEXT)"
1213 rawshark_man="rawshark.1"
1218 AC_SUBST(rawshark_bin)
1219 AC_SUBST(rawshark_man)
1222 dnl pcap remote check
1223 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1225 AC_ARG_WITH(pcap-remote,
1226 AC_HELP_STRING([--with-pcap-remote],
1227 [use libpcap remote capturing (requires libpcap)]),
1229 if test $withval = no
1233 want_pcap_remote=yes
1238 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1242 AC_WIRESHARK_PCAP_REMOTE_CHECK
1246 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1249 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1250 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression . @<:@default=yes, if available@:>@]),
1252 if test $withval = no
1255 elif test $withval = yes
1264 # Use zlib if it's present, otherwise don't.
1266 want_zlib=ifavailable
1269 if test "x$want_zlib" = "xno" ; then
1273 AC_WIRESHARK_ZLIB_CHECK
1274 if test "x$want_zlib" = "xno" ; then
1275 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1277 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1278 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1284 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1287 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1288 [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=yes, if available and GLib < 2.14@:>@]),
1290 if test $withval = no
1293 elif test $withval = yes
1302 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1304 if test $have_gregex = yes ; then
1307 want_pcre=ifavailable
1311 if test "x$want_pcre" = "xno" ; then
1315 AC_WIRESHARK_LIBPCRE_CHECK
1316 if test "x$want_pcre" = "xno" ; then
1317 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1323 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1326 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1327 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1329 if test $withval = no
1332 elif test $withval = yes
1341 # Use liblua by default
1343 want_lua=ifavailable
1346 if test "x$want_lua" = "xno" ; then
1350 AC_WIRESHARK_LIBLUA_CHECK
1351 if test "x$want_lua" = "xno" ; then
1352 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1355 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1359 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1361 AC_ARG_WITH(portaudio,
1362 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1363 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1365 if test $withval = no
1368 elif test $withval = yes
1373 portaudio_dir=$withval
1377 # Use libportaudio by default
1379 want_portaudio=ifavailable
1382 if test "x$want_portaudio" = "xno" ; then
1386 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1387 if test "x$want_portaudio" = "xno" ; then
1388 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1391 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1396 AC_HELP_STRING( [--enable-ipv6],
1397 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1398 enable_ipv6=$enableval,enable_ipv6=yes)
1400 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1401 if test "x$enable_ipv6" = "xno" ; then
1405 AC_WIRESHARK_IPV6_STACK
1409 dnl Check if dumpcap should be installed with filesystem capabilities
1410 AC_PATH_PROG(SETCAP, setcap)
1411 AC_ARG_ENABLE(setcap-install,
1412 AC_HELP_STRING( [--enable-setcap-install],
1413 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1414 enable_setcap_install=$enableval,enable_setcap_install=no)
1416 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1417 if test "x$enable_setcap_install" = "xno" ; then
1420 if test "x$SETCAP" = "x" ; then
1421 AC_MSG_RESULT(no. Setcap not found)
1422 elif test "x$enable_dumpcap" = "xno" ; then
1423 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1429 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1431 dnl Check if dumpcap should be installed setuid
1432 AC_ARG_ENABLE(setuid-install,
1433 AC_HELP_STRING( [--enable-setuid-install],
1434 [install dumpcap as setuid @<:@default=no@:>@]),
1435 enable_setuid_install=$enableval,enable_setuid_install=no)
1437 AC_MSG_CHECKING(whether to install dumpcap setuid)
1438 if test "x$enable_setuid_install" = "xno" ; then
1441 if test "x$enable_setcap_install" = "xyes" ; then
1442 enable_setuid_install=no
1443 AC_MSG_RESULT(no; using setcap instead)
1444 elif test "x$enable_dumpcap" = "xno" ; then
1445 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1451 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1452 AC_CHECK_FUNCS(setresuid setresgid)
1454 dnl ...but our Network Operations group is named "no"!
1456 AC_ARG_WITH(dumpcap-group,
1457 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1458 [restrict dumpcap to GROUP]),
1460 if test "x$withval" = "xyes"; then
1461 AC_MSG_ERROR([No dumpcap group specified.])
1462 elif test "x$withval" != "xno"; then
1463 if test "x$enable_dumpcap" = "xno" ; then
1464 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1466 AC_MSG_RESULT($withval)
1467 DUMPCAP_GROUP="$withval"
1470 AC_SUBST(DUMPCAP_GROUP)
1471 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1473 dnl libcap (not libpcap) check
1475 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1478 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1479 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1481 if test "x$withval" = "xno"; then
1483 elif test "x$withval" = "xyes"; then
1485 elif test -d "$withval"; then
1487 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1490 if test "x$with_libcap" = "xno" ; then
1494 AC_WIRESHARK_LIBCAP_CHECK
1496 AC_SUBST(LIBCAP_LIBS)
1498 dnl Checks for header files.
1499 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1500 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)
1501 AC_CHECK_HEADERS(netinet/in.h)
1502 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1506 AC_MSG_CHECKING(whether to use SSL library)
1509 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1510 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1512 if test "x$withval" = "xno"; then
1514 elif test "x$withval" = "xyes"; then
1516 elif test -d "$withval"; then
1518 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1523 if test "x$want_ssl" = "xyes"; then
1525 AC_CHECK_LIB(crypto,EVP_md5,
1530 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1538 AC_MSG_CHECKING(whether to use kerberos)
1541 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1542 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1544 if test $withval = no
1547 elif test $withval = yes
1556 # Use kerberos if specified, otherwise don't.
1558 want_krb5=ifavailable
1561 if test "x$want_krb5" = "xno" ; then
1565 AC_WIRESHARK_KRB5_CHECK
1571 AC_MSG_CHECKING(whether to use the c-ares library if available)
1574 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1575 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1577 if test "x$withval" = "xno"; then
1579 elif test "x$withval" = "xyes"; then
1581 elif test -d "$withval"; then
1583 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1586 if test "x$want_c_ares" = "xno" ; then
1590 AC_WIRESHARK_C_ARES_CHECK
1592 AC_SUBST(C_ARES_LIBS)
1596 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1599 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1600 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1602 if test "x$withval" = "xno"; then
1604 elif test "x$withval" = "xyes"; then
1606 elif test -d "$withval"; then
1608 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1611 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1615 AC_WIRESHARK_ADNS_CHECK
1621 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1624 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1625 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1627 if test "x$withval" = "xno"; then
1629 elif test "x$withval" = "xyes"; then
1631 elif test -d "$withval"; then
1633 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1636 if test "x$want_geoip" = "xno"; then
1640 AC_WIRESHARK_GEOIP_CHECK
1642 AC_SUBST(GEOIP_LIBS)
1644 dnl Python devel Check
1646 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1647 [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1649 pythondir='${libdir}/wireshark/python/${VERSION}'
1650 if test "x$withval" = "xno"; then
1652 elif test "x$withval" != "xyes"; then
1653 pythondir="$withval"
1655 AC_WIRESHARK_PYTHON_CHECK
1658 AC_WIRESHARK_PYTHON_CHECK
1661 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1665 # Define WS_VAR_IMPORT appropriately for declarations of external
1666 # variables exported from dynamically-linked libraries.
1668 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1671 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1672 # never return (just like Charlie on the MTA).
1674 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1675 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1676 # follow the function name, so we need two different flavors of
1679 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1681 AC_ARG_ENABLE(airpcap,
1682 AC_HELP_STRING( [--enable-airpcap],
1683 [use airpcap in wireshark. @<:@default=yes@:>@]),
1684 enable_airpcap=$enableval
1685 if test x$enable_airpcap != xno; then
1686 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1690 # Define HAVE_AIRPDCAP
1691 # We'll want to remove this eventually.
1693 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1695 dnl Checks for typedefs, structures, and compiler characteristics.
1698 # Check how we can get the time zone abbreviation
1699 AC_WIRESHARK_TIMEZONE_ABBREV
1701 # We need to know whether "struct sockaddr" has an "sa_len" member
1702 # for get_interface_list().
1704 AC_WIRESHARK_STRUCT_SA_LEN
1706 # We must know our byte order
1709 # Checks whether "-traditional" is needed when using "ioctl".
1710 # XXX - do we need this?
1711 AC_PROG_GCC_TRADITIONAL
1714 AC_CHECK_FUNC(getopt,
1716 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1718 GETOPT_LO="wsgetopt.lo"
1720 if test "$ac_cv_func_getopt" = no ; then
1721 GETOPT_LO="wsgetopt.lo"
1723 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1726 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1727 [STRERROR_LO="strerror.lo"
1728 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1730 if test "$ac_cv_func_strerror" = no ; then
1731 STRERROR_LO="strerror.lo"
1733 AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
1734 AC_SUBST(STRERROR_LO)
1736 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1737 STRNCASECMP_LO="strncasecmp.lo")
1738 if test "$ac_cv_func_strncasecmp" = no ; then
1739 STRNCASECMP_LO="strncasecmp.lo"
1741 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1742 AC_SUBST(STRNCASECMP_LO)
1744 AC_CHECK_FUNCS(mkstemp mkdtemp)
1746 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1748 if test "$have_inet_aton" = no; then
1749 INET_ATON_LO="inet_aton.lo"
1750 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1754 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1755 AC_SUBST(INET_ATON_LO)
1757 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1758 dnl check for pre-BIND82 inet_pton() bug.
1759 AC_MSG_CHECKING(for broken inet_pton)
1760 AC_TRY_RUN([#include <sys/types.h>
1761 #include <sys/socket.h>
1762 #include <netinet/in.h>
1763 #include <arpa/inet.h>
1768 /* this should return 0 (error) */
1769 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1773 }], [AC_MSG_RESULT(ok);
1774 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1775 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1776 have_inet_pton=no])],
1778 if test "$have_inet_pton" = no; then
1779 INET_PTON_LO="inet_pton.lo"
1783 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1784 AC_SUBST(INET_PTON_LO)
1786 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1787 AC_MSG_CHECKING([for inet_ntop prototype])
1788 AC_TRY_COMPILE([#include <stdio.h>
1789 #include <sys/types.h>
1790 #include <sys/socket.h>
1791 #include <netinet/in.h>
1792 #include <arpa/inet.h>
1794 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1796 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1797 [Define if inet_ntop() prototype exists])], [
1798 AC_TRY_COMPILE([#include <stdio.h>
1799 #include <sys/types.h>
1800 #include <sys/socket.h>
1801 #include <netinet/in.h>
1802 #include <arpa/inet.h>
1804 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1806 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1807 [Define if inet_ntop() prototype exists])], [
1808 AC_MSG_RESULT(no)])])
1810 INET_NTOP_LO="inet_ntop.lo"
1811 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1812 [Define if inet/v6defs.h needs to be included])])
1813 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1814 AC_SUBST(INET_NTOP_LO)
1816 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1817 [STRPTIME_LO="strptime.lo"
1818 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1820 if test "$ac_cv_func_strptime" = no ; then
1821 STRPTIME_LO="strptime.lo"
1823 AC_SUBST(STRPTIME_C)
1824 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1825 AC_SUBST(STRPTIME_LO)
1827 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1828 AC_CHECK_FUNCS(issetugid)
1829 AC_CHECK_FUNCS(mmap mprotect sysconf)
1830 AC_CHECK_FUNCS(strtoll)
1832 dnl blank for now, but will be used in future
1833 AC_SUBST(wireshark_SUBDIRS)
1836 dnl check whether plugins should be enabled and, if they should be,
1837 dnl check for plugins directory - stolen from Amanda's configure.in
1839 dnl we don't wish to expand ${libdir} yet
1840 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1841 AC_ARG_WITH(plugins,
1842 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1843 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1845 if test "x$withval" = "xno"; then
1847 elif test "x$have_plugins" = "xno"; then
1848 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1849 elif test "x$withval" != "xyes"; then
1850 plugindir="$withval"
1853 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1854 if test x$have_plugins = xyes
1856 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1859 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1862 # The plugin dissectors reside in ./plugins/PROTO/
1865 AC_SUBST(PLUGIN_LIBS)
1869 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1870 # (autoconf? automake? libtool?) - with the newer version(s), it's
1871 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1873 # With older version(s) of those tool(s), however, it's not just an
1874 # alias, and the configure scripts don't work without it.
1877 AC_SUBST(LIBTOOL_DEPS)
1879 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1880 if test x$enable_static = xyes -a x$have_plugins = xyes
1882 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1884 AC_SUBST(ENABLE_STATIC)
1886 dnl Save the cacheable configure results to config.cache before recursing
1889 sinclude(plugins/Custom.m4) dnl
1890 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1892 AM_CONFIG_HEADER(config.h)
1897 asn1/acp133/Makefile
1899 asn1/ansi_map/Makefile
1900 asn1/ansi_tcap/Makefile
1903 asn1/charging_ase/Makefile
1916 asn1/gprscdr/Makefile
1917 asn1/gsm_map/Makefile
1926 asn1/h450-ros/Makefile
1929 asn1/HI2Operations/Makefile
1933 asn1/kerberos/Makefile
1935 asn1/logotypecertextn/Makefile
1936 asn1/lte-rrc/Makefile
1938 asn1/mpeg-audio/Makefile
1939 asn1/mpeg-pes/Makefile
1941 asn1/ns_cert_exts/Makefile
1949 asn1/pkcs12/Makefile
1950 asn1/pkinit/Makefile
1951 asn1/pkixac/Makefile
1952 asn1/pkix1explicit/Makefile
1953 asn1/pkix1implicit/Makefile
1954 asn1/pkixproxy/Makefile
1955 asn1/pkixqualified/Makefile
1956 asn1/pkixtsp/Makefile
1959 asn1/q932-ros/Makefile
1972 asn1/spnego/Makefile
1979 asn1/wlancertextn/Makefile
1981 asn1/x509af/Makefile
1982 asn1/x509ce/Makefile
1983 asn1/x509if/Makefile
1984 asn1/x509sat/Makefile
1992 epan/dfilter/Makefile
1993 epan/dissectors/Makefile
1994 epan/dissectors/dcerpc/Makefile
1995 epan/dissectors/pidl/Makefile
1996 epan/ftypes/Makefile
1998 epan/wspython/Makefile
2004 packaging/macosx/Info.plist
2005 packaging/macosx/Makefile
2006 packaging/nsis/Makefile
2007 packaging/rpm/Makefile
2008 packaging/rpm/SPECS/Makefile
2009 packaging/rpm/SPECS/wireshark.spec
2010 packaging/svr4/Makefile
2011 packaging/svr4/checkinstall
2012 packaging/svr4/pkginfo
2014 plugins/asn1/Makefile
2015 plugins/docsis/Makefile
2016 plugins/ethercat/Makefile
2017 plugins/giop/Makefile
2018 plugins/gryphon/Makefile
2019 plugins/interlink/Makefile
2020 plugins/irda/Makefile
2021 plugins/m2m/Makefile
2022 plugins/mate/Makefile
2023 plugins/opcua/Makefile
2024 plugins/profinet/Makefile
2025 plugins/sercosiii/Makefile
2026 plugins/stats_tree/Makefile
2027 plugins/unistim/Makefile
2028 plugins/wimax/Makefile
2029 plugins/wimaxasncp/Makefile
2032 tools/lemon/Makefile
2037 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2042 if test "x$enable_setcap_install" = "xyes" ; then
2043 setcap_message="yes"
2049 if test "x$enable_setuid_install" = "xyes" ; then
2050 setuid_message="yes"
2055 if test "x$DUMPCAP_GROUP" = "x" ; then
2056 dumpcap_group_message="(none)"
2058 dumpcap_group_message="$DUMPCAP_GROUP"
2061 if test "x$want_zlib" = "xno" ; then
2067 if test "x$want_pcre" = "xno" ; then
2068 if test $have_gregex = yes
2070 pcre_message="no (using GRegex instead)"
2078 if test "x$want_lua" = "xyes" ; then
2084 if test "x$want_python" = "xyes"; then
2085 python_message="yes"
2090 if test "x$want_portaudio" = "xyes" ; then
2091 portaudio_message="yes"
2093 portaudio_message="no"
2096 if test "x$want_ssl" = "xno" ; then
2102 if test "x$want_krb5" = "xno" ; then
2105 krb5_message="yes ($ac_krb5_version)"
2108 if test "x$have_good_c_ares" = "xyes" ; then
2109 c_ares_message="yes"
2114 if test "x$have_good_adns" = "xyes" ; then
2117 if test "x$have_good_c_ares" = "xyes" ; then
2118 adns_message="no (using c-ares instead)"
2124 if test "x$have_good_libcap" = "xyes" ; then
2125 libcap_message="yes"
2130 if test "x$have_good_geoip" = "xyes" ; then
2137 echo "The Wireshark package has been configured with the following options."
2138 echo " Build wireshark : $enable_wireshark"
2139 echo " Build tshark : $enable_tshark"
2140 echo " Build capinfos : $enable_capinfos"
2141 echo " Build editcap : $enable_editcap"
2142 echo " Build dumpcap : $enable_dumpcap"
2143 echo " Build mergecap : $enable_mergecap"
2144 echo " Build text2pcap : $enable_text2pcap"
2145 echo " Build idl2wrs : $enable_idl2wrs"
2146 echo " Build randpkt : $enable_randpkt"
2147 echo " Build dftest : $enable_dftest"
2148 echo " Build rawshark : $enable_rawshark"
2150 echo " Install dumpcap with capabilities : $setcap_message"
2151 echo " Install dumpcap setuid : $setuid_message"
2152 echo " Use dumpcap group : $dumpcap_group_message"
2153 echo " Use plugins : $have_plugins"
2154 echo " Use lua library : $lua_message"
2155 echo " Use python binding : $python_message"
2156 echo " Build rtp_player : $portaudio_message"
2157 echo " Use threads : $enable_threads"
2158 echo " Build profile binaries : $enable_profile_build"
2159 echo " Use pcap library : $want_pcap"
2160 echo " Use zlib library : $zlib_message"
2161 echo " Use pcre library : $pcre_message"
2162 echo " Use kerberos library : $krb5_message"
2163 echo " Use c-ares library : $c_ares_message"
2164 echo " Use GNU ADNS library : $adns_message"
2165 echo " Use SMI MIB library : $libsmi_message"
2166 echo " Use GNU crypto library : $gcrypt_message"
2167 echo " Use SSL crypto library : $ssl_message"
2168 echo " Use IPv6 name resolution : $enable_ipv6"
2169 echo " Use gnutls library : $tls_message"
2170 echo " Use POSIX capabilities library : $libcap_message"
2171 echo " Use GeoIP library : $geoip_message"