5 AC_INIT(wireshark, 1.3.4)
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.
35 dnl Work around libtool bug (fixed in the version 1.5a?)
36 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
39 AC_PATH_PROG(PERL, perl)
41 AC_PATH_PROG(YACCDUMMY, $YACC)
42 if test "x$YACCDUMMY" = x
44 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
47 AC_PATH_PROG(LEX, flex)
50 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
52 AC_PATH_PROG(POD2MAN, pod2man)
53 if test "x$POD2MAN" = x
56 # The alternative is not to build the man pages....
58 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
60 AC_PATH_PROG(POD2HTML, pod2html)
61 if test "x$POD2HTML" = x
64 # The alternative is not to build the HTML man pages....
66 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
70 # XXX - this looks for various HTML viewers on the host, not the target;
71 # we really want to know what's available on the target, for cross-builds.
72 # That would probably require us to, at run time, look for xdg-open and,
73 # if we don't find it, look for mozilla, htmlview, etc.
75 AC_PATH_PROG(HTML_VIEWER, xdg-open)
76 if test "x$HTML_VIEWER" != x
79 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
80 # Define some variable to be that, so we just run that?
82 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
85 # XXX - we have to define HTML_VIEWER for the prefs.c code that
86 # sets the default value of the Web browser preference, even
87 # though that preference won't be offered.
89 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
91 AC_PATH_PROG(HTML_VIEWER, htmlview)
92 if test "x$HTML_VIEWER" = x
94 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
96 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
100 AC_PATH_PROG(LEX, flex)
101 AC_PATH_PROG(PYTHON, python)
112 if test "x$CC_FOR_BUILD" = x
116 AC_SUBST(CC_FOR_BUILD)
119 AC_PATH_PROG(DOXYGEN, doxygen)
120 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
121 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
125 AC_ARG_WITH([gnutls],
126 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
127 [use gnutls library @<:@default=yes@:>@]),
128 with_gnutls="$withval", with_gnutls="yes")
129 if test "x$with_gnutls" = "xyes"; then
130 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
132 echo "gnuTLS found, enabling ssl decryption"
133 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
137 echo echo "gnuTLS not found, disabling ssl decryption"
145 AC_ARG_WITH([gcrypt],
146 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
147 [use gcrypt library @<:@default=yes@:>@]),
148 with_gcrypt="$withval", with_gcrypt="yes")
149 if test "x$with_gcrypt" = "xyes"; then
150 AM_PATH_LIBGCRYPT(1.1.92,
152 echo "libgcrypt found, enabling ipsec decryption"
153 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
157 if test x$libgcrypt_config_prefix != x ; then
158 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
160 echo "libgcrypt not found, disabling ipsec decryption"
168 # FIXME: currently the path argument to with-libsmi is being ignored
172 AC_PATH_PROG(XSLTPROC, xsltproc)
173 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
174 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
177 AC_PATH_PROG(XMLLINT, xmllint)
178 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
179 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
181 # Check for fop (translate .fo to e.g. pdf)
182 AC_PATH_PROG(FOP, fop)
183 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
184 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
187 # Look for something to convert HTML to text (for docbook/)
189 AC_PATH_PROG(ELINKS, elinks)
190 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
191 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
193 AC_PATH_PROG(LINKS, links)
194 AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
195 AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
197 AC_PATH_PROG(LYNX, lynx)
198 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
199 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
202 # Check for hhc (html help compiler)
203 AC_PATH_PROG(HHC, hhc.exe)
204 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
205 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
207 # Check for packaging utilities
208 # For now, we check to see if the various packaging utilites are in our
209 # path. I'm too lazy to write code to go hunt for them. - Gerald
212 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
213 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
214 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
216 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
217 -a x$HAVE_PKGTRANS = xyes ; then
218 HAVE_SVR4_PACKAGING=yes
220 HAVE_SVR4_PACKAGING=no
222 AC_SUBST(HAVE_SVR4_PACKAGING)
225 AC_WIRESHARK_RPM_CHECK
229 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
232 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
233 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
234 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
236 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
237 -a x$HAVE_BLESS = xyes ; then
238 HAVE_OSX_PACKAGING=yes
240 HAVE_OSX_PACKAGING=no
242 AC_SUBST(HAVE_OSX_PACKAGING)
245 # Try to add some additional gcc checks to CFLAGS
247 AC_ARG_ENABLE(extra-gcc-checks,
248 AC_HELP_STRING( [--enable-extra-gcc-checks],
249 [Do additional -W checks in GCC. @<:@default=no@:>@]),
251 wireshark_extra_gcc_flags=$enableval
252 if test $enableval != no
254 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
255 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
256 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
257 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
258 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
259 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
260 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
261 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
262 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
263 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
264 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
265 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
266 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
267 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
268 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
269 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
270 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
271 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
272 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
273 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
274 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
275 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
277 # epan/dissectors/packet-ncp2222.inc blocks this one
280 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
281 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
282 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
284 # epan/dissectors/packet-afs.c blocks this one for now.
286 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
288 # More cleanup needed for this on LP64.
290 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
293 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
294 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
295 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
296 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
297 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
298 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
299 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
300 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
301 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
303 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
304 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
305 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
306 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
309 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
310 # so we can use _U_ to flag unused function arguments and not get warnings
311 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
312 # function argument will compile with non-GCC compilers.
314 if test "x$GCC" = "xyes" ; then
315 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
317 CFLAGS="-D_U_=\"\" $CFLAGS"
321 # If we're running gcc, will enable a barrier "stop on warning".
322 # This barrier is set for a very large part of the code. However, it is
323 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
325 warnings_as_errors_default="yes"
326 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
327 AC_ARG_ENABLE(warnings-as-errors,
328 AC_HELP_STRING( [--enable-warnings-as-errors],
329 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
331 if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
332 with_warnings_as_errors="yes"
335 with_warnings_as_errors="no"
339 if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
340 with_warnings_as_errors="yes"
343 with_warnings_as_errors="no"
347 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
350 # Add any platform-specific compiler flags needed.
352 AC_MSG_CHECKING(for platform-specific compiler flags)
353 if test "x$GCC" = "xyes" ; then
355 # GCC - do any platform-specific tweaking necessary.
359 # the X11 headers don't automatically include prototype info
360 # and a lot don't include the return type
361 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
362 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
366 # See comments above about Apple's lovely C compiler.
368 CFLAGS="-no-cpp-precomp $CFLAGS"
369 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
372 AC_MSG_RESULT(none needed)
377 # Not GCC - assume it's the vendor's compiler.
382 # HP's ANSI C compiler; flags suggested by Jost Martin.
383 # "-Ae" for ANSI C plus extensions such as "long long".
384 # "+O2", for optimization. XXX - works with "-g"?
386 CFLAGS="-Ae +O2 $CFLAGS"
387 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
391 # It may be called "cc", but it's really a GCC derivative
392 # with a problematic special precompiler and precompiled
393 # headers; turn off the special precompiler, as some
394 # apparently-legal code won't compile with its precompiled
397 CFLAGS="-no-cpp-precomp $CFLAGS"
398 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
401 AC_MSG_RESULT(none needed)
407 # Add any platform-specific linker flags needed.
409 AC_MSG_CHECKING(for platform-specific linker flags)
413 # Add -Wl,-single_module to the LDFLAGS used with shared
414 # libraries, to fix some error that show up in some cases;
415 # some Apple documentation recommends it for most shared
418 LDFLAGS_SHAREDLIB="-Wl,-single_module"
420 # Add -Wl,-search_paths_first to make sure that if we search
421 # directories A and B, in that order, for a given library, a
422 # non-shared version in directory A, rather than a shared
423 # version in directory B, is chosen (so we can use
424 # --with-pcap=/usr/local to force all programs to be linked
425 # with a static version installed in /usr/local/lib rather than
426 # the system version in /usr/lib).
428 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
429 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
433 # Shared libraries in cygwin/Win32 must never contain
436 LDFLAGS="$LDFLAGS -no-undefined"
437 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
440 AC_MSG_RESULT(none needed)
443 AC_SUBST(LDFLAGS_SHAREDLIB)
445 # Control silent compiling
446 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
449 # On OS X, if we find the headers for Core Foundation, Launch Services,
450 # and Core Services, add -framework options to link with Application
451 # Services (of which Launch Services is a subframework), Core Foundation
452 # (required by the Launch Services APIs), and Core Services, so we can
453 # use them to launch a Web browser from the Help menu and to use
454 # Gestalt() to get the Mac OS X version number.
459 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
461 ac_frameworks="-framework ApplicationServices -framework CoreFoundation -framework CoreServices"
462 LIBS="$LIBS $ac_frameworks"
465 # include <CoreFoundation/CFBase.h>
466 # include <CoreFoundation/CFString.h>
467 # include <CoreFoundation/CFURL.h>
468 # include <ApplicationServices/ApplicationServices.h>
469 # include <CoreServices/CoreServices.h>
472 CFStringRef url_CFString;
477 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
478 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
479 status = LSOpenCFURLRef(url_CFURL, NULL);
481 Gestalt(gestaltSystemVersion, &os_version);
483 ac_cv_can_use_osx_frameworks=yes,
484 ac_cv_can_use_osx_frameworks=no,
485 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
486 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
487 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
488 FRAMEWORKS="$ac_frameworks"
499 # If using $prefix we add "$prefix/include" to the include search path
500 # and "$prefix/lib" to the library search path.
502 if test "x$prefix" != "x" ; then
503 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
504 if test -d $prefix/include ; then
507 # Arrange that we search for header files in "$prefix/include", as
508 # various packages we use may have been installed under "$prefix/include".
510 CFLAGS="$CFLAGS -I$prefix/include"
511 CPPFLAGS="$CPPFLAGS -I$prefix/include"
514 # Arrange that we search for libraries in "$prefix/lib".
516 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
522 dnl Look in /usr/local for header files and libraries ?
523 dnl XXX FIXME don't include /usr/local if it is already in the system
524 dnl search path as this causes gcc 3.2 on Linux to complain about a change
525 dnl of the system search order for includes
526 AC_ARG_ENABLE(usr-local,
527 AC_HELP_STRING( [--enable-usr-local],
528 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
529 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
531 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
532 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
535 # Arrange that we search for header files in the source directory
536 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
537 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
538 # may have been installed under "/usr/local/include".
540 CFLAGS="$CFLAGS -I/usr/local/include"
541 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
544 # Arrange that we search for libraries in "/usr/local/lib".
546 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
552 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
557 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
558 if test x$LD_LIBRARY_PATH != x ; then
559 LIBS="$LIBS -R$LD_LIBRARY_PATH"
560 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
562 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
568 # Check for versions of "sed" inadequate to handle, in libtool, a list
569 # of object files as large as the list in Wireshark.
571 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
572 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
573 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
574 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
575 # is the only "sed" that comes with Solaris that can handle Wireshark.
577 # Add any checks here that are necessary for other OSes.
579 AC_WIRESHARK_GNU_SED_CHECK
580 if test "$HAVE_GNU_SED" = no ; then
583 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
585 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
587 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
602 # Enable/disable tshark
604 AC_ARG_ENABLE(wireshark,
605 AC_HELP_STRING( [--enable-wireshark],
606 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
607 enable_wireshark=$enableval,enable_wireshark=yes)
609 AC_ARG_ENABLE(threads,
610 AC_HELP_STRING( [--enable-threads],
611 [use threads in wireshark. @<:@default=no@:>@]),
612 enable_threads=$enableval,enable_threads=no)
613 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
615 AC_ARG_ENABLE(profile-build,
616 AC_HELP_STRING( [--enable-profile-build],
617 [build profile-ready binaries. @<:@default=no@:>@]),
618 enable_profile_build=$enableval,enable_profile_build=no)
619 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
620 AC_MSG_CHECKING(if profile builds must be generated)
621 if test "x$enable_profile_build" = "xyes" ; then
622 if test "x$GCC" = "xyes" ; then
624 CFLAGS=" -pg $CFLAGS"
627 echo "Building profile binaries currently only supported for GCC."
633 # Create DATAFILE_DIR #define for config.h
634 datafiledir=$datadir/wireshark
636 test "x$prefix" = xNONE && prefix=$ac_default_prefix
637 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
638 # Ugly hack, but I don't see how this problem can be solved
639 # properly that DATAFILE_DIR had a value starting with
640 # "${prefix}/" instead of e.g. "/usr/local/"
641 eval eval echo "$datafiledir"
643 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
645 # GTK checks; we require GTK+ 2.4 or later.
646 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
647 # programs to be built with GTK+.
649 if test "x$enable_wireshark" = "xyes"; then
650 AM_PATH_GTK_2_0(2.4.0, CFLAGS="$CFLAGS $GTK_CFLAGS", GTK_OK=no, gthread)
655 # GLib checks; we require GLib 2.4 or later, and require gmodule
656 # support, as we need that for dynamically loading plugins.
657 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
658 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
659 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
660 # GLIB_CFLAGS to CFLAGS.
661 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
662 # set when generating the Makefile, so we can make programs that require
663 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
664 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
665 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
666 # programs to be built with GLib.
668 if test "$GTK_OK" = "no" ; then
670 # We don't have GTK+.
671 # If they didn't explicitly say "--disable-wireshark", fail (so
672 # that, unless they explicitly indicated that they don't want
673 # Wireshark, we stop so they know they won't be getting
674 # Wireshark unless they fix the GTK+ problem).
676 if test "x$enable_wireshark" = "xyes"; then
677 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
682 AM_PATH_GLIB_2_0(2.4.0, CFLAGS="$CFLAGS $GLIB_CFLAGS", AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
684 # Check for GLib 2.14.0; if we have it, assume it comes with
685 # GRegex, otherwise assume we don't have GRegex.
686 # It's possible to compile GLib without GRegex but it doesn't look
689 # If we *don't* have GLib 2.14.0, this will clear GLIB_LIBS,
690 # and if we do, it shouldn't change it; save the version we
691 # have before running this, and restore it afterwards.
693 save_GLIB_LIBS="$GLIB_LIBS"
694 AM_PATH_GLIB_2_0(2.14.0, have_gregex=yes, have_gregex=no, gmodule)
695 GLIB_LIBS="$save_GLIB_LIBS"
698 # We have GTK+, and thus will be building Wireshark unless the
699 # user explicitly disabled it.
701 wireshark_bin="wireshark\$(EXEEXT)"
702 wireshark_man="wireshark.1"
703 wireshark_SUBDIRS="codecs gtk"
704 # Don't use GLIB_CFLAGS
705 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
707 # Check for GLib 2.14.0; if we have it, assume it comes with
708 # GRegex, otherwise assume we don't have GRegex.
709 # It's possible to compile GLib without GRegex but it doesn't look
712 # If we *don't* have GLib 2.14.0, this will clear GLIB_LIBS,
713 # and if we do, it shouldn't change it; save the version we
714 # have before running this, and restore it afterwards.
716 save_GLIB_LIBS="$GLIB_LIBS"
717 AM_PATH_GLIB_2_0(2.14.0, have_gregex=yes, have_gregex=no, gmodule)
718 GLIB_LIBS="$save_GLIB_LIBS"
722 # Check whether GLib modules are supported, to determine whether we
723 # can support plugins.
725 AC_MSG_CHECKING(whether GLib supports loadable modules)
726 ac_save_CFLAGS="$CFLAGS"
728 CFLAGS="$CFLAGS $GLIB_CFLAGS"
729 LIBS="$GLIB_LIBS $LIBS"
739 if (g_module_supported())
740 return 0; /* success */
742 return 1; /* failure */
744 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
745 [echo $ac_n "cross compiling; assumed OK... $ac_c"
746 ac_cv_glib_supports_modules=yes])
747 CFLAGS="$ac_save_CFLAGS"
749 if test "$ac_cv_glib_supports_modules" = yes ; then
758 # If we have <dlfcn.h>, check whether we can use dladdr to find a
759 # filename (hopefully, a full pathname, but no guarantees) for
762 if test "$ac_cv_header_dlfcn_h" = "yes"
764 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
765 ac_save_CFLAGS="$CFLAGS"
767 CFLAGS="$CFLAGS $GLIB_CFLAGS"
768 LIBS="$GLIB_LIBS $LIBS"
770 #define _GNU_SOURCE /* required on Linux, sigh */
778 if (!dladdr((void *)main, &info))
779 return 1; /* failure */
780 return 0; /* assume success */
782 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
783 [echo $ac_n "cross compiling; assumed OK... $ac_c"
784 ac_cv_dladdr_finds_executable_path=yes])
785 CFLAGS="$ac_save_CFLAGS"
787 if test x$ac_cv_dladdr_finds_executable_path = xyes
789 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
791 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
794 dnl IGE Mac integration check
795 AC_MSG_CHECKING(whether to use IGE Mac integration functions)
797 AC_ARG_WITH(ige-mac-integration,
798 AC_HELP_STRING( [--with-ige-mac-integration],
799 [use IGE Mac integration. (@<:@default=yes, if available@:>@]),
801 if test $withval = no
803 want_ige_mac_integration=no
805 want_ige_mac_integration=yes
808 want_ige_mac_integration=yes
810 if test "x$want_ige_mac_integration" = "xno" -o "x$no_gtk" = "xyes" ; then
814 AC_WIRESHARK_IGE_MAC_INTEGRATION_CHECK
818 AC_SUBST(wireshark_bin)
819 AC_SUBST(wireshark_man)
822 # Enable/disable tshark
824 AC_ARG_ENABLE(tshark,
825 AC_HELP_STRING( [--enable-tshark],
826 [build tshark. @<:@default=yes@:>@]),
827 tshark=$enableval,enable_tshark=yes)
829 if test "x$enable_tshark" = "xyes" ; then
830 tshark_bin="tshark\$(EXEEXT)"
831 tshark_man="tshark.1"
832 wiresharkfilter_man="wireshark-filter.4"
839 AC_SUBST(wiresharkfilter_man)
843 # Enable/disable editcap
845 AC_ARG_ENABLE(editcap,
846 AC_HELP_STRING( [--enable-editcap],
847 [build editcap. @<:@default=yes@:>@]),
848 enable_editcap=$enableval,enable_editcap=yes)
850 if test "x$enable_editcap" = "xyes" ; then
851 editcap_bin="editcap\$(EXEEXT)"
852 editcap_man="editcap.1"
857 AC_SUBST(editcap_bin)
858 AC_SUBST(editcap_man)
860 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
863 # Enable/disable capinfos
865 AC_ARG_ENABLE(capinfos,
866 AC_HELP_STRING( [--enable-capinfos],
867 [build capinfos. @<:@default=yes@:>@]),
868 enable_capinfos=$enableval,enable_capinfos=yes)
870 if test "x$enable_capinfos" = "xyes" ; then
871 capinfos_bin="capinfos\$(EXEEXT)"
872 capinfos_man="capinfos.1"
877 AC_SUBST(capinfos_bin)
878 AC_SUBST(capinfos_man)
881 # Enable/disable mergecap
883 AC_ARG_ENABLE(mergecap,
884 AC_HELP_STRING( [--enable-mergecap],
885 [build mergecap. @<:@default=yes@:>@]),
886 enable_mergecap=$enableval,enable_mergecap=yes)
888 if test "x$enable_mergecap" = "xyes" ; then
889 mergecap_bin="mergecap\$(EXEEXT)"
890 mergecap_man="mergecap.1"
895 AC_SUBST(mergecap_bin)
896 AC_SUBST(mergecap_man)
899 # Enable/disable text2pcap
901 AC_ARG_ENABLE(text2pcap,
902 AC_HELP_STRING( [--enable-text2pcap],
903 [build text2pcap. @<:@default=yes@:>@]),
904 text2pcap=$enableval,enable_text2pcap=yes)
906 if test "x$enable_text2pcap" = "xyes" ; then
907 text2pcap_bin="text2pcap\$(EXEEXT)"
908 text2pcap_man="text2pcap.1"
913 AC_SUBST(text2pcap_bin)
914 AC_SUBST(text2pcap_man)
916 # Enable/disable idl2wrs
918 AC_ARG_ENABLE(idl2wrs,
919 AC_HELP_STRING( [--enable-idl2wrs],
920 [build idl2wrs. @<:@default=yes@:>@]),
921 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
923 if test "x$enable_idl2wrs" = "xyes" ; then
924 idl2wrs_bin="idl2wrs"
925 idl2wrs_man="idl2wrs.1"
930 AC_SUBST(idl2wrs_bin)
931 AC_SUBST(idl2wrs_man)
934 # Enable/disable dftest
936 AC_ARG_ENABLE(dftest,
937 AC_HELP_STRING( [--enable-dftest],
938 [build dftest. @<:@default=yes@:>@]),
939 enable_dftest=$enableval,enable_dftest=yes)
941 if test "x$enable_dftest" = "xyes" ; then
942 dftest_bin="dftest\$(EXEEXT)"
949 # Enable/disable randpkt
951 AC_ARG_ENABLE(randpkt,
952 AC_HELP_STRING( [--enable-randpkt],
953 [build randpkt. @<:@default=yes@:>@]),
954 enable_randpkt=$enableval,enable_randpkt=yes)
956 if test "x$enable_randpkt" = "xyes" ; then
957 randpkt_bin="randpkt\$(EXEEXT)"
961 AC_SUBST(randpkt_bin)
965 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
966 dnl "gethostbyname()".
967 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
969 dnl Checks for "connect()", used as a proxy for "socket()" - and
970 dnl "-lsocket", if we need it to get "connect()".
971 AC_WIRESHARK_SOCKET_LIB_CHECK
974 AC_MSG_CHECKING(whether to use libpcap for packet capture)
977 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
978 [use libpcap for packet capturing. @<:@default=yes@:>@]),
980 if test $withval = no
983 elif test $withval = yes
994 if test "x$want_pcap" = "xno" ; then
998 AC_WIRESHARK_PCAP_CHECK
1001 # Enable/disable dumpcap
1004 AC_MSG_CHECKING(whether to build dumpcap)
1006 AC_ARG_ENABLE(dumpcap,
1007 AC_HELP_STRING( [--enable-dumpcap],
1008 [build dumpcap. @<:@default=yes@:>@]),
1009 enable_dumpcap=$enableval,enable_dumpcap=yes)
1011 if test "x$enable_dumpcap" = "xyes" ; then
1012 if test "x$want_pcap" = "xno" ; then
1014 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1022 if test "x$enable_dumpcap" = "xyes" ; then
1023 dumpcap_bin="dumpcap\$(EXEEXT)"
1024 dumpcap_man="dumpcap.1"
1029 AC_SUBST(dumpcap_bin)
1030 AC_SUBST(dumpcap_man)
1032 # Enable/disable rawshark
1035 AC_MSG_CHECKING(whether to build rawshark)
1037 AC_ARG_ENABLE(rawshark,
1038 AC_HELP_STRING( [--enable-rawshark],
1039 [build rawshark. @<:@default=yes@:>@]),
1040 rawshark=$enableval,enable_rawshark=yes)
1042 if test "x$enable_rawshark" = "xyes" ; then
1043 if test "x$want_pcap" = "xno" ; then
1045 AC_MSG_RESULT(pcap not available - disabling rawshark)
1053 if test "x$enable_rawshark" = "xyes" ; then
1054 rawshark_bin="rawshark\$(EXEEXT)"
1055 rawshark_man="rawshark.1"
1060 AC_SUBST(rawshark_bin)
1061 AC_SUBST(rawshark_man)
1064 dnl pcap remote check
1065 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1067 AC_ARG_WITH(pcap-remote,
1068 [ --with-pcap-remote use libpcap remote capturing (requires libpcap)],
1070 if test $withval = no
1074 want_pcap_remote=yes
1079 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1083 AC_WIRESHARK_PCAP_REMOTE_CHECK
1087 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1090 AC_HELP_STRING( [--with-zlib@<:@=DIR@:>@],
1091 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1093 if test $withval = no
1096 elif test $withval = yes
1105 # Use zlib if it's present, otherwise don't.
1107 want_zlib=ifavailable
1110 if test "x$want_zlib" = "xno" ; then
1114 AC_WIRESHARK_ZLIB_CHECK
1115 if test "x$want_zlib" = "xno" ; then
1116 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1122 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1125 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1126 [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@:>@]),
1128 if test $withval = no
1131 elif test $withval = yes
1140 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1142 if test $have_gregex = yes ; then
1145 want_pcre=ifavailable
1149 if test "x$want_pcre" = "xno" ; then
1153 AC_WIRESHARK_LIBPCRE_CHECK
1154 if test "x$want_pcre" = "xno" ; then
1155 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1161 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1164 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1165 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1167 if test $withval = no
1170 elif test $withval = yes
1179 # Use liblua by default
1181 want_lua=ifavailable
1184 if test "x$want_lua" = "xno" ; then
1188 AC_WIRESHARK_LIBLUA_CHECK
1189 if test "x$want_lua" = "xno" ; then
1190 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1193 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1197 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1199 AC_ARG_WITH(portaudio,
1200 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1201 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1203 if test $withval = no
1206 elif test $withval = yes
1211 portaudio_dir=$withval
1215 # Use libportaudio by default
1217 want_portaudio=ifavailable
1220 if test "x$want_portaudio" = "xno" ; then
1224 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1225 if test "x$want_portaudio" = "xno" ; then
1226 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1229 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1234 AC_HELP_STRING( [--enable-ipv6],
1235 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1236 enable_ipv6=$enableval,enable_ipv6=yes)
1238 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1239 if test "x$enable_ipv6" = "xno" ; then
1243 AC_WIRESHARK_IPV6_STACK
1247 dnl Check if dumpcap should be installed setuid
1248 AC_ARG_ENABLE(setuid-install,
1249 AC_HELP_STRING( [--enable-setuid-install],
1250 [install dumpcap as setuid @<:@default=no@:>@]),
1251 enable_setuid_install=$enableval,enable_setuid_install=no)
1253 AC_MSG_CHECKING(whether to install dumpcap setuid)
1254 if test "x$enable_setuid_install" = "xno" ; then
1257 if test "x$enable_dumpcap" = "xno" ; then
1258 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1264 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1265 AC_CHECK_FUNCS(setresuid setresgid)
1267 dnl libcap (not libpcap) check
1269 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1272 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1273 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1275 if test "x$withval" = "xno"; then
1277 elif test "x$withval" = "xyes"; then
1279 elif test -d "$withval"; then
1281 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1284 if test "x$with_libcap" = "xno" ; then
1288 AC_WIRESHARK_LIBCAP_CHECK
1290 AC_SUBST(LIBCAP_LIBS)
1292 dnl Checks for header files.
1293 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1294 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)
1295 AC_CHECK_HEADERS(netinet/in.h)
1296 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1300 AC_MSG_CHECKING(whether to use SSL library)
1303 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1304 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1306 if test "x$withval" = "xno"; then
1308 elif test "x$withval" = "xyes"; then
1310 elif test -d "$withval"; then
1312 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1317 if test "x$want_ssl" = "xyes"; then
1319 AC_CHECK_LIB(crypto,EVP_md5,
1324 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1332 AC_MSG_CHECKING(whether to use kerberos)
1335 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1336 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1338 if test $withval = no
1341 elif test $withval = yes
1350 # Use kerberos if specified, otherwise don't.
1352 want_krb5=ifavailable
1355 if test "x$want_krb5" = "xno" ; then
1359 AC_WIRESHARK_KRB5_CHECK
1365 AC_MSG_CHECKING(whether to use the c-ares library if available)
1368 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1369 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1371 if test "x$withval" = "xno"; then
1373 elif test "x$withval" = "xyes"; then
1375 elif test -d "$withval"; then
1377 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1380 if test "x$want_c_ares" = "xno" ; then
1384 AC_WIRESHARK_C_ARES_CHECK
1386 AC_SUBST(C_ARES_LIBS)
1390 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1393 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1394 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1396 if test "x$withval" = "xno"; then
1398 elif test "x$withval" = "xyes"; then
1400 elif test -d "$withval"; then
1402 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1405 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1409 AC_WIRESHARK_ADNS_CHECK
1415 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1418 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1419 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1421 if test "x$withval" = "xno"; then
1423 elif test "x$withval" = "xyes"; then
1425 elif test -d "$withval"; then
1427 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1430 if test "x$want_geoip" = "xno"; then
1434 AC_WIRESHARK_GEOIP_CHECK
1436 AC_SUBST(GEOIP_LIBS)
1438 dnl Python devel Check
1440 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1441 [use python interpretor (installed in DIR, if supplied). @<:@default=no@:>@ (EXPERIMENTAL)]),
1443 pythondir='${libdir}/wireshark/python/${VERSION}'
1444 if test "x$withval" = "xno"; then
1446 elif test "x$withval" != "xyes"; then
1447 pythondir="$withval"
1449 AC_WIRESHARK_PYTHON_CHECK
1452 AC_WIRESHARK_PYTHON_CHECK
1455 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1459 # Define WS_VAR_IMPORT appropriately for declarations of external
1460 # variables exported from dynamically-linked libraries.
1462 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1464 AC_ARG_ENABLE(airpcap,
1465 AC_HELP_STRING( [--enable-airpcap],
1466 [use airpcap in wireshark. @<:@default=no@:>@]),
1467 enable_airpcap=$enableval
1468 if test x$enable_airpcap != xno; then
1469 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1473 # Define HAVE_AIRPDCAP
1474 # We'll want to remove this eventually.
1476 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1478 dnl Checks for typedefs, structures, and compiler characteristics.
1481 # Check how we can get the time zone abbreviation
1482 AC_WIRESHARK_TIMEZONE_ABBREV
1484 # We need to know whether "struct sockaddr" has an "sa_len" member
1485 # for get_interface_list().
1487 AC_WIRESHARK_STRUCT_SA_LEN
1489 # We must know our byte order
1492 # Checks whether "-traditional" is needed when using "ioctl".
1493 # XXX - do we need this?
1494 AC_PROG_GCC_TRADITIONAL
1498 AC_CHECK_FUNC(getopt,
1500 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1502 GETOPT_O="wsgetopt.o"
1504 if test "$ac_cv_func_getopt" = no ; then
1505 GETOPT_C="wsgetopt.c"
1506 GETOPT_O="wsgetopt.o"
1511 AC_CHECK_FUNC(strerror, STRERROR_O="",
1512 [STRERROR_O="strerror.o"
1513 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1515 if test "$ac_cv_func_strerror" = no ; then
1516 STRERROR_C="strerror.c"
1517 STRERROR_O="strerror.o"
1519 AC_SUBST(STRERROR_C)
1520 AC_SUBST(STRERROR_O)
1522 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_O="",
1523 STRNCASECMP_O="strncasecmp.o")
1524 if test "$ac_cv_func_strncasecmp" = no ; then
1525 STRNCASECMP_C="strncasecmp.c"
1526 STRNCASECMP_O="strncasecmp.o"
1528 AC_SUBST(STRNCASECMP_C)
1529 AC_SUBST(STRNCASECMP_O)
1531 AC_CHECK_FUNCS(mkstemp mkdtemp)
1534 # XXX - if inet_aton isn't found, the build fails, with a complaint from
1535 # libtool about inet_aton.lo not being a valid libtool object. We
1536 # probably have to handle it - and all the other replacement functions that
1537 # get built into libwireshark - differently.
1539 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1541 if test "$have_inet_aton" = no; then
1542 INET_ATON_C="inet_aton.c"
1543 INET_ATON_O="inet_aton.o"
1544 INET_ATON_LO="inet_aton.lo"
1545 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1551 AC_SUBST(INET_ATON_C)
1552 AC_SUBST(INET_ATON_O)
1553 AC_SUBST(INET_ATON_LO)
1555 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1556 dnl check for pre-BIND82 inet_pton() bug.
1557 AC_MSG_CHECKING(for broken inet_pton)
1558 AC_TRY_RUN([#include <sys/types.h>
1559 #include <sys/socket.h>
1560 #include <netinet/in.h>
1561 #include <arpa/inet.h>
1566 /* this should return 0 (error) */
1567 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1571 }], [AC_MSG_RESULT(ok);
1572 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1573 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1574 have_inet_pton=no])],
1576 if test "$have_inet_pton" = no; then
1577 INET_PTON_C="inet_pton.c"
1578 INET_PTON_O="inet_pton.o"
1579 INET_PTON_LO="inet_pton.lo"
1585 AC_SUBST(INET_PTON_C)
1586 AC_SUBST(INET_PTON_O)
1587 AC_SUBST(INET_PTON_LO)
1589 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1590 AC_MSG_CHECKING([for inet_ntop prototype])
1591 AC_TRY_COMPILE([#include <stdio.h>
1592 #include <sys/types.h>
1593 #include <sys/socket.h>
1594 #include <netinet/in.h>
1595 #include <arpa/inet.h>
1597 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1599 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1600 [Define if inet_ntop() prototype exists])], [
1601 AC_TRY_COMPILE([#include <stdio.h>
1602 #include <sys/types.h>
1603 #include <sys/socket.h>
1604 #include <netinet/in.h>
1605 #include <arpa/inet.h>
1607 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1609 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1610 [Define if inet_ntop() prototype exists])], [
1611 AC_MSG_RESULT(no)])])
1614 INET_NTOP_C="inet_ntop.c"
1615 INET_NTOP_O="inet_ntop.o"
1616 INET_NTOP_LO="inet_ntop.lo"
1617 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1618 [Define if inet/v6defs.h needs to be included])])
1619 AC_SUBST(INET_NTOP_C)
1620 AC_SUBST(INET_NTOP_O)
1621 AC_SUBST(INET_NTOP_LO)
1623 AC_CHECK_FUNC(strptime, STRPTIME_O="",
1624 [STRPTIME_O="strptime.o"
1625 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1627 if test "$ac_cv_func_strptime" = no ; then
1628 STRPTIME_C="strptime.c"
1629 STRPTIME_O="strptime.o"
1631 AC_SUBST(STRPTIME_C)
1632 AC_SUBST(STRPTIME_O)
1634 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1635 AC_CHECK_FUNCS(issetugid)
1636 AC_CHECK_FUNCS(mmap mprotect sysconf)
1638 dnl blank for now, but will be used in future
1639 AC_SUBST(wireshark_SUBDIRS)
1642 dnl check whether plugins should be enabled and, if they should be,
1643 dnl check for plugins directory - stolen from Amanda's configure.in
1645 dnl we don't wish to expand ${libdir} yet
1646 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1647 AC_ARG_WITH(plugins,
1648 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1649 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1651 if test "x$withval" = "xno"; then
1653 elif test "x$have_plugins" = "xno"; then
1654 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1655 elif test "x$withval" != "xyes"; then
1656 plugindir="$withval"
1659 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1660 if test x$have_plugins = xyes
1662 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1665 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1668 # The plugin dissectors reside in ./plugins/PROTO/
1671 AC_SUBST(PLUGIN_LIBS)
1675 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1676 # (autoconf? automake? libtool?) - with the newer version(s), it's
1677 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1679 # With older version(s) of those tool(s), however, it's not just an
1680 # alias, and the configure scripts don't work without it.
1683 AC_SUBST(LIBTOOL_DEPS)
1685 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1686 if test x$enable_static = xyes -a x$have_plugins = xyes
1688 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1690 AC_SUBST(ENABLE_STATIC)
1692 AC_ARG_ENABLE(new-packet-list,
1693 AC_HELP_STRING( [--enable-new-packet-list],
1694 [use new packet list feature. @<:@default=yes@:>@]),
1695 new_packet_list=$enableval,new_packet_list=yes)
1696 AC_MSG_CHECKING(if new packet list is used);
1697 if test "x$new_packet_list" = "xyes" ; then
1699 CFLAGS=" -DNEW_PACKET_LIST $CFLAGS"
1704 dnl Save the cacheable configure results to config.cache before recursing
1707 sinclude(plugins/Custom.m4) dnl
1708 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1710 AM_CONFIG_HEADER(config.h)
1715 asn1/acp133/Makefile
1717 asn1/ansi_map/Makefile
1718 asn1/ansi_tcap/Makefile
1721 asn1/charging_ase/Makefile
1734 asn1/gsm_map/Makefile
1743 asn1/h450-ros/Makefile
1748 asn1/logotypecertextn/Makefile
1749 asn1/lte-rrc/Makefile
1751 asn1/mpeg-audio/Makefile
1752 asn1/mpeg-pes/Makefile
1754 asn1/ns_cert_exts/Makefile
1759 asn1/pkcs12/Makefile
1760 asn1/pkinit/Makefile
1761 asn1/pkix1explicit/Makefile
1762 asn1/pkix1implicit/Makefile
1763 asn1/pkixproxy/Makefile
1764 asn1/pkixqualified/Makefile
1765 asn1/pkixtsp/Makefile
1768 asn1/q932-ros/Makefile
1781 asn1/spnego/Makefile
1786 asn1/wlancertextn/Makefile
1790 asn1/x509af/Makefile
1791 asn1/x509ce/Makefile
1792 asn1/x509if/Makefile
1793 asn1/x509sat/Makefile
1801 epan/dfilter/Makefile
1802 epan/dissectors/Makefile
1803 epan/ftypes/Makefile
1805 epan/wspython/Makefile
1811 packaging/macosx/Info.plist
1812 packaging/macosx/Makefile
1813 packaging/nsis/Makefile
1814 packaging/rpm/Makefile
1815 packaging/rpm/SPECS/Makefile
1816 packaging/rpm/SPECS/wireshark.spec
1817 packaging/svr4/Makefile
1818 packaging/svr4/checkinstall
1819 packaging/svr4/pkginfo
1821 plugins/asn1/Makefile
1822 plugins/docsis/Makefile
1823 plugins/ethercat/Makefile
1824 plugins/giop/Makefile
1825 plugins/gryphon/Makefile
1826 plugins/irda/Makefile
1827 plugins/m2m/Makefile
1828 plugins/mate/Makefile
1829 plugins/opcua/Makefile
1830 plugins/profinet/Makefile
1831 plugins/sercosiii/Makefile
1832 plugins/stats_tree/Makefile
1833 plugins/unistim/Makefile
1834 plugins/wimax/Makefile
1835 plugins/wimaxasncp/Makefile
1838 tools/lemon/Makefile
1843 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1848 if test "x$enable_setuid_install" = "xyes" ; then
1849 setuid_message="yes"
1854 if test "x$want_zlib" = "xno" ; then
1860 if test "x$want_pcre" = "xno" ; then
1861 if test $have_gregex = yes
1863 pcre_message="no (using GRegex instead)"
1871 if test "x$want_lua" = "xyes" ; then
1877 if test "x$want_python" = "xyes"; then
1878 python_message="yes"
1883 if test "x$want_portaudio" = "xyes" ; then
1884 portaudio_message="yes"
1886 portaudio_message="no"
1889 if test "x$want_ssl" = "xno" ; then
1895 if test "x$want_krb5" = "xno" ; then
1898 krb5_message="yes ($ac_krb5_version)"
1901 if test "x$have_good_c_ares" = "xyes" ; then
1902 c_ares_message="yes"
1907 if test "x$have_good_adns" = "xyes" ; then
1913 if test "x$have_good_libcap" = "xyes" ; then
1914 libcap_message="yes"
1919 if test "x$have_good_geoip" = "xyes" ; then
1926 echo "The Wireshark package has been configured with the following options."
1927 echo " Build wireshark : $enable_wireshark"
1928 echo " Build tshark : $enable_tshark"
1929 echo " Build capinfos : $enable_capinfos"
1930 echo " Build editcap : $enable_editcap"
1931 echo " Build dumpcap : $enable_dumpcap"
1932 echo " Build mergecap : $enable_mergecap"
1933 echo " Build text2pcap : $enable_text2pcap"
1934 echo " Build idl2wrs : $enable_idl2wrs"
1935 echo " Build randpkt : $enable_randpkt"
1936 echo " Build dftest : $enable_dftest"
1937 echo " Build rawshark : $enable_rawshark"
1939 echo " Install dumpcap setuid : $setuid_message"
1940 echo " Use plugins : $have_plugins"
1941 echo " Use lua library : $lua_message"
1942 echo " Use python binding : $python_message"
1943 echo " Build rtp_player : $portaudio_message"
1944 echo " Use threads : $enable_threads"
1945 echo " Build profile binaries : $enable_profile_build"
1946 echo " Use pcap library : $want_pcap"
1947 echo " Use zlib library : $zlib_message"
1948 echo " Use pcre library : $pcre_message"
1949 echo " Use kerberos library : $krb5_message"
1950 echo " Use c-ares library : $c_ares_message"
1951 echo " Use GNU ADNS library : $adns_message"
1952 echo " Use SMI MIB library : $libsmi_message"
1953 echo " Use GNU crypto library : $gcrypt_message"
1954 echo " Use SSL crypto library : $ssl_message"
1955 echo " Use IPv6 name resolution : $enable_ipv6"
1956 echo " Use gnutls library : $tls_message"
1957 echo " Use POSIX capabilities library : $libcap_message"
1958 echo " Use GeoIP library : $geoip_message"