5 AC_INIT(wireshark, 1.3.6)
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 AC_PATH_PROG(YACCDUMMY, $YACC)
43 if test "x$YACCDUMMY" = x
45 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
48 AC_PATH_PROG(LEX, flex)
51 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
53 AC_PATH_PROG(POD2MAN, pod2man)
54 if test "x$POD2MAN" = x
57 # The alternative is not to build the man pages....
59 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
61 AC_PATH_PROG(POD2HTML, pod2html)
62 if test "x$POD2HTML" = x
65 # The alternative is not to build the HTML man pages....
67 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
71 # XXX - this looks for various HTML viewers on the host, not the target;
72 # we really want to know what's available on the target, for cross-builds.
73 # That would probably require us to, at run time, look for xdg-open and,
74 # if we don't find it, look for mozilla, htmlview, etc.
76 AC_PATH_PROG(HTML_VIEWER, xdg-open)
77 if test "x$HTML_VIEWER" != x
80 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
81 # Define some variable to be that, so we just run that?
83 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
86 # XXX - we have to define HTML_VIEWER for the prefs.c code that
87 # sets the default value of the Web browser preference, even
88 # though that preference won't be offered.
90 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
92 AC_PATH_PROG(HTML_VIEWER, htmlview)
93 if test "x$HTML_VIEWER" = x
95 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
97 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
101 AC_PATH_PROG(LEX, flex)
102 AC_PATH_PROG(PYTHON, python)
113 if test "x$CC_FOR_BUILD" = x
117 AC_SUBST(CC_FOR_BUILD)
120 AC_PATH_PROG(DOXYGEN, doxygen)
121 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
122 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
126 AC_ARG_WITH([gnutls],
127 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
128 [use gnutls library @<:@default=yes@:>@]),
129 with_gnutls="$withval", with_gnutls="yes")
130 if test "x$with_gnutls" = "xyes"; then
131 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
133 echo "gnuTLS found, enabling ssl decryption"
134 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
138 echo "gnuTLS not found, disabling ssl decryption"
146 AC_ARG_WITH([gcrypt],
147 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
148 [use gcrypt library @<:@default=yes@:>@]),
149 with_gcrypt="$withval", with_gcrypt="yes")
150 if test "x$with_gcrypt" = "xyes"; then
151 AM_PATH_LIBGCRYPT(1.1.92,
153 echo "libgcrypt found, enabling ipsec decryption"
154 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
158 if test x$libgcrypt_config_prefix != x ; then
159 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
161 echo "libgcrypt not found, disabling ipsec decryption"
169 # FIXME: currently the path argument to with-libsmi is being ignored
173 AC_PATH_PROG(XSLTPROC, xsltproc)
174 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
175 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
178 AC_PATH_PROG(XMLLINT, xmllint)
179 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
180 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
182 # Check for fop (translate .fo to e.g. pdf)
183 AC_PATH_PROG(FOP, fop)
184 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
185 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
188 # Look for something to convert HTML to text (for docbook/)
190 AC_PATH_PROG(ELINKS, elinks)
191 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
192 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
194 ## links: Fails as used in docbook/Makefile.am
195 ## (Rather than fixing things we'll just disable the use of links).
196 ##AC_PATH_PROG(LINKS, links)
197 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
198 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
200 AC_PATH_PROG(LYNX, lynx)
201 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
202 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
205 # Check for hhc (html help compiler)
206 AC_PATH_PROG(HHC, hhc.exe)
207 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
208 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
210 # Check for packaging utilities
211 # For now, we check to see if the various packaging utilites are in our
212 # path. I'm too lazy to write code to go hunt for them. - Gerald
215 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
216 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
217 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
219 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
220 -a x$HAVE_PKGTRANS = xyes ; then
221 HAVE_SVR4_PACKAGING=yes
223 HAVE_SVR4_PACKAGING=no
225 AC_SUBST(HAVE_SVR4_PACKAGING)
228 AC_WIRESHARK_RPM_CHECK
232 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
235 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
236 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
237 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
239 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
240 -a x$HAVE_BLESS = xyes ; then
241 HAVE_OSX_PACKAGING=yes
243 HAVE_OSX_PACKAGING=no
245 AC_SUBST(HAVE_OSX_PACKAGING)
248 # Try to add some additional gcc checks to CFLAGS
250 AC_ARG_ENABLE(extra-gcc-checks,
251 AC_HELP_STRING( [--enable-extra-gcc-checks],
252 [Do additional -W checks in GCC. @<:@default=no@:>@]),
254 wireshark_extra_gcc_flags=$enableval
255 if test $enableval != no
257 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
258 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
259 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
260 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
261 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
262 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
263 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
264 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
265 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
266 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
267 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
268 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
269 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
270 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
271 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
272 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
273 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
274 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
275 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
276 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
277 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
278 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
280 # epan/dissectors/packet-ncp2222.inc blocks this one
283 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
284 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
285 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
287 # epan/dissectors/packet-afs.c blocks this one for now.
289 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
291 # More cleanup needed for this on LP64.
293 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
296 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
297 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
298 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
299 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
300 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
301 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
302 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
303 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
304 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
306 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
307 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
308 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
309 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
312 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
313 # so we can use _U_ to flag unused function arguments and not get warnings
314 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
315 # function argument will compile with non-GCC compilers.
317 if test "x$GCC" = "xyes" ; then
318 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
320 CFLAGS="-D_U_=\"\" $CFLAGS"
324 # If we're running gcc, will enable a barrier "stop on warning".
325 # This barrier is set for a very large part of the code. However, it is
326 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
328 warnings_as_errors_default="yes"
329 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
330 AC_ARG_ENABLE(warnings-as-errors,
331 AC_HELP_STRING( [--enable-warnings-as-errors],
332 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
334 if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
335 with_warnings_as_errors="yes"
338 with_warnings_as_errors="no"
342 if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
343 with_warnings_as_errors="yes"
346 with_warnings_as_errors="no"
350 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
353 # Add any platform-specific compiler flags needed.
355 AC_MSG_CHECKING(for platform-specific compiler flags)
356 if test "x$GCC" = "xyes" ; then
358 # GCC - do any platform-specific tweaking necessary.
362 # the X11 headers don't automatically include prototype info
363 # and a lot don't include the return type
364 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
365 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
369 # See comments above about Apple's lovely C compiler.
371 CFLAGS="-no-cpp-precomp $CFLAGS"
372 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
375 AC_MSG_RESULT(none needed)
380 # Not GCC - assume it's the vendor's compiler.
385 # HP's ANSI C compiler; flags suggested by Jost Martin.
386 # "-Ae" for ANSI C plus extensions such as "long long".
387 # "+O2", for optimization. XXX - works with "-g"?
389 CFLAGS="-Ae +O2 $CFLAGS"
390 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
394 # It may be called "cc", but it's really a GCC derivative
395 # with a problematic special precompiler and precompiled
396 # headers; turn off the special precompiler, as some
397 # apparently-legal code won't compile with its precompiled
400 CFLAGS="-no-cpp-precomp $CFLAGS"
401 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
404 AC_MSG_RESULT(none needed)
410 # Add any platform-specific linker flags needed.
412 AC_MSG_CHECKING(for platform-specific linker flags)
416 # Add -Wl,-single_module to the LDFLAGS used with shared
417 # libraries, to fix some error that show up in some cases;
418 # some Apple documentation recommends it for most shared
421 LDFLAGS_SHAREDLIB="-Wl,-single_module"
423 # Add -Wl,-search_paths_first to make sure that if we search
424 # directories A and B, in that order, for a given library, a
425 # non-shared version in directory A, rather than a shared
426 # version in directory B, is chosen (so we can use
427 # --with-pcap=/usr/local to force all programs to be linked
428 # with a static version installed in /usr/local/lib rather than
429 # the system version in /usr/lib).
431 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
432 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
436 # Shared libraries in cygwin/Win32 must never contain
439 LDFLAGS="$LDFLAGS -no-undefined"
440 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
443 AC_MSG_RESULT(none needed)
446 AC_SUBST(LDFLAGS_SHAREDLIB)
448 # Control silent compiling
449 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
452 # On OS X, if we find the headers for Core Foundation, Launch Services,
453 # and Core Services, add -framework options to link with Application
454 # Services (of which Launch Services is a subframework), Core Foundation
455 # (required by the Launch Services APIs), and Core Services, so we can
456 # use them to launch a Web browser from the Help menu and to use
457 # Gestalt() to get the Mac OS X version number.
462 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
464 ac_frameworks="-framework ApplicationServices -framework CoreFoundation -framework CoreServices"
465 LIBS="$LIBS $ac_frameworks"
468 # include <CoreFoundation/CFBase.h>
469 # include <CoreFoundation/CFString.h>
470 # include <CoreFoundation/CFURL.h>
471 # include <ApplicationServices/ApplicationServices.h>
472 # include <CoreServices/CoreServices.h>
475 CFStringRef url_CFString;
480 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
481 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
482 status = LSOpenCFURLRef(url_CFURL, NULL);
484 Gestalt(gestaltSystemVersion, &os_version);
486 ac_cv_can_use_osx_frameworks=yes,
487 ac_cv_can_use_osx_frameworks=no,
488 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
489 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
490 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
491 FRAMEWORKS="$ac_frameworks"
502 # If using $prefix we add "$prefix/include" to the include search path
503 # and "$prefix/lib" to the library search path.
505 if test "x$prefix" != "x" ; then
506 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
507 if test -d $prefix/include ; then
510 # Arrange that we search for header files in "$prefix/include", as
511 # various packages we use may have been installed under "$prefix/include".
513 CFLAGS="$CFLAGS -I$prefix/include"
514 CPPFLAGS="$CPPFLAGS -I$prefix/include"
517 # Arrange that we search for libraries in "$prefix/lib".
519 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
525 dnl Look in /usr/local for header files and libraries ?
526 dnl XXX FIXME don't include /usr/local if it is already in the system
527 dnl search path as this causes gcc 3.2 on Linux to complain about a change
528 dnl of the system search order for includes
529 AC_ARG_ENABLE(usr-local,
530 AC_HELP_STRING( [--enable-usr-local],
531 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
532 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
534 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
535 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
538 # Arrange that we search for header files in the source directory
539 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
540 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
541 # may have been installed under "/usr/local/include".
543 CFLAGS="$CFLAGS -I/usr/local/include"
544 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
547 # Arrange that we search for libraries in "/usr/local/lib".
549 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
555 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
560 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
561 if test x$LD_LIBRARY_PATH != x ; then
562 LIBS="$LIBS -R$LD_LIBRARY_PATH"
563 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
565 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
571 # Check for versions of "sed" inadequate to handle, in libtool, a list
572 # of object files as large as the list in Wireshark.
574 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
575 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
576 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
577 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
578 # is the only "sed" that comes with Solaris that can handle Wireshark.
580 # Add any checks here that are necessary for other OSes.
582 AC_WIRESHARK_GNU_SED_CHECK
583 if test "$HAVE_GNU_SED" = no ; then
586 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
588 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
590 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
605 # Enable/disable tshark
607 AC_ARG_ENABLE(wireshark,
608 AC_HELP_STRING( [--enable-wireshark],
609 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
610 enable_wireshark=$enableval,enable_wireshark=yes)
612 AC_ARG_ENABLE(threads,
613 AC_HELP_STRING( [--enable-threads],
614 [use threads in wireshark. @<:@default=no@:>@]),
615 enable_threads=$enableval,enable_threads=no)
616 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
618 AC_ARG_ENABLE(profile-build,
619 AC_HELP_STRING( [--enable-profile-build],
620 [build profile-ready binaries. @<:@default=no@:>@]),
621 enable_profile_build=$enableval,enable_profile_build=no)
622 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
623 AC_MSG_CHECKING(if profile builds must be generated)
624 if test "x$enable_profile_build" = "xyes" ; then
625 if test "x$GCC" = "xyes" ; then
627 CFLAGS=" -pg $CFLAGS"
630 echo "Building profile binaries currently only supported for GCC."
636 # Create DATAFILE_DIR #define for config.h
637 datafiledir=$datadir/wireshark
639 test "x$prefix" = xNONE && prefix=$ac_default_prefix
640 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
641 # Ugly hack, but I don't see how this problem can be solved
642 # properly that DATAFILE_DIR had a value starting with
643 # "${prefix}/" instead of e.g. "/usr/local/"
644 eval eval echo "$datafiledir"
646 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
648 # GTK checks; we require GTK+ 2.4 or later.
649 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
650 # programs to be built with GTK+.
652 if test "x$enable_wireshark" = "xyes"; then
653 AM_PATH_GTK_2_0(2.4.0,
655 CFLAGS="$CFLAGS $GTK_CFLAGS"
656 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
657 ], GTK_OK=no, gthread)
662 # GLib checks; we require GLib 2.4 or later, and require gmodule
663 # support, as we need that for dynamically loading plugins.
664 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
665 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
666 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
667 # GLIB_CFLAGS to CFLAGS.
668 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
669 # set when generating the Makefile, so we can make programs that require
670 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
671 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
672 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
673 # programs to be built with GLib.
675 if test "$GTK_OK" = "no" ; then
677 # We don't have GTK+.
678 # If they didn't explicitly say "--disable-wireshark", fail (so
679 # that, unless they explicitly indicated that they don't want
680 # Wireshark, we stop so they know they won't be getting
681 # Wireshark unless they fix the GTK+ problem).
683 if test "x$enable_wireshark" = "xyes"; then
684 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
689 AM_PATH_GLIB_2_0(2.4.0,
691 CFLAGS="$CFLAGS $GLIB_CFLAGS"
692 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
693 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
696 # We have GTK+, and thus will be building Wireshark unless the
697 # user explicitly disabled it.
699 wireshark_bin="wireshark\$(EXEEXT)"
700 wireshark_man="wireshark.1"
701 wireshark_SUBDIRS="codecs gtk"
702 # Don't use GLIB_CFLAGS
703 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
707 # Check whether GLib includes GRegex support.
708 # We just assume that everybody builds GLib 2.14.0 and later
709 # with GRegex support; it's possible to compile GLib without
710 # GRegex but it doesn't look as if anyone does.
712 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
713 if test x$PKG_CONFIG != xno ; then
714 ## don't try to run the test against uninstalled libtool libs
715 if $PKG_CONFIG --uninstalled $pkg_config_args; then
716 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
720 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
725 AC_MSG_RESULT($have_gregex)
729 # Check whether GLib modules are supported, to determine whether we
730 # can support plugins.
732 AC_MSG_CHECKING(whether GLib supports loadable modules)
733 ac_save_CFLAGS="$CFLAGS"
735 CFLAGS="$CFLAGS $GLIB_CFLAGS"
736 LIBS="$GLIB_LIBS $LIBS"
746 if (g_module_supported())
747 return 0; /* success */
749 return 1; /* failure */
751 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
752 [echo $ac_n "cross compiling; assumed OK... $ac_c"
753 ac_cv_glib_supports_modules=yes])
754 CFLAGS="$ac_save_CFLAGS"
756 if test "$ac_cv_glib_supports_modules" = yes ; then
765 # If we have <dlfcn.h>, check whether we can use dladdr to find a
766 # filename (hopefully, a full pathname, but no guarantees) for
769 if test "$ac_cv_header_dlfcn_h" = "yes"
771 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
772 ac_save_CFLAGS="$CFLAGS"
774 CFLAGS="$CFLAGS $GLIB_CFLAGS"
775 LIBS="$GLIB_LIBS $LIBS"
777 #define _GNU_SOURCE /* required on Linux, sigh */
785 if (!dladdr((void *)main, &info))
786 return 1; /* failure */
787 return 0; /* assume success */
789 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
790 [echo $ac_n "cross compiling; assumed OK... $ac_c"
791 ac_cv_dladdr_finds_executable_path=yes])
792 CFLAGS="$ac_save_CFLAGS"
794 if test x$ac_cv_dladdr_finds_executable_path = xyes
796 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
798 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
801 dnl IGE Mac integration check
802 AC_MSG_CHECKING(whether to use IGE Mac integration functions)
804 AC_ARG_WITH(ige-mac-integration,
805 AC_HELP_STRING( [--with-ige-mac-integration],
806 [use IGE Mac integration. (@<:@default=yes, if available@:>@]),
808 if test $withval = no
810 want_ige_mac_integration=no
812 want_ige_mac_integration=yes
815 want_ige_mac_integration=yes
817 if test "x$want_ige_mac_integration" = "xno" -o "x$no_gtk" = "xyes" ; then
821 AC_WIRESHARK_IGE_MAC_INTEGRATION_CHECK
825 AC_SUBST(wireshark_bin)
826 AC_SUBST(wireshark_man)
829 # Enable/disable tshark
831 AC_ARG_ENABLE(tshark,
832 AC_HELP_STRING( [--enable-tshark],
833 [build tshark. @<:@default=yes@:>@]),
834 tshark=$enableval,enable_tshark=yes)
836 if test "x$enable_tshark" = "xyes" ; then
837 tshark_bin="tshark\$(EXEEXT)"
838 tshark_man="tshark.1"
839 wiresharkfilter_man="wireshark-filter.4"
846 AC_SUBST(wiresharkfilter_man)
850 # Enable/disable editcap
852 AC_ARG_ENABLE(editcap,
853 AC_HELP_STRING( [--enable-editcap],
854 [build editcap. @<:@default=yes@:>@]),
855 enable_editcap=$enableval,enable_editcap=yes)
857 if test "x$enable_editcap" = "xyes" ; then
858 editcap_bin="editcap\$(EXEEXT)"
859 editcap_man="editcap.1"
864 AC_SUBST(editcap_bin)
865 AC_SUBST(editcap_man)
867 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
870 # Enable/disable capinfos
872 AC_ARG_ENABLE(capinfos,
873 AC_HELP_STRING( [--enable-capinfos],
874 [build capinfos. @<:@default=yes@:>@]),
875 enable_capinfos=$enableval,enable_capinfos=yes)
877 if test "x$enable_capinfos" = "xyes" ; then
878 capinfos_bin="capinfos\$(EXEEXT)"
879 capinfos_man="capinfos.1"
884 AC_SUBST(capinfos_bin)
885 AC_SUBST(capinfos_man)
888 # Enable/disable mergecap
890 AC_ARG_ENABLE(mergecap,
891 AC_HELP_STRING( [--enable-mergecap],
892 [build mergecap. @<:@default=yes@:>@]),
893 enable_mergecap=$enableval,enable_mergecap=yes)
895 if test "x$enable_mergecap" = "xyes" ; then
896 mergecap_bin="mergecap\$(EXEEXT)"
897 mergecap_man="mergecap.1"
902 AC_SUBST(mergecap_bin)
903 AC_SUBST(mergecap_man)
906 # Enable/disable text2pcap
908 AC_ARG_ENABLE(text2pcap,
909 AC_HELP_STRING( [--enable-text2pcap],
910 [build text2pcap. @<:@default=yes@:>@]),
911 text2pcap=$enableval,enable_text2pcap=yes)
913 if test "x$enable_text2pcap" = "xyes" ; then
914 text2pcap_bin="text2pcap\$(EXEEXT)"
915 text2pcap_man="text2pcap.1"
920 AC_SUBST(text2pcap_bin)
921 AC_SUBST(text2pcap_man)
923 # Enable/disable idl2wrs
925 AC_ARG_ENABLE(idl2wrs,
926 AC_HELP_STRING( [--enable-idl2wrs],
927 [build idl2wrs. @<:@default=yes@:>@]),
928 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
930 if test "x$enable_idl2wrs" = "xyes" ; then
931 idl2wrs_bin="idl2wrs"
932 idl2wrs_man="idl2wrs.1"
937 AC_SUBST(idl2wrs_bin)
938 AC_SUBST(idl2wrs_man)
941 # Enable/disable dftest
943 AC_ARG_ENABLE(dftest,
944 AC_HELP_STRING( [--enable-dftest],
945 [build dftest. @<:@default=yes@:>@]),
946 enable_dftest=$enableval,enable_dftest=yes)
948 if test "x$enable_dftest" = "xyes" ; then
949 dftest_bin="dftest\$(EXEEXT)"
956 # Enable/disable randpkt
958 AC_ARG_ENABLE(randpkt,
959 AC_HELP_STRING( [--enable-randpkt],
960 [build randpkt. @<:@default=yes@:>@]),
961 enable_randpkt=$enableval,enable_randpkt=yes)
963 if test "x$enable_randpkt" = "xyes" ; then
964 randpkt_bin="randpkt\$(EXEEXT)"
968 AC_SUBST(randpkt_bin)
972 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
973 dnl "gethostbyname()".
974 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
976 dnl Checks for "connect()", used as a proxy for "socket()" - and
977 dnl "-lsocket", if we need it to get "connect()".
978 AC_WIRESHARK_SOCKET_LIB_CHECK
981 AC_MSG_CHECKING(whether to use libpcap for packet capture)
984 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
985 [use libpcap for packet capturing. @<:@default=yes@:>@]),
987 if test $withval = no
990 elif test $withval = yes
1001 if test "x$want_pcap" = "xno" ; then
1005 AC_WIRESHARK_PCAP_CHECK
1008 # Enable/disable dumpcap
1011 AC_MSG_CHECKING(whether to build dumpcap)
1013 AC_ARG_ENABLE(dumpcap,
1014 AC_HELP_STRING( [--enable-dumpcap],
1015 [build dumpcap. @<:@default=yes@:>@]),
1016 enable_dumpcap=$enableval,enable_dumpcap=yes)
1018 if test "x$enable_dumpcap" = "xyes" ; then
1019 if test "x$want_pcap" = "xno" ; then
1021 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1029 if test "x$enable_dumpcap" = "xyes" ; then
1030 dumpcap_bin="dumpcap\$(EXEEXT)"
1031 dumpcap_man="dumpcap.1"
1036 AC_SUBST(dumpcap_bin)
1037 AC_SUBST(dumpcap_man)
1039 # Enable/disable rawshark
1042 AC_MSG_CHECKING(whether to build rawshark)
1044 AC_ARG_ENABLE(rawshark,
1045 AC_HELP_STRING( [--enable-rawshark],
1046 [build rawshark. @<:@default=yes@:>@]),
1047 rawshark=$enableval,enable_rawshark=yes)
1049 if test "x$enable_rawshark" = "xyes" ; then
1050 if test "x$want_pcap" = "xno" ; then
1052 AC_MSG_RESULT(pcap not available - disabling rawshark)
1060 if test "x$enable_rawshark" = "xyes" ; then
1061 rawshark_bin="rawshark\$(EXEEXT)"
1062 rawshark_man="rawshark.1"
1067 AC_SUBST(rawshark_bin)
1068 AC_SUBST(rawshark_man)
1071 dnl pcap remote check
1072 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1074 AC_ARG_WITH(pcap-remote,
1075 [ --with-pcap-remote use libpcap remote capturing (requires libpcap)],
1077 if test $withval = no
1081 want_pcap_remote=yes
1086 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1090 AC_WIRESHARK_PCAP_REMOTE_CHECK
1094 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1097 AC_HELP_STRING( [--with-zlib@<:@=DIR@:>@],
1098 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1100 if test $withval = no
1103 elif test $withval = yes
1112 # Use zlib if it's present, otherwise don't.
1114 want_zlib=ifavailable
1117 if test "x$want_zlib" = "xno" ; then
1121 AC_WIRESHARK_ZLIB_CHECK
1122 if test "x$want_zlib" = "xno" ; then
1123 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1129 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1132 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1133 [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@:>@]),
1135 if test $withval = no
1138 elif test $withval = yes
1147 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1149 if test $have_gregex = yes ; then
1152 want_pcre=ifavailable
1156 if test "x$want_pcre" = "xno" ; then
1160 AC_WIRESHARK_LIBPCRE_CHECK
1161 if test "x$want_pcre" = "xno" ; then
1162 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1168 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1171 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1172 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1174 if test $withval = no
1177 elif test $withval = yes
1186 # Use liblua by default
1188 want_lua=ifavailable
1191 if test "x$want_lua" = "xno" ; then
1195 AC_WIRESHARK_LIBLUA_CHECK
1196 if test "x$want_lua" = "xno" ; then
1197 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1200 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1204 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1206 AC_ARG_WITH(portaudio,
1207 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1208 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1210 if test $withval = no
1213 elif test $withval = yes
1218 portaudio_dir=$withval
1222 # Use libportaudio by default
1224 want_portaudio=ifavailable
1227 if test "x$want_portaudio" = "xno" ; then
1231 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1232 if test "x$want_portaudio" = "xno" ; then
1233 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1236 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1241 AC_HELP_STRING( [--enable-ipv6],
1242 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1243 enable_ipv6=$enableval,enable_ipv6=yes)
1245 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1246 if test "x$enable_ipv6" = "xno" ; then
1250 AC_WIRESHARK_IPV6_STACK
1254 dnl Check if dumpcap should be installed with filesystem capabilities
1255 AC_PATH_PROG(SETCAP, setcap)
1256 AC_ARG_ENABLE(setcap-install,
1257 AC_HELP_STRING( [--enable-setcap-install],
1258 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1259 enable_setcap_install=$enableval,enable_setcap_install=no)
1261 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1262 if test "x$enable_setcap_install" = "xno" ; then
1265 if test "x$SETCAP" = "x" ; then
1266 AC_MSG_RESULT(no. Setcap not found)
1267 elif test "x$enable_dumpcap" = "xno" ; then
1268 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1274 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1276 dnl Check if dumpcap should be installed setuid
1277 AC_ARG_ENABLE(setuid-install,
1278 AC_HELP_STRING( [--enable-setuid-install],
1279 [install dumpcap as setuid @<:@default=no@:>@]),
1280 enable_setuid_install=$enableval,enable_setuid_install=no)
1282 AC_MSG_CHECKING(whether to install dumpcap setuid)
1283 if test "x$enable_setuid_install" = "xno" ; then
1286 if test "x$enable_setcap_install" = "xyes" ; then
1287 enable_setuid_install=no
1288 AC_MSG_RESULT(no; using setcap instead)
1289 elif test "x$enable_dumpcap" = "xno" ; then
1290 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1296 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1297 AC_CHECK_FUNCS(setresuid setresgid)
1299 dnl ...but our Network Operations group is named "no"!
1301 AC_ARG_WITH(dumpcap-group,
1302 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1303 [restrict dumpcap to GROUP]),
1305 if test "x$withval" = "xyes"; then
1306 AC_MSG_ERROR([No dumpcap group specified.])
1307 elif test "x$withval" != "xno"; then
1308 AC_MSG_RESULT($withval)
1309 DUMPCAP_GROUP="$withval"
1312 AC_SUBST(DUMPCAP_GROUP)
1313 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1315 dnl libcap (not libpcap) check
1317 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1320 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1321 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1323 if test "x$withval" = "xno"; then
1325 elif test "x$withval" = "xyes"; then
1327 elif test -d "$withval"; then
1329 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1332 if test "x$with_libcap" = "xno" ; then
1336 AC_WIRESHARK_LIBCAP_CHECK
1338 AC_SUBST(LIBCAP_LIBS)
1340 dnl Checks for header files.
1341 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1342 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)
1343 AC_CHECK_HEADERS(netinet/in.h)
1344 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1348 AC_MSG_CHECKING(whether to use SSL library)
1351 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1352 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1354 if test "x$withval" = "xno"; then
1356 elif test "x$withval" = "xyes"; then
1358 elif test -d "$withval"; then
1360 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1365 if test "x$want_ssl" = "xyes"; then
1367 AC_CHECK_LIB(crypto,EVP_md5,
1372 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1380 AC_MSG_CHECKING(whether to use kerberos)
1383 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1384 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1386 if test $withval = no
1389 elif test $withval = yes
1398 # Use kerberos if specified, otherwise don't.
1400 want_krb5=ifavailable
1403 if test "x$want_krb5" = "xno" ; then
1407 AC_WIRESHARK_KRB5_CHECK
1413 AC_MSG_CHECKING(whether to use the c-ares library if available)
1416 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1417 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1419 if test "x$withval" = "xno"; then
1421 elif test "x$withval" = "xyes"; then
1423 elif test -d "$withval"; then
1425 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1428 if test "x$want_c_ares" = "xno" ; then
1432 AC_WIRESHARK_C_ARES_CHECK
1434 AC_SUBST(C_ARES_LIBS)
1438 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1441 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1442 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1444 if test "x$withval" = "xno"; then
1446 elif test "x$withval" = "xyes"; then
1448 elif test -d "$withval"; then
1450 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1453 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1457 AC_WIRESHARK_ADNS_CHECK
1463 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1466 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1467 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1469 if test "x$withval" = "xno"; then
1471 elif test "x$withval" = "xyes"; then
1473 elif test -d "$withval"; then
1475 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1478 if test "x$want_geoip" = "xno"; then
1482 AC_WIRESHARK_GEOIP_CHECK
1484 AC_SUBST(GEOIP_LIBS)
1486 dnl Python devel Check
1488 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1489 [use python interpretor (installed in DIR, if supplied). @<:@default=no@:>@ (EXPERIMENTAL)]),
1491 pythondir='${libdir}/wireshark/python/${VERSION}'
1492 if test "x$withval" = "xno"; then
1494 elif test "x$withval" != "xyes"; then
1495 pythondir="$withval"
1497 AC_WIRESHARK_PYTHON_CHECK
1500 AC_WIRESHARK_PYTHON_CHECK
1503 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1507 # Define WS_VAR_IMPORT appropriately for declarations of external
1508 # variables exported from dynamically-linked libraries.
1510 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1512 AC_ARG_ENABLE(airpcap,
1513 AC_HELP_STRING( [--enable-airpcap],
1514 [use airpcap in wireshark. @<:@default=no@:>@]),
1515 enable_airpcap=$enableval
1516 if test x$enable_airpcap != xno; then
1517 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1521 # Define HAVE_AIRPDCAP
1522 # We'll want to remove this eventually.
1524 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1526 dnl Checks for typedefs, structures, and compiler characteristics.
1529 # Check how we can get the time zone abbreviation
1530 AC_WIRESHARK_TIMEZONE_ABBREV
1532 # We need to know whether "struct sockaddr" has an "sa_len" member
1533 # for get_interface_list().
1535 AC_WIRESHARK_STRUCT_SA_LEN
1537 # We must know our byte order
1540 # Checks whether "-traditional" is needed when using "ioctl".
1541 # XXX - do we need this?
1542 AC_PROG_GCC_TRADITIONAL
1546 AC_CHECK_FUNC(getopt,
1548 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1550 GETOPT_O="wsgetopt.o"
1552 if test "$ac_cv_func_getopt" = no ; then
1553 GETOPT_C="wsgetopt.c"
1554 GETOPT_O="wsgetopt.o"
1559 AC_CHECK_FUNC(strerror, STRERROR_O="",
1560 [STRERROR_O="strerror.o"
1561 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1563 if test "$ac_cv_func_strerror" = no ; then
1564 STRERROR_C="strerror.c"
1565 STRERROR_O="strerror.o"
1567 AC_SUBST(STRERROR_C)
1568 AC_SUBST(STRERROR_O)
1570 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_O="",
1571 STRNCASECMP_O="strncasecmp.o")
1572 if test "$ac_cv_func_strncasecmp" = no ; then
1573 STRNCASECMP_C="strncasecmp.c"
1574 STRNCASECMP_O="strncasecmp.o"
1576 AC_SUBST(STRNCASECMP_C)
1577 AC_SUBST(STRNCASECMP_O)
1579 AC_CHECK_FUNCS(mkstemp mkdtemp)
1582 # XXX - if inet_aton isn't found, the build fails, with a complaint from
1583 # libtool about inet_aton.lo not being a valid libtool object. We
1584 # probably have to handle it - and all the other replacement functions that
1585 # get built into libwireshark - differently.
1587 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1589 if test "$have_inet_aton" = no; then
1590 INET_ATON_C="inet_aton.c"
1591 INET_ATON_O="inet_aton.o"
1592 INET_ATON_LO="inet_aton.lo"
1593 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1599 AC_SUBST(INET_ATON_C)
1600 AC_SUBST(INET_ATON_O)
1601 AC_SUBST(INET_ATON_LO)
1603 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1604 dnl check for pre-BIND82 inet_pton() bug.
1605 AC_MSG_CHECKING(for broken inet_pton)
1606 AC_TRY_RUN([#include <sys/types.h>
1607 #include <sys/socket.h>
1608 #include <netinet/in.h>
1609 #include <arpa/inet.h>
1614 /* this should return 0 (error) */
1615 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1619 }], [AC_MSG_RESULT(ok);
1620 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1621 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1622 have_inet_pton=no])],
1624 if test "$have_inet_pton" = no; then
1625 INET_PTON_C="inet_pton.c"
1626 INET_PTON_O="inet_pton.o"
1627 INET_PTON_LO="inet_pton.lo"
1633 AC_SUBST(INET_PTON_C)
1634 AC_SUBST(INET_PTON_O)
1635 AC_SUBST(INET_PTON_LO)
1637 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1638 AC_MSG_CHECKING([for inet_ntop prototype])
1639 AC_TRY_COMPILE([#include <stdio.h>
1640 #include <sys/types.h>
1641 #include <sys/socket.h>
1642 #include <netinet/in.h>
1643 #include <arpa/inet.h>
1645 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1647 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1648 [Define if inet_ntop() prototype exists])], [
1649 AC_TRY_COMPILE([#include <stdio.h>
1650 #include <sys/types.h>
1651 #include <sys/socket.h>
1652 #include <netinet/in.h>
1653 #include <arpa/inet.h>
1655 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1657 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1658 [Define if inet_ntop() prototype exists])], [
1659 AC_MSG_RESULT(no)])])
1662 INET_NTOP_C="inet_ntop.c"
1663 INET_NTOP_O="inet_ntop.o"
1664 INET_NTOP_LO="inet_ntop.lo"
1665 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1666 [Define if inet/v6defs.h needs to be included])])
1667 AC_SUBST(INET_NTOP_C)
1668 AC_SUBST(INET_NTOP_O)
1669 AC_SUBST(INET_NTOP_LO)
1671 AC_CHECK_FUNC(strptime, STRPTIME_O="",
1672 [STRPTIME_O="strptime.o"
1673 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1675 if test "$ac_cv_func_strptime" = no ; then
1676 STRPTIME_C="strptime.c"
1677 STRPTIME_O="strptime.o"
1679 AC_SUBST(STRPTIME_C)
1680 AC_SUBST(STRPTIME_O)
1682 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1683 AC_CHECK_FUNCS(issetugid)
1684 AC_CHECK_FUNCS(mmap mprotect sysconf)
1685 AC_CHECK_FUNCS(strtoll)
1687 dnl blank for now, but will be used in future
1688 AC_SUBST(wireshark_SUBDIRS)
1691 dnl check whether plugins should be enabled and, if they should be,
1692 dnl check for plugins directory - stolen from Amanda's configure.in
1694 dnl we don't wish to expand ${libdir} yet
1695 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1696 AC_ARG_WITH(plugins,
1697 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1698 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1700 if test "x$withval" = "xno"; then
1702 elif test "x$have_plugins" = "xno"; then
1703 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1704 elif test "x$withval" != "xyes"; then
1705 plugindir="$withval"
1708 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1709 if test x$have_plugins = xyes
1711 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1714 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1717 # The plugin dissectors reside in ./plugins/PROTO/
1720 AC_SUBST(PLUGIN_LIBS)
1724 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1725 # (autoconf? automake? libtool?) - with the newer version(s), it's
1726 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1728 # With older version(s) of those tool(s), however, it's not just an
1729 # alias, and the configure scripts don't work without it.
1732 AC_SUBST(LIBTOOL_DEPS)
1734 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1735 if test x$enable_static = xyes -a x$have_plugins = xyes
1737 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1739 AC_SUBST(ENABLE_STATIC)
1741 AC_ARG_ENABLE(new-packet-list,
1742 AC_HELP_STRING( [--enable-new-packet-list],
1743 [use new packet list feature. @<:@default=yes@:>@]),
1744 new_packet_list=$enableval,new_packet_list=yes)
1745 AC_MSG_CHECKING(if new packet list is used);
1746 if test "x$new_packet_list" = "xyes" ; then
1748 CFLAGS=" -DNEW_PACKET_LIST $CFLAGS"
1753 dnl Save the cacheable configure results to config.cache before recursing
1756 sinclude(plugins/Custom.m4) dnl
1757 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1759 AM_CONFIG_HEADER(config.h)
1764 asn1/acp133/Makefile
1766 asn1/ansi_map/Makefile
1767 asn1/ansi_tcap/Makefile
1770 asn1/charging_ase/Makefile
1783 asn1/gsm_map/Makefile
1792 asn1/h450-ros/Makefile
1795 asn1/HI2Operations/Makefile
1798 asn1/kerberos/Makefile
1800 asn1/logotypecertextn/Makefile
1801 asn1/lte-rrc/Makefile
1803 asn1/mpeg-audio/Makefile
1804 asn1/mpeg-pes/Makefile
1806 asn1/ns_cert_exts/Makefile
1811 asn1/pkcs12/Makefile
1812 asn1/pkinit/Makefile
1813 asn1/pkixac/Makefile
1814 asn1/pkix1explicit/Makefile
1815 asn1/pkix1implicit/Makefile
1816 asn1/pkixproxy/Makefile
1817 asn1/pkixqualified/Makefile
1818 asn1/pkixtsp/Makefile
1821 asn1/q932-ros/Makefile
1835 asn1/spnego/Makefile
1840 asn1/wlancertextn/Makefile
1844 asn1/x509af/Makefile
1845 asn1/x509ce/Makefile
1846 asn1/x509if/Makefile
1847 asn1/x509sat/Makefile
1855 epan/dfilter/Makefile
1856 epan/dissectors/Makefile
1857 epan/ftypes/Makefile
1859 epan/wspython/Makefile
1865 packaging/macosx/Info.plist
1866 packaging/macosx/Makefile
1867 packaging/nsis/Makefile
1868 packaging/rpm/Makefile
1869 packaging/rpm/SPECS/Makefile
1870 packaging/rpm/SPECS/wireshark.spec
1871 packaging/svr4/Makefile
1872 packaging/svr4/checkinstall
1873 packaging/svr4/pkginfo
1875 plugins/asn1/Makefile
1876 plugins/docsis/Makefile
1877 plugins/ethercat/Makefile
1878 plugins/giop/Makefile
1879 plugins/gryphon/Makefile
1880 plugins/interlink/Makefile
1881 plugins/irda/Makefile
1882 plugins/m2m/Makefile
1883 plugins/mate/Makefile
1884 plugins/opcua/Makefile
1885 plugins/profinet/Makefile
1886 plugins/sercosiii/Makefile
1887 plugins/stats_tree/Makefile
1888 plugins/unistim/Makefile
1889 plugins/wimax/Makefile
1890 plugins/wimaxasncp/Makefile
1893 tools/lemon/Makefile
1898 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1903 if test "x$enable_setcap_install" = "xyes" ; then
1904 setcap_message="yes"
1910 if test "x$enable_setuid_install" = "xyes" ; then
1911 setuid_message="yes"
1916 if test "x$DUMPCAP_GROUP" = "x" ; then
1917 dumpcap_group_message="(none)"
1919 dumpcap_group_message="$DUMPCAP_GROUP"
1922 if test "x$want_zlib" = "xno" ; then
1928 if test "x$want_pcre" = "xno" ; then
1929 if test $have_gregex = yes
1931 pcre_message="no (using GRegex instead)"
1939 if test "x$want_lua" = "xyes" ; then
1945 if test "x$want_python" = "xyes"; then
1946 python_message="yes"
1951 if test "x$want_portaudio" = "xyes" ; then
1952 portaudio_message="yes"
1954 portaudio_message="no"
1957 if test "x$want_ssl" = "xno" ; then
1963 if test "x$want_krb5" = "xno" ; then
1966 krb5_message="yes ($ac_krb5_version)"
1969 if test "x$have_good_c_ares" = "xyes" ; then
1970 c_ares_message="yes"
1975 if test "x$have_good_adns" = "xyes" ; then
1981 if test "x$have_good_libcap" = "xyes" ; then
1982 libcap_message="yes"
1987 if test "x$have_good_geoip" = "xyes" ; then
1994 echo "The Wireshark package has been configured with the following options."
1995 echo " Build wireshark : $enable_wireshark"
1996 echo " Build tshark : $enable_tshark"
1997 echo " Build capinfos : $enable_capinfos"
1998 echo " Build editcap : $enable_editcap"
1999 echo " Build dumpcap : $enable_dumpcap"
2000 echo " Build mergecap : $enable_mergecap"
2001 echo " Build text2pcap : $enable_text2pcap"
2002 echo " Build idl2wrs : $enable_idl2wrs"
2003 echo " Build randpkt : $enable_randpkt"
2004 echo " Build dftest : $enable_dftest"
2005 echo " Build rawshark : $enable_rawshark"
2007 echo " Install dumpcap with capabilities : $setcap_message"
2008 echo " Install dumpcap setuid : $setuid_message"
2009 echo " Use dumpcap group : $dumpcap_group_message"
2010 echo " Use plugins : $have_plugins"
2011 echo " Use lua library : $lua_message"
2012 echo " Use python binding : $python_message"
2013 echo " Build rtp_player : $portaudio_message"
2014 echo " Use threads : $enable_threads"
2015 echo " Build profile binaries : $enable_profile_build"
2016 echo " Use pcap library : $want_pcap"
2017 echo " Use zlib library : $zlib_message"
2018 echo " Use pcre library : $pcre_message"
2019 echo " Use kerberos library : $krb5_message"
2020 echo " Use c-ares library : $c_ares_message"
2021 echo " Use GNU ADNS library : $adns_message"
2022 echo " Use SMI MIB library : $libsmi_message"
2023 echo " Use GNU crypto library : $gcrypt_message"
2024 echo " Use SSL crypto library : $ssl_message"
2025 echo " Use IPv6 name resolution : $enable_ipv6"
2026 echo " Use gnutls library : $tls_message"
2027 echo " Use POSIX capabilities library : $libcap_message"
2028 echo " Use GeoIP library : $geoip_message"