5 AC_INIT(wireshark, 1.5.2)
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 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
370 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
371 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
372 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
373 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
374 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
375 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
378 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
379 # CFLAGS as well, so we can use _U_ to flag unused function arguments and
380 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
381 # to flag an unused function argument will compile with non-GCC, non-clang
384 # XXX - other compilers?
386 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
387 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
389 CFLAGS="-D_U_=\"\" $CFLAGS"
393 # If the compiler supports GCC-style flags, enable a barrier "stop on
395 # This barrier is set for a very large part of the code. However, it is
396 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
398 warnings_as_errors_default="yes"
399 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
400 AC_ARG_ENABLE(warnings-as-errors,
401 AC_HELP_STRING( [--enable-warnings-as-errors],
402 [Treat warnings as errors (only for GCC or clang). @<:@default=yes@:>@]),
404 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
405 with_warnings_as_errors="yes"
408 with_warnings_as_errors="no"
412 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
413 with_warnings_as_errors="yes"
416 with_warnings_as_errors="no"
420 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
423 # Add any platform-specific compiler flags needed.
425 AC_MSG_CHECKING(for platform-specific compiler flags)
426 if test "x$GCC" = "xyes" ; then
428 # GCC - do any platform-specific tweaking necessary.
432 # the X11 headers don't automatically include prototype info
433 # and a lot don't include the return type
434 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
435 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
439 # See comments above about Apple's lovely C compiler.
441 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
442 # defines __GNUC__"; clang defines __GNUC__, so that
443 # means we think clang is GCC.
445 # clang whines about -no-cpp-precomp being unused
446 # so we check whether this is really clang, and
447 # only add -no-cpp-precomp if it's not.
449 if test "x$CC" != "xclang" ; then
450 CFLAGS="-no-cpp-precomp $CFLAGS"
451 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
454 # Clang, clang, clang went the trolley....
456 AC_MSG_RESULT(none needed)
460 AC_MSG_RESULT(none needed)
465 # Not GCC - assume it's the vendor's compiler.
470 # HP's ANSI C compiler; flags suggested by Jost Martin.
471 # "-Ae" for ANSI C plus extensions such as "long long".
472 # "+O2", for optimization. XXX - works with "-g"?
474 CFLAGS="-Ae +O2 $CFLAGS"
475 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
479 # It may be called "cc", but it's really a GCC derivative
480 # with a problematic special precompiler and precompiled
481 # headers; turn off the special precompiler, as some
482 # apparently-legal code won't compile with its precompiled
485 # On the other hand, if it's called "clang", it's not a
486 # GCC derivative, and it whines if you pass it
489 # XXX - is there any version of autoconf we support
490 # where it uses another way to decide if the compiler
493 if test "x$CC" != "xclang" ; then
494 CFLAGS="-no-cpp-precomp $CFLAGS"
495 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
498 # Clang, clang, clang went the trolley....
500 AC_MSG_RESULT(none needed)
504 AC_MSG_RESULT(none needed)
510 # Add any platform-specific linker flags needed.
512 AC_MSG_CHECKING(for platform-specific linker flags)
516 # Add -Wl,-single_module to the LDFLAGS used with shared
517 # libraries, to fix some error that show up in some cases;
518 # some Apple documentation recommends it for most shared
521 LDFLAGS_SHAREDLIB="-Wl,-single_module"
523 # Add -Wl,-search_paths_first to make sure that if we search
524 # directories A and B, in that order, for a given library, a
525 # non-shared version in directory A, rather than a shared
526 # version in directory B, is chosen (so we can use
527 # --with-pcap=/usr/local to force all programs to be linked
528 # with a static version installed in /usr/local/lib rather than
529 # the system version in /usr/lib).
531 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
532 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
536 # Shared libraries in cygwin/Win32 must never contain
539 LDFLAGS="$LDFLAGS -no-undefined"
540 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
543 AC_MSG_RESULT(none needed)
546 AC_SUBST(LDFLAGS_SHAREDLIB)
548 # Control silent compiling
549 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
552 # On OS X, if we find the headers for Core Foundation, Launch Services,
553 # and Core Services, add -framework options to link with Application
554 # Services (of which Launch Services is a subframework), Core Foundation
555 # (required by the Launch Services APIs), and Core Services, so we can
556 # use them to launch a Web browser from the Help menu and to use
557 # Gestalt() to get the Mac OS X version number.
562 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
564 ac_coreservices_frameworks="-framework CoreServices"
565 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
566 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
569 # include <CoreFoundation/CFBase.h>
570 # include <CoreFoundation/CFString.h>
571 # include <CoreFoundation/CFURL.h>
572 # include <ApplicationServices/ApplicationServices.h>
573 # include <CoreServices/CoreServices.h>
576 CFStringRef url_CFString;
581 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
582 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
583 status = LSOpenCFURLRef(url_CFURL, NULL);
585 Gestalt(gestaltSystemVersion, &os_version);
587 ac_cv_can_use_osx_frameworks=yes,
588 ac_cv_can_use_osx_frameworks=no,
589 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
590 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
591 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
592 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
593 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
601 AC_SUBST(CORESERVICES_FRAMEWORKS)
602 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
605 # If using $prefix we add "$prefix/include" to the include search path
606 # and "$prefix/lib" to the library search path.
608 if test "x$prefix" != "x" ; then
609 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
610 if test -d $prefix/include ; then
613 # Arrange that we search for header files in "$prefix/include", as
614 # various packages we use may have been installed under "$prefix/include".
616 CFLAGS="$CFLAGS -I$prefix/include"
617 CPPFLAGS="$CPPFLAGS -I$prefix/include"
620 # Arrange that we search for libraries in "$prefix/lib".
622 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
628 dnl Look in /usr/local for header files and libraries ?
629 dnl XXX FIXME don't include /usr/local if it is already in the system
630 dnl search path as this causes gcc 3.2 on Linux to complain about a change
631 dnl of the system search order for includes
632 AC_ARG_ENABLE(usr-local,
633 AC_HELP_STRING( [--enable-usr-local],
634 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
635 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
637 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
638 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
639 if test -d "/usr/local"; then
642 # Arrange that we search for header files in the source directory
643 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
644 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
645 # may have been installed under "/usr/local/include".
647 CFLAGS="$CFLAGS -I/usr/local/include"
648 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
651 # Arrange that we search for libraries in "/usr/local/lib".
653 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
662 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
667 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
668 if test x$LD_LIBRARY_PATH != x ; then
669 LIBS="$LIBS -R$LD_LIBRARY_PATH"
670 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
672 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
678 # Check for versions of "sed" inadequate to handle, in libtool, a list
679 # of object files as large as the list in Wireshark.
681 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
682 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
683 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
684 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
685 # is the only "sed" that comes with Solaris that can handle Wireshark.
687 # Add any checks here that are necessary for other OSes.
689 AC_WIRESHARK_GNU_SED_CHECK
690 if test "$HAVE_GNU_SED" = no ; then
693 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
695 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
697 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
712 # Enable/disable tshark
714 AC_ARG_ENABLE(wireshark,
715 AC_HELP_STRING( [--enable-wireshark],
716 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
717 enable_wireshark=$enableval,enable_wireshark=yes)
719 AC_ARG_ENABLE(threads,
720 AC_HELP_STRING( [--enable-threads],
721 [use threads in wireshark. @<:@default=no@:>@]),
722 enable_threads=$enableval,enable_threads=no)
723 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
725 AC_ARG_ENABLE(profile-build,
726 AC_HELP_STRING( [--enable-profile-build],
727 [build profile-ready binaries. @<:@default=no@:>@]),
728 enable_profile_build=$enableval,enable_profile_build=no)
729 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
730 AC_MSG_CHECKING(if profile builds must be generated)
731 if test "x$enable_profile_build" = "xyes" ; then
732 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
734 CFLAGS=" -pg $CFLAGS"
737 echo "Building profile binaries currently only supported for GCC and clang."
743 # Create DATAFILE_DIR #define for config.h
744 datafiledir=$datadir/wireshark
746 test "x$prefix" = xNONE && prefix=$ac_default_prefix
747 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
748 # Ugly hack, but I don't see how this problem can be solved
749 # properly that DATAFILE_DIR had a value starting with
750 # "${prefix}/" instead of e.g. "/usr/local/"
751 eval eval echo "$datafiledir"
753 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
755 # Create DOC_DIR #define for config.h
757 test "x$prefix" = xNONE && prefix=$ac_default_prefix
758 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
759 # Ugly hack, but I don't see how this problem can be solved
760 # properly that DOC_DIR had a value starting with
761 # "${prefix}/" instead of e.g. "/usr/local/"
762 eval eval echo "$docdir"
764 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
766 # GTK checks; we require GTK+ 2.4 or later.
767 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
768 # programs to be built with GTK+.
770 if test "x$enable_wireshark" = "xyes"; then
771 if test "x$with_gtk3" = "xyes"; then
772 AM_PATH_GTK_3_0(3.0.0,
774 CFLAGS="$CFLAGS $GTK_CFLAGS"
775 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
776 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
777 ], GTK_OK=no, gthread)
780 AM_PATH_GTK_2_0(2.4.0,
782 CFLAGS="$CFLAGS $GTK_CFLAGS"
783 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
784 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
785 ], GTK_OK=no, gthread)
791 # GLib checks; we require GLib 2.4 or later, and require gmodule
792 # support, as we need that for dynamically loading plugins.
793 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
794 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
795 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
796 # GLIB_CFLAGS to CFLAGS.
797 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
798 # set when generating the Makefile, so we can make programs that require
799 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
800 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
801 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
802 # programs to be built with GLib.
804 if test "$GTK_OK" = "no" ; then
806 # We don't have GTK+.
807 # If they didn't explicitly say "--disable-wireshark", fail (so
808 # that, unless they explicitly indicated that they don't want
809 # Wireshark, we stop so they know they won't be getting
810 # Wireshark unless they fix the GTK+ problem).
812 if test "x$enable_wireshark" = "xyes"; then
813 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
818 AM_PATH_GLIB_2_0(2.4.0,
820 CFLAGS="$CFLAGS $GLIB_CFLAGS"
821 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
822 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
825 # We have GTK+, and thus will be building Wireshark unless the
826 # user explicitly disabled it.
828 wireshark_bin="wireshark\$(EXEEXT)"
829 wireshark_man="wireshark.1"
830 wireshark_SUBDIRS="codecs gtk"
831 # Don't use GLIB_CFLAGS
832 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
836 # Check whether GLib includes GRegex support.
837 # We just assume that everybody builds GLib 2.14.0 and later
838 # with GRegex support; it's possible to compile GLib without
839 # GRegex but it doesn't look as if anyone does.
841 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
842 if test x$PKG_CONFIG != xno ; then
843 ## don't try to run the test against uninstalled libtool libs
844 if $PKG_CONFIG --uninstalled $pkg_config_args; then
845 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
849 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
854 AC_MSG_RESULT($have_gregex)
858 # Check whether GLib modules are supported, to determine whether we
859 # can support plugins.
861 AC_MSG_CHECKING(whether GLib supports loadable modules)
862 ac_save_CFLAGS="$CFLAGS"
864 CFLAGS="$CFLAGS $GLIB_CFLAGS"
865 LIBS="$GLIB_LIBS $LIBS"
875 if (g_module_supported())
876 return 0; /* success */
878 return 1; /* failure */
880 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
881 [echo $ac_n "cross compiling; assumed OK... $ac_c"
882 ac_cv_glib_supports_modules=yes])
883 CFLAGS="$ac_save_CFLAGS"
885 if test "$ac_cv_glib_supports_modules" = yes ; then
894 # If we have <dlfcn.h>, check whether we can use dladdr to find a
895 # filename (hopefully, a full pathname, but no guarantees) for
898 if test "$ac_cv_header_dlfcn_h" = "yes"
900 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
901 ac_save_CFLAGS="$CFLAGS"
903 CFLAGS="$CFLAGS $GLIB_CFLAGS"
904 LIBS="$GLIB_LIBS $LIBS"
906 #define _GNU_SOURCE /* required on Linux, sigh */
914 if (!dladdr((void *)main, &info))
915 return 1; /* failure */
916 return 0; /* assume success */
918 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
919 [echo $ac_n "cross compiling; assumed OK... $ac_c"
920 ac_cv_dladdr_finds_executable_path=yes])
921 CFLAGS="$ac_save_CFLAGS"
923 if test x$ac_cv_dladdr_finds_executable_path = xyes
925 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
927 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
930 if test "x$no_gtk" != "xyes"
933 # We have GTK+; do we want the OS X integration functions and,
934 # if so, do we have them and, if so, which versions do we have,
935 # the old Carbon-based ones or the new Cocoa-based ones?
937 AC_MSG_CHECKING(whether to use OS X integration functions)
939 AC_ARG_WITH(osx-integration,
940 AC_HELP_STRING( [--with-osx-integration],
941 [use OS X integration functions (@<:@default=yes, if available@:>@]),
943 if test $withval = no
945 want_osx_integration=no
947 want_osx_integration=yes
950 want_osx_integration=yes
952 if test "x$want_osx_integration" = "xno"; then
956 AC_WIRESHARK_OSX_INTEGRATION_CHECK
960 AC_SUBST(wireshark_bin)
961 AC_SUBST(wireshark_man)
964 # Enable/disable tshark
966 AC_ARG_ENABLE(tshark,
967 AC_HELP_STRING( [--enable-tshark],
968 [build tshark. @<:@default=yes@:>@]),
969 tshark=$enableval,enable_tshark=yes)
971 if test "x$enable_tshark" = "xyes" ; then
972 tshark_bin="tshark\$(EXEEXT)"
973 tshark_man="tshark.1"
974 wiresharkfilter_man="wireshark-filter.4"
981 AC_SUBST(wiresharkfilter_man)
985 # Enable/disable editcap
987 AC_ARG_ENABLE(editcap,
988 AC_HELP_STRING( [--enable-editcap],
989 [build editcap. @<:@default=yes@:>@]),
990 enable_editcap=$enableval,enable_editcap=yes)
992 if test "x$enable_editcap" = "xyes" ; then
993 editcap_bin="editcap\$(EXEEXT)"
994 editcap_man="editcap.1"
999 AC_SUBST(editcap_bin)
1000 AC_SUBST(editcap_man)
1002 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1005 # Enable/disable capinfos
1007 AC_ARG_ENABLE(capinfos,
1008 AC_HELP_STRING( [--enable-capinfos],
1009 [build capinfos. @<:@default=yes@:>@]),
1010 enable_capinfos=$enableval,enable_capinfos=yes)
1012 if test "x$enable_capinfos" = "xyes" ; then
1013 capinfos_bin="capinfos\$(EXEEXT)"
1014 capinfos_man="capinfos.1"
1019 AC_SUBST(capinfos_bin)
1020 AC_SUBST(capinfos_man)
1023 # Enable/disable mergecap
1025 AC_ARG_ENABLE(mergecap,
1026 AC_HELP_STRING( [--enable-mergecap],
1027 [build mergecap. @<:@default=yes@:>@]),
1028 enable_mergecap=$enableval,enable_mergecap=yes)
1030 if test "x$enable_mergecap" = "xyes" ; then
1031 mergecap_bin="mergecap\$(EXEEXT)"
1032 mergecap_man="mergecap.1"
1037 AC_SUBST(mergecap_bin)
1038 AC_SUBST(mergecap_man)
1041 # Enable/disable text2pcap
1043 AC_ARG_ENABLE(text2pcap,
1044 AC_HELP_STRING( [--enable-text2pcap],
1045 [build text2pcap. @<:@default=yes@:>@]),
1046 text2pcap=$enableval,enable_text2pcap=yes)
1048 if test "x$enable_text2pcap" = "xyes" ; then
1049 text2pcap_bin="text2pcap\$(EXEEXT)"
1050 text2pcap_man="text2pcap.1"
1055 AC_SUBST(text2pcap_bin)
1056 AC_SUBST(text2pcap_man)
1058 # Enable/disable idl2wrs
1060 AC_ARG_ENABLE(idl2wrs,
1061 AC_HELP_STRING( [--enable-idl2wrs],
1062 [build idl2wrs. @<:@default=yes@:>@]),
1063 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
1065 if test "x$enable_idl2wrs" = "xyes" ; then
1066 idl2wrs_bin="idl2wrs"
1067 idl2wrs_man="idl2wrs.1"
1072 AC_SUBST(idl2wrs_bin)
1073 AC_SUBST(idl2wrs_man)
1076 # Enable/disable dftest
1078 AC_ARG_ENABLE(dftest,
1079 AC_HELP_STRING( [--enable-dftest],
1080 [build dftest. @<:@default=yes@:>@]),
1081 enable_dftest=$enableval,enable_dftest=yes)
1083 if test "x$enable_dftest" = "xyes" ; then
1084 dftest_bin="dftest\$(EXEEXT)"
1085 dftest_man="dftest.1"
1090 AC_SUBST(dftest_bin)
1091 AC_SUBST(dftest_man)
1094 # Enable/disable randpkt
1096 AC_ARG_ENABLE(randpkt,
1097 AC_HELP_STRING( [--enable-randpkt],
1098 [build randpkt. @<:@default=yes@:>@]),
1099 enable_randpkt=$enableval,enable_randpkt=yes)
1101 if test "x$enable_randpkt" = "xyes" ; then
1102 randpkt_bin="randpkt\$(EXEEXT)"
1103 randpkt_man="randpkt.1"
1108 AC_SUBST(randpkt_bin)
1109 AC_SUBST(randpkt_man)
1113 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1114 dnl "gethostbyname()".
1115 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1117 dnl Checks for "connect()", used as a proxy for "socket()" - and
1118 dnl "-lsocket", if we need it to get "connect()".
1119 AC_WIRESHARK_SOCKET_LIB_CHECK
1122 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1125 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1126 [use libpcap for packet capturing. @<:@default=yes@:>@]),
1128 if test $withval = no
1131 elif test $withval = yes
1142 if test "x$want_pcap" = "xno" ; then
1146 AC_WIRESHARK_PCAP_CHECK
1149 # Enable/disable dumpcap
1152 AC_MSG_CHECKING(whether to build dumpcap)
1154 AC_ARG_ENABLE(dumpcap,
1155 AC_HELP_STRING( [--enable-dumpcap],
1156 [build dumpcap. @<:@default=yes@:>@]),
1157 enable_dumpcap=$enableval,enable_dumpcap=yes)
1159 if test "x$enable_dumpcap" = "xyes" ; then
1160 if test "x$want_pcap" = "xno" ; then
1162 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1170 if test "x$enable_dumpcap" = "xyes" ; then
1171 dumpcap_bin="dumpcap\$(EXEEXT)"
1172 dumpcap_man="dumpcap.1"
1177 AC_SUBST(dumpcap_bin)
1178 AC_SUBST(dumpcap_man)
1180 # Enable/disable rawshark
1183 AC_MSG_CHECKING(whether to build rawshark)
1185 AC_ARG_ENABLE(rawshark,
1186 AC_HELP_STRING( [--enable-rawshark],
1187 [build rawshark. @<:@default=yes@:>@]),
1188 rawshark=$enableval,enable_rawshark=yes)
1190 if test "x$enable_rawshark" = "xyes" ; then
1191 if test "x$want_pcap" = "xno" ; then
1193 AC_MSG_RESULT(pcap not available - disabling rawshark)
1201 if test "x$enable_rawshark" = "xyes" ; then
1202 rawshark_bin="rawshark\$(EXEEXT)"
1203 rawshark_man="rawshark.1"
1208 AC_SUBST(rawshark_bin)
1209 AC_SUBST(rawshark_man)
1212 dnl pcap remote check
1213 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1215 AC_ARG_WITH(pcap-remote,
1216 AC_HELP_STRING([--with-pcap-remote],
1217 [use libpcap remote capturing (requires libpcap)]),
1219 if test $withval = no
1223 want_pcap_remote=yes
1228 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1232 AC_WIRESHARK_PCAP_REMOTE_CHECK
1236 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1239 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1240 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1242 if test $withval = no
1245 elif test $withval = yes
1254 # Use zlib if it's present, otherwise don't.
1256 want_zlib=ifavailable
1259 if test "x$want_zlib" = "xno" ; then
1263 AC_WIRESHARK_ZLIB_CHECK
1264 if test "x$want_zlib" = "xno" ; then
1265 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1269 if test "x$want_zlib" != "xno" ; then
1270 AC_CHECK_LIB(z, gzclearerr,
1272 AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
1277 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1280 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1281 [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@:>@]),
1283 if test $withval = no
1286 elif test $withval = yes
1295 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1297 if test $have_gregex = yes ; then
1300 want_pcre=ifavailable
1304 if test "x$want_pcre" = "xno" ; then
1308 AC_WIRESHARK_LIBPCRE_CHECK
1309 if test "x$want_pcre" = "xno" ; then
1310 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1316 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1319 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1320 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1322 if test $withval = no
1325 elif test $withval = yes
1334 # Use liblua by default
1336 want_lua=ifavailable
1339 if test "x$want_lua" = "xno" ; then
1343 AC_WIRESHARK_LIBLUA_CHECK
1344 if test "x$want_lua" = "xno" ; then
1345 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1348 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1352 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1354 AC_ARG_WITH(portaudio,
1355 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1356 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1358 if test $withval = no
1361 elif test $withval = yes
1366 portaudio_dir=$withval
1370 # Use libportaudio by default
1372 want_portaudio=ifavailable
1375 if test "x$want_portaudio" = "xno" ; then
1379 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1380 if test "x$want_portaudio" = "xno" ; then
1381 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1384 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1389 AC_HELP_STRING( [--enable-ipv6],
1390 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1391 enable_ipv6=$enableval,enable_ipv6=yes)
1393 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1394 if test "x$enable_ipv6" = "xno" ; then
1398 AC_WIRESHARK_IPV6_STACK
1402 dnl Check if dumpcap should be installed with filesystem capabilities
1403 AC_PATH_PROG(SETCAP, setcap)
1404 AC_ARG_ENABLE(setcap-install,
1405 AC_HELP_STRING( [--enable-setcap-install],
1406 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1407 enable_setcap_install=$enableval,enable_setcap_install=no)
1409 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1410 if test "x$enable_setcap_install" = "xno" ; then
1413 if test "x$SETCAP" = "x" ; then
1414 AC_MSG_RESULT(no. Setcap not found)
1415 elif test "x$enable_dumpcap" = "xno" ; then
1416 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1422 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1424 dnl Check if dumpcap should be installed setuid
1425 AC_ARG_ENABLE(setuid-install,
1426 AC_HELP_STRING( [--enable-setuid-install],
1427 [install dumpcap as setuid @<:@default=no@:>@]),
1428 enable_setuid_install=$enableval,enable_setuid_install=no)
1430 AC_MSG_CHECKING(whether to install dumpcap setuid)
1431 if test "x$enable_setuid_install" = "xno" ; then
1434 if test "x$enable_setcap_install" = "xyes" ; then
1435 enable_setuid_install=no
1436 AC_MSG_RESULT(no; using setcap instead)
1437 elif test "x$enable_dumpcap" = "xno" ; then
1438 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1444 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1445 AC_CHECK_FUNCS(setresuid setresgid)
1447 dnl ...but our Network Operations group is named "no"!
1449 AC_ARG_WITH(dumpcap-group,
1450 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1451 [restrict dumpcap to GROUP]),
1453 if test "x$withval" = "xyes"; then
1454 AC_MSG_ERROR([No dumpcap group specified.])
1455 elif test "x$withval" != "xno"; then
1456 AC_MSG_RESULT($withval)
1457 DUMPCAP_GROUP="$withval"
1460 AC_SUBST(DUMPCAP_GROUP)
1461 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1463 dnl libcap (not libpcap) check
1465 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1468 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1469 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1471 if test "x$withval" = "xno"; then
1473 elif test "x$withval" = "xyes"; then
1475 elif test -d "$withval"; then
1477 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1480 if test "x$with_libcap" = "xno" ; then
1484 AC_WIRESHARK_LIBCAP_CHECK
1486 AC_SUBST(LIBCAP_LIBS)
1488 dnl Checks for header files.
1489 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1490 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)
1491 AC_CHECK_HEADERS(netinet/in.h)
1492 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1496 AC_MSG_CHECKING(whether to use SSL library)
1499 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1500 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1502 if test "x$withval" = "xno"; then
1504 elif test "x$withval" = "xyes"; then
1506 elif test -d "$withval"; then
1508 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1513 if test "x$want_ssl" = "xyes"; then
1515 AC_CHECK_LIB(crypto,EVP_md5,
1520 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1528 AC_MSG_CHECKING(whether to use kerberos)
1531 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1532 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1534 if test $withval = no
1537 elif test $withval = yes
1546 # Use kerberos if specified, otherwise don't.
1548 want_krb5=ifavailable
1551 if test "x$want_krb5" = "xno" ; then
1555 AC_WIRESHARK_KRB5_CHECK
1561 AC_MSG_CHECKING(whether to use the c-ares library if available)
1564 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1565 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1567 if test "x$withval" = "xno"; then
1569 elif test "x$withval" = "xyes"; then
1571 elif test -d "$withval"; then
1573 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1576 if test "x$want_c_ares" = "xno" ; then
1580 AC_WIRESHARK_C_ARES_CHECK
1582 AC_SUBST(C_ARES_LIBS)
1586 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1589 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1590 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1592 if test "x$withval" = "xno"; then
1594 elif test "x$withval" = "xyes"; then
1596 elif test -d "$withval"; then
1598 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1601 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1605 AC_WIRESHARK_ADNS_CHECK
1611 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1614 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1615 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1617 if test "x$withval" = "xno"; then
1619 elif test "x$withval" = "xyes"; then
1621 elif test -d "$withval"; then
1623 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1626 if test "x$want_geoip" = "xno"; then
1630 AC_WIRESHARK_GEOIP_CHECK
1632 AC_SUBST(GEOIP_LIBS)
1634 dnl Python devel Check
1636 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1637 [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1639 pythondir='${libdir}/wireshark/python/${VERSION}'
1640 if test "x$withval" = "xno"; then
1642 elif test "x$withval" != "xyes"; then
1643 pythondir="$withval"
1645 AC_WIRESHARK_PYTHON_CHECK
1648 AC_WIRESHARK_PYTHON_CHECK
1651 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1655 # Define WS_VAR_IMPORT appropriately for declarations of external
1656 # variables exported from dynamically-linked libraries.
1658 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1661 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1662 # never return (just like Charlie on the MTA).
1664 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1665 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1666 # follow the function name, so we need two different flavors of
1669 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1671 AC_ARG_ENABLE(airpcap,
1672 AC_HELP_STRING( [--enable-airpcap],
1673 [use airpcap in wireshark. @<:@default=yes@:>@]),
1674 enable_airpcap=$enableval
1675 if test x$enable_airpcap != xno; then
1676 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1680 # Define HAVE_AIRPDCAP
1681 # We'll want to remove this eventually.
1683 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1685 dnl Checks for typedefs, structures, and compiler characteristics.
1688 # Check how we can get the time zone abbreviation
1689 AC_WIRESHARK_TIMEZONE_ABBREV
1691 # We need to know whether "struct sockaddr" has an "sa_len" member
1692 # for get_interface_list().
1694 AC_WIRESHARK_STRUCT_SA_LEN
1696 # We must know our byte order
1699 # Checks whether "-traditional" is needed when using "ioctl".
1700 # XXX - do we need this?
1701 AC_PROG_GCC_TRADITIONAL
1704 AC_CHECK_FUNC(getopt,
1706 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1708 GETOPT_LO="wsgetopt.lo"
1710 if test "$ac_cv_func_getopt" = no ; then
1711 GETOPT_LO="wsgetopt.lo"
1713 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1716 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1717 [STRERROR_LO="strerror.lo"
1718 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1720 if test "$ac_cv_func_strerror" = no ; then
1721 STRERROR_LO="strerror.lo"
1723 AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
1724 AC_SUBST(STRERROR_LO)
1726 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1727 STRNCASECMP_LO="strncasecmp.lo")
1728 if test "$ac_cv_func_strncasecmp" = no ; then
1729 STRNCASECMP_LO="strncasecmp.lo"
1731 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1732 AC_SUBST(STRNCASECMP_LO)
1734 AC_CHECK_FUNCS(mkstemp mkdtemp)
1736 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1738 if test "$have_inet_aton" = no; then
1739 INET_ATON_LO="inet_aton.lo"
1740 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1744 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1745 AC_SUBST(INET_ATON_LO)
1747 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1748 dnl check for pre-BIND82 inet_pton() bug.
1749 AC_MSG_CHECKING(for broken inet_pton)
1750 AC_TRY_RUN([#include <sys/types.h>
1751 #include <sys/socket.h>
1752 #include <netinet/in.h>
1753 #include <arpa/inet.h>
1758 /* this should return 0 (error) */
1759 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1763 }], [AC_MSG_RESULT(ok);
1764 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1765 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1766 have_inet_pton=no])],
1768 if test "$have_inet_pton" = no; then
1769 INET_PTON_LO="inet_pton.lo"
1773 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1774 AC_SUBST(INET_PTON_LO)
1776 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1777 AC_MSG_CHECKING([for inet_ntop prototype])
1778 AC_TRY_COMPILE([#include <stdio.h>
1779 #include <sys/types.h>
1780 #include <sys/socket.h>
1781 #include <netinet/in.h>
1782 #include <arpa/inet.h>
1784 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1786 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1787 [Define if inet_ntop() prototype exists])], [
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 *, socklen_t);],, [
1796 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1797 [Define if inet_ntop() prototype exists])], [
1798 AC_MSG_RESULT(no)])])
1800 INET_NTOP_LO="inet_ntop.lo"
1801 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1802 [Define if inet/v6defs.h needs to be included])])
1803 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1804 AC_SUBST(INET_NTOP_LO)
1806 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1807 [STRPTIME_LO="strptime.lo"
1808 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1810 if test "$ac_cv_func_strptime" = no ; then
1811 STRPTIME_LO="strptime.lo"
1813 AC_SUBST(STRPTIME_C)
1814 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1815 AC_SUBST(STRPTIME_LO)
1817 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1818 AC_CHECK_FUNCS(issetugid)
1819 AC_CHECK_FUNCS(mmap mprotect sysconf)
1820 AC_CHECK_FUNCS(strtoll)
1822 dnl blank for now, but will be used in future
1823 AC_SUBST(wireshark_SUBDIRS)
1826 dnl check whether plugins should be enabled and, if they should be,
1827 dnl check for plugins directory - stolen from Amanda's configure.in
1829 dnl we don't wish to expand ${libdir} yet
1830 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1831 AC_ARG_WITH(plugins,
1832 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1833 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1835 if test "x$withval" = "xno"; then
1837 elif test "x$have_plugins" = "xno"; then
1838 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1839 elif test "x$withval" != "xyes"; then
1840 plugindir="$withval"
1843 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1844 if test x$have_plugins = xyes
1846 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1849 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1852 # The plugin dissectors reside in ./plugins/PROTO/
1855 AC_SUBST(PLUGIN_LIBS)
1859 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1860 # (autoconf? automake? libtool?) - with the newer version(s), it's
1861 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1863 # With older version(s) of those tool(s), however, it's not just an
1864 # alias, and the configure scripts don't work without it.
1867 AC_SUBST(LIBTOOL_DEPS)
1869 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1870 if test x$enable_static = xyes -a x$have_plugins = xyes
1872 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1874 AC_SUBST(ENABLE_STATIC)
1876 dnl Save the cacheable configure results to config.cache before recursing
1879 sinclude(plugins/Custom.m4) dnl
1880 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1882 AM_CONFIG_HEADER(config.h)
1887 asn1/acp133/Makefile
1889 asn1/ansi_map/Makefile
1890 asn1/ansi_tcap/Makefile
1893 asn1/charging_ase/Makefile
1906 asn1/gprscdr/Makefile
1907 asn1/gsm_map/Makefile
1916 asn1/h450-ros/Makefile
1919 asn1/HI2Operations/Makefile
1923 asn1/kerberos/Makefile
1925 asn1/logotypecertextn/Makefile
1926 asn1/lte-rrc/Makefile
1928 asn1/mpeg-audio/Makefile
1929 asn1/mpeg-pes/Makefile
1931 asn1/ns_cert_exts/Makefile
1939 asn1/pkcs12/Makefile
1940 asn1/pkinit/Makefile
1941 asn1/pkixac/Makefile
1942 asn1/pkix1explicit/Makefile
1943 asn1/pkix1implicit/Makefile
1944 asn1/pkixproxy/Makefile
1945 asn1/pkixqualified/Makefile
1946 asn1/pkixtsp/Makefile
1949 asn1/q932-ros/Makefile
1962 asn1/spnego/Makefile
1969 asn1/wlancertextn/Makefile
1971 asn1/x509af/Makefile
1972 asn1/x509ce/Makefile
1973 asn1/x509if/Makefile
1974 asn1/x509sat/Makefile
1982 epan/dfilter/Makefile
1983 epan/dissectors/Makefile
1984 epan/dissectors/dcerpc/Makefile
1985 epan/dissectors/pidl/Makefile
1986 epan/ftypes/Makefile
1988 epan/wspython/Makefile
1994 packaging/macosx/Info.plist
1995 packaging/macosx/Makefile
1996 packaging/nsis/Makefile
1997 packaging/rpm/Makefile
1998 packaging/rpm/SPECS/Makefile
1999 packaging/rpm/SPECS/wireshark.spec
2000 packaging/svr4/Makefile
2001 packaging/svr4/checkinstall
2002 packaging/svr4/pkginfo
2004 plugins/asn1/Makefile
2005 plugins/docsis/Makefile
2006 plugins/ethercat/Makefile
2007 plugins/giop/Makefile
2008 plugins/gryphon/Makefile
2009 plugins/interlink/Makefile
2010 plugins/irda/Makefile
2011 plugins/m2m/Makefile
2012 plugins/mate/Makefile
2013 plugins/opcua/Makefile
2014 plugins/profinet/Makefile
2015 plugins/sercosiii/Makefile
2016 plugins/stats_tree/Makefile
2017 plugins/unistim/Makefile
2018 plugins/wimax/Makefile
2019 plugins/wimaxasncp/Makefile
2022 tools/lemon/Makefile
2027 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2032 if test "x$enable_setcap_install" = "xyes" ; then
2033 setcap_message="yes"
2039 if test "x$enable_setuid_install" = "xyes" ; then
2040 setuid_message="yes"
2045 if test "x$DUMPCAP_GROUP" = "x" ; then
2046 dumpcap_group_message="(none)"
2048 dumpcap_group_message="$DUMPCAP_GROUP"
2051 if test "x$want_zlib" = "xno" ; then
2057 if test "x$want_pcre" = "xno" ; then
2058 if test $have_gregex = yes
2060 pcre_message="no (using GRegex instead)"
2068 if test "x$want_lua" = "xyes" ; then
2074 if test "x$want_python" = "xyes"; then
2075 python_message="yes"
2080 if test "x$want_portaudio" = "xyes" ; then
2081 portaudio_message="yes"
2083 portaudio_message="no"
2086 if test "x$want_ssl" = "xno" ; then
2092 if test "x$want_krb5" = "xno" ; then
2095 krb5_message="yes ($ac_krb5_version)"
2098 if test "x$have_good_c_ares" = "xyes" ; then
2099 c_ares_message="yes"
2104 if test "x$have_good_adns" = "xyes" ; then
2107 if test "x$have_good_c_ares" = "xyes" ; then
2108 adns_message="no (using c-ares instead)"
2114 if test "x$have_good_libcap" = "xyes" ; then
2115 libcap_message="yes"
2120 if test "x$have_good_geoip" = "xyes" ; then
2127 echo "The Wireshark package has been configured with the following options."
2128 echo " Build wireshark : $enable_wireshark"
2129 echo " Build tshark : $enable_tshark"
2130 echo " Build capinfos : $enable_capinfos"
2131 echo " Build editcap : $enable_editcap"
2132 echo " Build dumpcap : $enable_dumpcap"
2133 echo " Build mergecap : $enable_mergecap"
2134 echo " Build text2pcap : $enable_text2pcap"
2135 echo " Build idl2wrs : $enable_idl2wrs"
2136 echo " Build randpkt : $enable_randpkt"
2137 echo " Build dftest : $enable_dftest"
2138 echo " Build rawshark : $enable_rawshark"
2140 echo " Install dumpcap with capabilities : $setcap_message"
2141 echo " Install dumpcap setuid : $setuid_message"
2142 echo " Use dumpcap group : $dumpcap_group_message"
2143 echo " Use plugins : $have_plugins"
2144 echo " Use lua library : $lua_message"
2145 echo " Use python binding : $python_message"
2146 echo " Build rtp_player : $portaudio_message"
2147 echo " Use threads : $enable_threads"
2148 echo " Build profile binaries : $enable_profile_build"
2149 echo " Use pcap library : $want_pcap"
2150 echo " Use zlib library : $zlib_message"
2151 echo " Use pcre library : $pcre_message"
2152 echo " Use kerberos library : $krb5_message"
2153 echo " Use c-ares library : $c_ares_message"
2154 echo " Use GNU ADNS library : $adns_message"
2155 echo " Use SMI MIB library : $libsmi_message"
2156 echo " Use GNU crypto library : $gcrypt_message"
2157 echo " Use SSL crypto library : $ssl_message"
2158 echo " Use IPv6 name resolution : $enable_ipv6"
2159 echo " Use gnutls library : $tls_message"
2160 echo " Use POSIX capabilities library : $libcap_message"
2161 echo " Use GeoIP library : $geoip_message"