5 AC_INIT(wireshark, 1.5.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)
130 if test "x$CC_FOR_BUILD" = x
134 AC_SUBST(CC_FOR_BUILD)
137 AC_PATH_PROG(DOXYGEN, doxygen)
138 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
139 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
143 AC_ARG_WITH([gnutls],
144 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
145 [use gnutls library @<:@default=yes@:>@]),
146 with_gnutls="$withval", with_gnutls="yes")
147 if test "x$with_gnutls" = "xyes"; then
148 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
150 echo "gnuTLS found, enabling ssl decryption"
151 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
155 echo "gnuTLS not found, disabling ssl decryption"
163 AC_ARG_WITH([gcrypt],
164 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
165 [use gcrypt library @<:@default=yes@:>@]),
166 with_gcrypt="$withval", with_gcrypt="yes")
167 if test "x$with_gcrypt" = "xyes"; then
168 AM_PATH_LIBGCRYPT(1.1.92,
170 echo "libgcrypt found, enabling ipsec decryption"
171 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
175 if test x$libgcrypt_config_prefix != x ; then
176 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
178 echo "libgcrypt not found, disabling ipsec decryption"
186 # FIXME: currently the path argument to with-libsmi is being ignored
190 AC_PATH_PROG(XSLTPROC, xsltproc)
191 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
192 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
195 AC_PATH_PROG(XMLLINT, xmllint)
196 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
197 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
199 # Check for fop (translate .fo to e.g. pdf)
200 AC_PATH_PROG(FOP, fop)
201 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
202 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
205 # Look for something to convert HTML to text (for docbook/)
207 AC_PATH_PROG(ELINKS, elinks)
208 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
209 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
211 ## links: Fails as used in docbook/Makefile.am
212 ## (Rather than fixing things we'll just disable the use of links).
213 ##AC_PATH_PROG(LINKS, links)
214 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
215 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
217 AC_PATH_PROG(LYNX, lynx)
218 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
219 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
222 # Check for hhc (html help compiler)
223 AC_PATH_PROG(HHC, hhc.exe)
224 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
225 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
227 # Check for packaging utilities
228 # For now, we check to see if the various packaging utilites are in our
229 # path. I'm too lazy to write code to go hunt for them. - Gerald
232 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
233 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
234 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
236 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
237 -a x$HAVE_PKGTRANS = xyes ; then
238 HAVE_SVR4_PACKAGING=yes
240 HAVE_SVR4_PACKAGING=no
242 AC_SUBST(HAVE_SVR4_PACKAGING)
245 AC_WIRESHARK_RPM_CHECK
249 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
252 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
253 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
254 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
256 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
257 -a x$HAVE_BLESS = xyes ; then
258 HAVE_OSX_PACKAGING=yes
260 HAVE_OSX_PACKAGING=no
262 AC_SUBST(HAVE_OSX_PACKAGING)
265 # Try to add some additional gcc checks to CFLAGS
267 AC_ARG_ENABLE(extra-gcc-checks,
268 AC_HELP_STRING( [--enable-extra-gcc-checks],
269 [Do additional -W checks in GCC. @<:@default=no@:>@]),
271 wireshark_extra_gcc_flags=$enableval
272 if test $enableval != no
274 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
275 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
276 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
277 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
278 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
279 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
280 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
281 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
282 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
283 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
284 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
285 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
286 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
287 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
288 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
289 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
290 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
291 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
292 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
293 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
294 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
295 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
297 # epan/dissectors/packet-ncp2222.inc blocks this one
300 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
301 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
302 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
304 # epan/dissectors/packet-afs.c blocks this one for now.
306 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
308 # More cleanup needed for this on LP64.
310 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
313 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
314 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
315 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
316 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
317 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
318 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
319 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
320 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
321 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
322 # Use the faster pre gcc 4.5 floating point precision
323 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
325 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
326 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
327 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
328 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
331 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
332 # so we can use _U_ to flag unused function arguments and not get warnings
333 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
334 # function argument will compile with non-GCC compilers.
336 if test "x$GCC" = "xyes" ; then
337 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
339 CFLAGS="-D_U_=\"\" $CFLAGS"
343 # If we're running gcc, will enable a barrier "stop on warning".
344 # This barrier is set for a very large part of the code. However, it is
345 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
347 warnings_as_errors_default="yes"
348 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
349 AC_ARG_ENABLE(warnings-as-errors,
350 AC_HELP_STRING( [--enable-warnings-as-errors],
351 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
353 if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
354 with_warnings_as_errors="yes"
357 with_warnings_as_errors="no"
361 if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
362 with_warnings_as_errors="yes"
365 with_warnings_as_errors="no"
369 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
372 # Add any platform-specific compiler flags needed.
374 AC_MSG_CHECKING(for platform-specific compiler flags)
375 if test "x$GCC" = "xyes" ; then
377 # GCC - do any platform-specific tweaking necessary.
381 # the X11 headers don't automatically include prototype info
382 # and a lot don't include the return type
383 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
384 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
388 # See comments above about Apple's lovely C compiler.
390 CFLAGS="-no-cpp-precomp $CFLAGS"
391 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
394 AC_MSG_RESULT(none needed)
399 # Not GCC - assume it's the vendor's compiler.
404 # HP's ANSI C compiler; flags suggested by Jost Martin.
405 # "-Ae" for ANSI C plus extensions such as "long long".
406 # "+O2", for optimization. XXX - works with "-g"?
408 CFLAGS="-Ae +O2 $CFLAGS"
409 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
413 # It may be called "cc", but it's really a GCC derivative
414 # with a problematic special precompiler and precompiled
415 # headers; turn off the special precompiler, as some
416 # apparently-legal code won't compile with its precompiled
419 CFLAGS="-no-cpp-precomp $CFLAGS"
420 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
423 AC_MSG_RESULT(none needed)
429 # Add any platform-specific linker flags needed.
431 AC_MSG_CHECKING(for platform-specific linker flags)
435 # Add -Wl,-single_module to the LDFLAGS used with shared
436 # libraries, to fix some error that show up in some cases;
437 # some Apple documentation recommends it for most shared
440 LDFLAGS_SHAREDLIB="-Wl,-single_module"
442 # Add -Wl,-search_paths_first to make sure that if we search
443 # directories A and B, in that order, for a given library, a
444 # non-shared version in directory A, rather than a shared
445 # version in directory B, is chosen (so we can use
446 # --with-pcap=/usr/local to force all programs to be linked
447 # with a static version installed in /usr/local/lib rather than
448 # the system version in /usr/lib).
450 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
451 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
455 # Shared libraries in cygwin/Win32 must never contain
458 LDFLAGS="$LDFLAGS -no-undefined"
459 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
462 AC_MSG_RESULT(none needed)
465 AC_SUBST(LDFLAGS_SHAREDLIB)
467 # Control silent compiling
468 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
471 # On OS X, if we find the headers for Core Foundation, Launch Services,
472 # and Core Services, add -framework options to link with Application
473 # Services (of which Launch Services is a subframework), Core Foundation
474 # (required by the Launch Services APIs), and Core Services, so we can
475 # use them to launch a Web browser from the Help menu and to use
476 # Gestalt() to get the Mac OS X version number.
481 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
483 ac_coreservices_frameworks="-framework CoreServices"
484 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
485 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
488 # include <CoreFoundation/CFBase.h>
489 # include <CoreFoundation/CFString.h>
490 # include <CoreFoundation/CFURL.h>
491 # include <ApplicationServices/ApplicationServices.h>
492 # include <CoreServices/CoreServices.h>
495 CFStringRef url_CFString;
500 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
501 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
502 status = LSOpenCFURLRef(url_CFURL, NULL);
504 Gestalt(gestaltSystemVersion, &os_version);
506 ac_cv_can_use_osx_frameworks=yes,
507 ac_cv_can_use_osx_frameworks=no,
508 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
509 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
510 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
511 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
512 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
520 AC_SUBST(CORESERVICES_FRAMEWORKS)
521 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
524 # If using $prefix we add "$prefix/include" to the include search path
525 # and "$prefix/lib" to the library search path.
527 if test "x$prefix" != "x" ; then
528 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
529 if test -d $prefix/include ; then
532 # Arrange that we search for header files in "$prefix/include", as
533 # various packages we use may have been installed under "$prefix/include".
535 CFLAGS="$CFLAGS -I$prefix/include"
536 CPPFLAGS="$CPPFLAGS -I$prefix/include"
539 # Arrange that we search for libraries in "$prefix/lib".
541 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
547 dnl Look in /usr/local for header files and libraries ?
548 dnl XXX FIXME don't include /usr/local if it is already in the system
549 dnl search path as this causes gcc 3.2 on Linux to complain about a change
550 dnl of the system search order for includes
551 AC_ARG_ENABLE(usr-local,
552 AC_HELP_STRING( [--enable-usr-local],
553 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
554 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
556 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
557 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
558 if test -d "/usr/local"; then
561 # Arrange that we search for header files in the source directory
562 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
563 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
564 # may have been installed under "/usr/local/include".
566 CFLAGS="$CFLAGS -I/usr/local/include"
567 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
570 # Arrange that we search for libraries in "/usr/local/lib".
572 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
581 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
586 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
587 if test x$LD_LIBRARY_PATH != x ; then
588 LIBS="$LIBS -R$LD_LIBRARY_PATH"
589 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
591 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
597 # Check for versions of "sed" inadequate to handle, in libtool, a list
598 # of object files as large as the list in Wireshark.
600 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
601 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
602 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
603 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
604 # is the only "sed" that comes with Solaris that can handle Wireshark.
606 # Add any checks here that are necessary for other OSes.
608 AC_WIRESHARK_GNU_SED_CHECK
609 if test "$HAVE_GNU_SED" = no ; then
612 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
614 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
616 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
631 # Enable/disable tshark
633 AC_ARG_ENABLE(wireshark,
634 AC_HELP_STRING( [--enable-wireshark],
635 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
636 enable_wireshark=$enableval,enable_wireshark=yes)
638 AC_ARG_ENABLE(threads,
639 AC_HELP_STRING( [--enable-threads],
640 [use threads in wireshark. @<:@default=no@:>@]),
641 enable_threads=$enableval,enable_threads=no)
642 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
644 AC_ARG_ENABLE(profile-build,
645 AC_HELP_STRING( [--enable-profile-build],
646 [build profile-ready binaries. @<:@default=no@:>@]),
647 enable_profile_build=$enableval,enable_profile_build=no)
648 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
649 AC_MSG_CHECKING(if profile builds must be generated)
650 if test "x$enable_profile_build" = "xyes" ; then
651 if test "x$GCC" = "xyes" ; then
653 CFLAGS=" -pg $CFLAGS"
656 echo "Building profile binaries currently only supported for GCC."
662 # Create DATAFILE_DIR #define for config.h
663 datafiledir=$datadir/wireshark
665 test "x$prefix" = xNONE && prefix=$ac_default_prefix
666 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
667 # Ugly hack, but I don't see how this problem can be solved
668 # properly that DATAFILE_DIR had a value starting with
669 # "${prefix}/" instead of e.g. "/usr/local/"
670 eval eval echo "$datafiledir"
672 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
674 # Create DOC_DIR #define for config.h
676 test "x$prefix" = xNONE && prefix=$ac_default_prefix
677 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
678 # Ugly hack, but I don't see how this problem can be solved
679 # properly that DOC_DIR had a value starting with
680 # "${prefix}/" instead of e.g. "/usr/local/"
681 eval eval echo "$docdir"
683 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
685 # GTK checks; we require GTK+ 2.4 or later.
686 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
687 # programs to be built with GTK+.
689 if test "x$enable_wireshark" = "xyes"; then
690 AM_PATH_GTK_2_0(2.4.0,
692 CFLAGS="$CFLAGS $GTK_CFLAGS"
693 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
694 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
695 ], GTK_OK=no, gthread)
700 # GLib checks; we require GLib 2.4 or later, and require gmodule
701 # support, as we need that for dynamically loading plugins.
702 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
703 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
704 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
705 # GLIB_CFLAGS to CFLAGS.
706 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
707 # set when generating the Makefile, so we can make programs that require
708 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
709 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
710 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
711 # programs to be built with GLib.
713 if test "$GTK_OK" = "no" ; then
715 # We don't have GTK+.
716 # If they didn't explicitly say "--disable-wireshark", fail (so
717 # that, unless they explicitly indicated that they don't want
718 # Wireshark, we stop so they know they won't be getting
719 # Wireshark unless they fix the GTK+ problem).
721 if test "x$enable_wireshark" = "xyes"; then
722 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
727 AM_PATH_GLIB_2_0(2.4.0,
729 CFLAGS="$CFLAGS $GLIB_CFLAGS"
730 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
731 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
734 # We have GTK+, and thus will be building Wireshark unless the
735 # user explicitly disabled it.
737 wireshark_bin="wireshark\$(EXEEXT)"
738 wireshark_man="wireshark.1"
739 wireshark_SUBDIRS="codecs gtk"
740 # Don't use GLIB_CFLAGS
741 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
745 # Check whether GLib includes GRegex support.
746 # We just assume that everybody builds GLib 2.14.0 and later
747 # with GRegex support; it's possible to compile GLib without
748 # GRegex but it doesn't look as if anyone does.
750 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
751 if test x$PKG_CONFIG != xno ; then
752 ## don't try to run the test against uninstalled libtool libs
753 if $PKG_CONFIG --uninstalled $pkg_config_args; then
754 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
758 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
763 AC_MSG_RESULT($have_gregex)
767 # Check whether GLib modules are supported, to determine whether we
768 # can support plugins.
770 AC_MSG_CHECKING(whether GLib supports loadable modules)
771 ac_save_CFLAGS="$CFLAGS"
773 CFLAGS="$CFLAGS $GLIB_CFLAGS"
774 LIBS="$GLIB_LIBS $LIBS"
784 if (g_module_supported())
785 return 0; /* success */
787 return 1; /* failure */
789 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
790 [echo $ac_n "cross compiling; assumed OK... $ac_c"
791 ac_cv_glib_supports_modules=yes])
792 CFLAGS="$ac_save_CFLAGS"
794 if test "$ac_cv_glib_supports_modules" = yes ; then
803 # If we have <dlfcn.h>, check whether we can use dladdr to find a
804 # filename (hopefully, a full pathname, but no guarantees) for
807 if test "$ac_cv_header_dlfcn_h" = "yes"
809 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
810 ac_save_CFLAGS="$CFLAGS"
812 CFLAGS="$CFLAGS $GLIB_CFLAGS"
813 LIBS="$GLIB_LIBS $LIBS"
815 #define _GNU_SOURCE /* required on Linux, sigh */
823 if (!dladdr((void *)main, &info))
824 return 1; /* failure */
825 return 0; /* assume success */
827 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
828 [echo $ac_n "cross compiling; assumed OK... $ac_c"
829 ac_cv_dladdr_finds_executable_path=yes])
830 CFLAGS="$ac_save_CFLAGS"
832 if test x$ac_cv_dladdr_finds_executable_path = xyes
834 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
836 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
839 if test "x$no_gtk" != "xyes"
842 # We have GTK+; do we want the OS X integration functions and,
843 # if so, do we have them and, if so, which versions do we have,
844 # the old Carbon-based ones or the new Cocoa-based ones?
846 AC_MSG_CHECKING(whether to use OS X integration functions)
848 AC_ARG_WITH(osx-integration,
849 AC_HELP_STRING( [--with-osx-integration],
850 [use OS X integration functions (@<:@default=yes, if available@:>@]),
852 if test $withval = no
854 want_osx_integration=no
856 want_osx_integration=yes
859 want_osx_integration=yes
861 if test "x$want_osx_integration" = "xno"; then
865 AC_WIRESHARK_OSX_INTEGRATION_CHECK
869 AC_SUBST(wireshark_bin)
870 AC_SUBST(wireshark_man)
873 # Enable/disable tshark
875 AC_ARG_ENABLE(tshark,
876 AC_HELP_STRING( [--enable-tshark],
877 [build tshark. @<:@default=yes@:>@]),
878 tshark=$enableval,enable_tshark=yes)
880 if test "x$enable_tshark" = "xyes" ; then
881 tshark_bin="tshark\$(EXEEXT)"
882 tshark_man="tshark.1"
883 wiresharkfilter_man="wireshark-filter.4"
890 AC_SUBST(wiresharkfilter_man)
894 # Enable/disable editcap
896 AC_ARG_ENABLE(editcap,
897 AC_HELP_STRING( [--enable-editcap],
898 [build editcap. @<:@default=yes@:>@]),
899 enable_editcap=$enableval,enable_editcap=yes)
901 if test "x$enable_editcap" = "xyes" ; then
902 editcap_bin="editcap\$(EXEEXT)"
903 editcap_man="editcap.1"
908 AC_SUBST(editcap_bin)
909 AC_SUBST(editcap_man)
911 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
914 # Enable/disable capinfos
916 AC_ARG_ENABLE(capinfos,
917 AC_HELP_STRING( [--enable-capinfos],
918 [build capinfos. @<:@default=yes@:>@]),
919 enable_capinfos=$enableval,enable_capinfos=yes)
921 if test "x$enable_capinfos" = "xyes" ; then
922 capinfos_bin="capinfos\$(EXEEXT)"
923 capinfos_man="capinfos.1"
928 AC_SUBST(capinfos_bin)
929 AC_SUBST(capinfos_man)
932 # Enable/disable mergecap
934 AC_ARG_ENABLE(mergecap,
935 AC_HELP_STRING( [--enable-mergecap],
936 [build mergecap. @<:@default=yes@:>@]),
937 enable_mergecap=$enableval,enable_mergecap=yes)
939 if test "x$enable_mergecap" = "xyes" ; then
940 mergecap_bin="mergecap\$(EXEEXT)"
941 mergecap_man="mergecap.1"
946 AC_SUBST(mergecap_bin)
947 AC_SUBST(mergecap_man)
950 # Enable/disable text2pcap
952 AC_ARG_ENABLE(text2pcap,
953 AC_HELP_STRING( [--enable-text2pcap],
954 [build text2pcap. @<:@default=yes@:>@]),
955 text2pcap=$enableval,enable_text2pcap=yes)
957 if test "x$enable_text2pcap" = "xyes" ; then
958 text2pcap_bin="text2pcap\$(EXEEXT)"
959 text2pcap_man="text2pcap.1"
964 AC_SUBST(text2pcap_bin)
965 AC_SUBST(text2pcap_man)
967 # Enable/disable idl2wrs
969 AC_ARG_ENABLE(idl2wrs,
970 AC_HELP_STRING( [--enable-idl2wrs],
971 [build idl2wrs. @<:@default=yes@:>@]),
972 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
974 if test "x$enable_idl2wrs" = "xyes" ; then
975 idl2wrs_bin="idl2wrs"
976 idl2wrs_man="idl2wrs.1"
981 AC_SUBST(idl2wrs_bin)
982 AC_SUBST(idl2wrs_man)
985 # Enable/disable dftest
987 AC_ARG_ENABLE(dftest,
988 AC_HELP_STRING( [--enable-dftest],
989 [build dftest. @<:@default=yes@:>@]),
990 enable_dftest=$enableval,enable_dftest=yes)
992 if test "x$enable_dftest" = "xyes" ; then
993 dftest_bin="dftest\$(EXEEXT)"
994 dftest_man="dftest.1"
1000 AC_SUBST(dftest_man)
1003 # Enable/disable randpkt
1005 AC_ARG_ENABLE(randpkt,
1006 AC_HELP_STRING( [--enable-randpkt],
1007 [build randpkt. @<:@default=yes@:>@]),
1008 enable_randpkt=$enableval,enable_randpkt=yes)
1010 if test "x$enable_randpkt" = "xyes" ; then
1011 randpkt_bin="randpkt\$(EXEEXT)"
1012 randpkt_man="randpkt.1"
1017 AC_SUBST(randpkt_bin)
1018 AC_SUBST(randpkt_man)
1022 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1023 dnl "gethostbyname()".
1024 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1026 dnl Checks for "connect()", used as a proxy for "socket()" - and
1027 dnl "-lsocket", if we need it to get "connect()".
1028 AC_WIRESHARK_SOCKET_LIB_CHECK
1031 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1034 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1035 [use libpcap for packet capturing. @<:@default=yes@:>@]),
1037 if test $withval = no
1040 elif test $withval = yes
1051 if test "x$want_pcap" = "xno" ; then
1055 AC_WIRESHARK_PCAP_CHECK
1058 # Enable/disable dumpcap
1061 AC_MSG_CHECKING(whether to build dumpcap)
1063 AC_ARG_ENABLE(dumpcap,
1064 AC_HELP_STRING( [--enable-dumpcap],
1065 [build dumpcap. @<:@default=yes@:>@]),
1066 enable_dumpcap=$enableval,enable_dumpcap=yes)
1068 if test "x$enable_dumpcap" = "xyes" ; then
1069 if test "x$want_pcap" = "xno" ; then
1071 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1079 if test "x$enable_dumpcap" = "xyes" ; then
1080 dumpcap_bin="dumpcap\$(EXEEXT)"
1081 dumpcap_man="dumpcap.1"
1086 AC_SUBST(dumpcap_bin)
1087 AC_SUBST(dumpcap_man)
1089 # Enable/disable rawshark
1092 AC_MSG_CHECKING(whether to build rawshark)
1094 AC_ARG_ENABLE(rawshark,
1095 AC_HELP_STRING( [--enable-rawshark],
1096 [build rawshark. @<:@default=yes@:>@]),
1097 rawshark=$enableval,enable_rawshark=yes)
1099 if test "x$enable_rawshark" = "xyes" ; then
1100 if test "x$want_pcap" = "xno" ; then
1102 AC_MSG_RESULT(pcap not available - disabling rawshark)
1110 if test "x$enable_rawshark" = "xyes" ; then
1111 rawshark_bin="rawshark\$(EXEEXT)"
1112 rawshark_man="rawshark.1"
1117 AC_SUBST(rawshark_bin)
1118 AC_SUBST(rawshark_man)
1121 dnl pcap remote check
1122 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1124 AC_ARG_WITH(pcap-remote,
1125 AC_HELP_STRING([--with-pcap-remote],
1126 [use libpcap remote capturing (requires libpcap)]),
1128 if test $withval = no
1132 want_pcap_remote=yes
1137 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1141 AC_WIRESHARK_PCAP_REMOTE_CHECK
1145 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1148 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1149 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1151 if test $withval = no
1154 elif test $withval = yes
1163 # Use zlib if it's present, otherwise don't.
1165 want_zlib=ifavailable
1168 if test "x$want_zlib" = "xno" ; then
1172 AC_WIRESHARK_ZLIB_CHECK
1173 if test "x$want_zlib" = "xno" ; then
1174 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1178 if test "x$want_zlib" != "xno" ; then
1179 AC_CHECK_LIB(z, gzclearerr,
1181 AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
1186 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1189 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1190 [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@:>@]),
1192 if test $withval = no
1195 elif test $withval = yes
1204 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1206 if test $have_gregex = yes ; then
1209 want_pcre=ifavailable
1213 if test "x$want_pcre" = "xno" ; then
1217 AC_WIRESHARK_LIBPCRE_CHECK
1218 if test "x$want_pcre" = "xno" ; then
1219 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1225 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1228 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1229 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1231 if test $withval = no
1234 elif test $withval = yes
1243 # Use liblua by default
1245 want_lua=ifavailable
1248 if test "x$want_lua" = "xno" ; then
1252 AC_WIRESHARK_LIBLUA_CHECK
1253 if test "x$want_lua" = "xno" ; then
1254 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1257 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1261 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1263 AC_ARG_WITH(portaudio,
1264 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1265 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1267 if test $withval = no
1270 elif test $withval = yes
1275 portaudio_dir=$withval
1279 # Use libportaudio by default
1281 want_portaudio=ifavailable
1284 if test "x$want_portaudio" = "xno" ; then
1288 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1289 if test "x$want_portaudio" = "xno" ; then
1290 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1293 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1298 AC_HELP_STRING( [--enable-ipv6],
1299 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1300 enable_ipv6=$enableval,enable_ipv6=yes)
1302 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1303 if test "x$enable_ipv6" = "xno" ; then
1307 AC_WIRESHARK_IPV6_STACK
1311 dnl Check if dumpcap should be installed with filesystem capabilities
1312 AC_PATH_PROG(SETCAP, setcap)
1313 AC_ARG_ENABLE(setcap-install,
1314 AC_HELP_STRING( [--enable-setcap-install],
1315 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1316 enable_setcap_install=$enableval,enable_setcap_install=no)
1318 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1319 if test "x$enable_setcap_install" = "xno" ; then
1322 if test "x$SETCAP" = "x" ; then
1323 AC_MSG_RESULT(no. Setcap not found)
1324 elif test "x$enable_dumpcap" = "xno" ; then
1325 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1331 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1333 dnl Check if dumpcap should be installed setuid
1334 AC_ARG_ENABLE(setuid-install,
1335 AC_HELP_STRING( [--enable-setuid-install],
1336 [install dumpcap as setuid @<:@default=no@:>@]),
1337 enable_setuid_install=$enableval,enable_setuid_install=no)
1339 AC_MSG_CHECKING(whether to install dumpcap setuid)
1340 if test "x$enable_setuid_install" = "xno" ; then
1343 if test "x$enable_setcap_install" = "xyes" ; then
1344 enable_setuid_install=no
1345 AC_MSG_RESULT(no; using setcap instead)
1346 elif test "x$enable_dumpcap" = "xno" ; then
1347 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1353 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1354 AC_CHECK_FUNCS(setresuid setresgid)
1356 dnl ...but our Network Operations group is named "no"!
1358 AC_ARG_WITH(dumpcap-group,
1359 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1360 [restrict dumpcap to GROUP]),
1362 if test "x$withval" = "xyes"; then
1363 AC_MSG_ERROR([No dumpcap group specified.])
1364 elif test "x$withval" != "xno"; then
1365 AC_MSG_RESULT($withval)
1366 DUMPCAP_GROUP="$withval"
1369 AC_SUBST(DUMPCAP_GROUP)
1370 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1372 dnl libcap (not libpcap) check
1374 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1377 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1378 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1380 if test "x$withval" = "xno"; then
1382 elif test "x$withval" = "xyes"; then
1384 elif test -d "$withval"; then
1386 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1389 if test "x$with_libcap" = "xno" ; then
1393 AC_WIRESHARK_LIBCAP_CHECK
1395 AC_SUBST(LIBCAP_LIBS)
1397 dnl Checks for header files.
1398 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1399 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)
1400 AC_CHECK_HEADERS(netinet/in.h)
1401 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1405 AC_MSG_CHECKING(whether to use SSL library)
1408 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1409 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1411 if test "x$withval" = "xno"; then
1413 elif test "x$withval" = "xyes"; then
1415 elif test -d "$withval"; then
1417 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1422 if test "x$want_ssl" = "xyes"; then
1424 AC_CHECK_LIB(crypto,EVP_md5,
1429 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1437 AC_MSG_CHECKING(whether to use kerberos)
1440 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1441 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1443 if test $withval = no
1446 elif test $withval = yes
1455 # Use kerberos if specified, otherwise don't.
1457 want_krb5=ifavailable
1460 if test "x$want_krb5" = "xno" ; then
1464 AC_WIRESHARK_KRB5_CHECK
1470 AC_MSG_CHECKING(whether to use the c-ares library if available)
1473 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1474 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1476 if test "x$withval" = "xno"; then
1478 elif test "x$withval" = "xyes"; then
1480 elif test -d "$withval"; then
1482 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1485 if test "x$want_c_ares" = "xno" ; then
1489 AC_WIRESHARK_C_ARES_CHECK
1491 AC_SUBST(C_ARES_LIBS)
1495 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1498 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1499 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1501 if test "x$withval" = "xno"; then
1503 elif test "x$withval" = "xyes"; then
1505 elif test -d "$withval"; then
1507 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1510 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1514 AC_WIRESHARK_ADNS_CHECK
1520 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1523 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1524 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1526 if test "x$withval" = "xno"; then
1528 elif test "x$withval" = "xyes"; then
1530 elif test -d "$withval"; then
1532 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1535 if test "x$want_geoip" = "xno"; then
1539 AC_WIRESHARK_GEOIP_CHECK
1541 AC_SUBST(GEOIP_LIBS)
1543 dnl Python devel Check
1545 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1546 [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1548 pythondir='${libdir}/wireshark/python/${VERSION}'
1549 if test "x$withval" = "xno"; then
1551 elif test "x$withval" != "xyes"; then
1552 pythondir="$withval"
1554 AC_WIRESHARK_PYTHON_CHECK
1557 AC_WIRESHARK_PYTHON_CHECK
1560 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1564 # Define WS_VAR_IMPORT appropriately for declarations of external
1565 # variables exported from dynamically-linked libraries.
1567 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1569 AC_ARG_ENABLE(airpcap,
1570 AC_HELP_STRING( [--enable-airpcap],
1571 [use airpcap in wireshark. @<:@default=yes@:>@]),
1572 enable_airpcap=$enableval
1573 if test x$enable_airpcap != xno; then
1574 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1578 # Define HAVE_AIRPDCAP
1579 # We'll want to remove this eventually.
1581 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1583 dnl Checks for typedefs, structures, and compiler characteristics.
1586 # Check how we can get the time zone abbreviation
1587 AC_WIRESHARK_TIMEZONE_ABBREV
1589 # We need to know whether "struct sockaddr" has an "sa_len" member
1590 # for get_interface_list().
1592 AC_WIRESHARK_STRUCT_SA_LEN
1594 # We must know our byte order
1597 # Checks whether "-traditional" is needed when using "ioctl".
1598 # XXX - do we need this?
1599 AC_PROG_GCC_TRADITIONAL
1602 AC_CHECK_FUNC(getopt,
1604 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1606 GETOPT_LO="wsgetopt.lo"
1608 if test "$ac_cv_func_getopt" = no ; then
1609 GETOPT_LO="wsgetopt.lo"
1611 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1614 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1615 [STRERROR_LO="strerror.lo"
1616 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1618 if test "$ac_cv_func_strerror" = no ; then
1619 STRERROR_LO="strerror.lo"
1621 AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
1622 AC_SUBST(STRERROR_LO)
1624 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1625 STRNCASECMP_LO="strncasecmp.lo")
1626 if test "$ac_cv_func_strncasecmp" = no ; then
1627 STRNCASECMP_LO="strncasecmp.lo"
1629 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1630 AC_SUBST(STRNCASECMP_LO)
1632 AC_CHECK_FUNCS(mkstemp mkdtemp)
1634 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1636 if test "$have_inet_aton" = no; then
1637 INET_ATON_LO="inet_aton.lo"
1638 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1642 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1643 AC_SUBST(INET_ATON_LO)
1645 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1646 dnl check for pre-BIND82 inet_pton() bug.
1647 AC_MSG_CHECKING(for broken inet_pton)
1648 AC_TRY_RUN([#include <sys/types.h>
1649 #include <sys/socket.h>
1650 #include <netinet/in.h>
1651 #include <arpa/inet.h>
1656 /* this should return 0 (error) */
1657 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1661 }], [AC_MSG_RESULT(ok);
1662 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1663 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1664 have_inet_pton=no])],
1666 if test "$have_inet_pton" = no; then
1667 INET_PTON_LO="inet_pton.lo"
1671 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1672 AC_SUBST(INET_PTON_LO)
1674 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1675 AC_MSG_CHECKING([for inet_ntop prototype])
1676 AC_TRY_COMPILE([#include <stdio.h>
1677 #include <sys/types.h>
1678 #include <sys/socket.h>
1679 #include <netinet/in.h>
1680 #include <arpa/inet.h>
1682 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1684 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1685 [Define if inet_ntop() prototype exists])], [
1686 AC_TRY_COMPILE([#include <stdio.h>
1687 #include <sys/types.h>
1688 #include <sys/socket.h>
1689 #include <netinet/in.h>
1690 #include <arpa/inet.h>
1692 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1694 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1695 [Define if inet_ntop() prototype exists])], [
1696 AC_MSG_RESULT(no)])])
1698 INET_NTOP_LO="inet_ntop.lo"
1699 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1700 [Define if inet/v6defs.h needs to be included])])
1701 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1702 AC_SUBST(INET_NTOP_LO)
1704 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1705 [STRPTIME_LO="strptime.lo"
1706 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1708 if test "$ac_cv_func_strptime" = no ; then
1709 STRPTIME_LO="strptime.lo"
1711 AC_SUBST(STRPTIME_C)
1712 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1713 AC_SUBST(STRPTIME_LO)
1715 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1716 AC_CHECK_FUNCS(issetugid)
1717 AC_CHECK_FUNCS(mmap mprotect sysconf)
1718 AC_CHECK_FUNCS(strtoll)
1720 dnl blank for now, but will be used in future
1721 AC_SUBST(wireshark_SUBDIRS)
1724 dnl check whether plugins should be enabled and, if they should be,
1725 dnl check for plugins directory - stolen from Amanda's configure.in
1727 dnl we don't wish to expand ${libdir} yet
1728 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1729 AC_ARG_WITH(plugins,
1730 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1731 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1733 if test "x$withval" = "xno"; then
1735 elif test "x$have_plugins" = "xno"; then
1736 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1737 elif test "x$withval" != "xyes"; then
1738 plugindir="$withval"
1741 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1742 if test x$have_plugins = xyes
1744 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1747 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1750 # The plugin dissectors reside in ./plugins/PROTO/
1753 AC_SUBST(PLUGIN_LIBS)
1757 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1758 # (autoconf? automake? libtool?) - with the newer version(s), it's
1759 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1761 # With older version(s) of those tool(s), however, it's not just an
1762 # alias, and the configure scripts don't work without it.
1765 AC_SUBST(LIBTOOL_DEPS)
1767 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1768 if test x$enable_static = xyes -a x$have_plugins = xyes
1770 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1772 AC_SUBST(ENABLE_STATIC)
1774 AC_ARG_ENABLE(new-packet-list,
1775 AC_HELP_STRING( [--enable-new-packet-list],
1776 [use new packet list feature. @<:@default=yes@:>@]),
1777 new_packet_list=$enableval,new_packet_list=yes)
1778 AC_MSG_CHECKING(if new packet list is used);
1779 if test "x$new_packet_list" = "xyes" ; then
1781 AC_DEFINE(NEW_PACKET_LIST, 1,
1782 [Use the new packet list code])
1787 dnl Save the cacheable configure results to config.cache before recursing
1790 sinclude(plugins/Custom.m4) dnl
1791 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1793 AM_CONFIG_HEADER(config.h)
1798 asn1/acp133/Makefile
1800 asn1/ansi_map/Makefile
1801 asn1/ansi_tcap/Makefile
1804 asn1/charging_ase/Makefile
1817 asn1/gsm_map/Makefile
1826 asn1/h450-ros/Makefile
1829 asn1/HI2Operations/Makefile
1833 asn1/kerberos/Makefile
1835 asn1/logotypecertextn/Makefile
1836 asn1/lte-rrc/Makefile
1838 asn1/mpeg-audio/Makefile
1839 asn1/mpeg-pes/Makefile
1841 asn1/ns_cert_exts/Makefile
1846 asn1/pkcs12/Makefile
1847 asn1/pkinit/Makefile
1848 asn1/pkixac/Makefile
1849 asn1/pkix1explicit/Makefile
1850 asn1/pkix1implicit/Makefile
1851 asn1/pkixproxy/Makefile
1852 asn1/pkixqualified/Makefile
1853 asn1/pkixtsp/Makefile
1856 asn1/q932-ros/Makefile
1870 asn1/spnego/Makefile
1876 asn1/wlancertextn/Makefile
1880 asn1/x509af/Makefile
1881 asn1/x509ce/Makefile
1882 asn1/x509if/Makefile
1883 asn1/x509sat/Makefile
1891 epan/dfilter/Makefile
1892 epan/dissectors/Makefile
1893 epan/dissectors/dcerpc/Makefile
1894 epan/dissectors/pidl/Makefile
1895 epan/ftypes/Makefile
1897 epan/wspython/Makefile
1903 packaging/macosx/Info.plist
1904 packaging/macosx/Makefile
1905 packaging/nsis/Makefile
1906 packaging/rpm/Makefile
1907 packaging/rpm/SPECS/Makefile
1908 packaging/rpm/SPECS/wireshark.spec
1909 packaging/svr4/Makefile
1910 packaging/svr4/checkinstall
1911 packaging/svr4/pkginfo
1913 plugins/asn1/Makefile
1914 plugins/docsis/Makefile
1915 plugins/ethercat/Makefile
1916 plugins/giop/Makefile
1917 plugins/gryphon/Makefile
1918 plugins/interlink/Makefile
1919 plugins/irda/Makefile
1920 plugins/m2m/Makefile
1921 plugins/mate/Makefile
1922 plugins/opcua/Makefile
1923 plugins/profinet/Makefile
1924 plugins/sercosiii/Makefile
1925 plugins/stats_tree/Makefile
1926 plugins/unistim/Makefile
1927 plugins/wimax/Makefile
1928 plugins/wimaxasncp/Makefile
1931 tools/lemon/Makefile
1936 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1941 if test "x$enable_setcap_install" = "xyes" ; then
1942 setcap_message="yes"
1948 if test "x$enable_setuid_install" = "xyes" ; then
1949 setuid_message="yes"
1954 if test "x$DUMPCAP_GROUP" = "x" ; then
1955 dumpcap_group_message="(none)"
1957 dumpcap_group_message="$DUMPCAP_GROUP"
1960 if test "x$want_zlib" = "xno" ; then
1966 if test "x$want_pcre" = "xno" ; then
1967 if test $have_gregex = yes
1969 pcre_message="no (using GRegex instead)"
1977 if test "x$want_lua" = "xyes" ; then
1983 if test "x$want_python" = "xyes"; then
1984 python_message="yes"
1989 if test "x$want_portaudio" = "xyes" ; then
1990 portaudio_message="yes"
1992 portaudio_message="no"
1995 if test "x$want_ssl" = "xno" ; then
2001 if test "x$want_krb5" = "xno" ; then
2004 krb5_message="yes ($ac_krb5_version)"
2007 if test "x$have_good_c_ares" = "xyes" ; then
2008 c_ares_message="yes"
2013 if test "x$have_good_adns" = "xyes" ; then
2019 if test "x$have_good_libcap" = "xyes" ; then
2020 libcap_message="yes"
2025 if test "x$have_good_geoip" = "xyes" ; then
2032 echo "The Wireshark package has been configured with the following options."
2033 echo " Build wireshark : $enable_wireshark"
2034 echo " Build tshark : $enable_tshark"
2035 echo " Build capinfos : $enable_capinfos"
2036 echo " Build editcap : $enable_editcap"
2037 echo " Build dumpcap : $enable_dumpcap"
2038 echo " Build mergecap : $enable_mergecap"
2039 echo " Build text2pcap : $enable_text2pcap"
2040 echo " Build idl2wrs : $enable_idl2wrs"
2041 echo " Build randpkt : $enable_randpkt"
2042 echo " Build dftest : $enable_dftest"
2043 echo " Build rawshark : $enable_rawshark"
2045 echo " Install dumpcap with capabilities : $setcap_message"
2046 echo " Install dumpcap setuid : $setuid_message"
2047 echo " Use dumpcap group : $dumpcap_group_message"
2048 echo " Use plugins : $have_plugins"
2049 echo " Use lua library : $lua_message"
2050 echo " Use python binding : $python_message"
2051 echo " Build rtp_player : $portaudio_message"
2052 echo " Use threads : $enable_threads"
2053 echo " Build profile binaries : $enable_profile_build"
2054 echo " Use pcap library : $want_pcap"
2055 echo " Use zlib library : $zlib_message"
2056 echo " Use pcre library : $pcre_message"
2057 echo " Use kerberos library : $krb5_message"
2058 echo " Use c-ares library : $c_ares_message"
2059 echo " Use GNU ADNS library : $adns_message"
2060 echo " Use SMI MIB library : $libsmi_message"
2061 echo " Use GNU crypto library : $gcrypt_message"
2062 echo " Use SSL crypto library : $ssl_message"
2063 echo " Use IPv6 name resolution : $enable_ipv6"
2064 echo " Use gnutls library : $tls_message"
2065 echo " Use POSIX capabilities library : $libcap_message"
2066 echo " Use GeoIP library : $geoip_message"