5 AC_INIT(wireshark, 1.5.1)
7 dnl Check for CPU / vendor / OS
8 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
9 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
10 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
13 dnl As nothing in the Wireshark is itself a build tool (we are not,
14 dnl for example, a compiler that generates machine code), we probably
15 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
16 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
17 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
18 dnl lemon, that need to be built for the build machine, not for the
19 dnl host machine, so we might need both.
21 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
23 dnl AC_CANONICAL_BUILD
27 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
31 dnl Checks for programs.
36 dnl Work around libtool bug (fixed in the version 1.5a?)
37 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
40 AC_PATH_PROG(PERL, perl)
42 # XXX - should autogen.sh check for YACC/Bison and Flex? A user building
43 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
44 # as the tarball should contain the results of running YACC/Bison on .y
45 # files and running Flex on .l files, but a user building from SVN
46 # will have to run YACC/Bison and Flex to process those files.
48 # On the other hand, what about users who use a distribution tarball to
49 # do development? They *shouldn't* - that's what the SVN repository is
50 # for - but they might. They'd get errors if they modify a .y or .l
51 # file and try to do a build - but the error should tell them that they
52 # need to get YACC/Bison and/or Flex.
54 # Then again, getting them shouldn't be too big of a burden.
56 # XXX - is the same true of pod2man and pod2html, or are they needed
57 # even when building from a distribution tarball?
61 AC_PATH_PROG(YACCDUMMY, $YACC)
62 if test "x$YACCDUMMY" = x
64 AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
67 AC_PATH_PROG(LEX, flex)
70 AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
72 AC_PATH_PROG(POD2MAN, pod2man)
73 if test "x$POD2MAN" = x
76 # The alternative is not to build the man pages....
78 AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
80 AC_PATH_PROG(POD2HTML, pod2html)
81 if test "x$POD2HTML" = x
84 # The alternative is not to build the HTML man pages....
86 AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
90 # XXX - this looks for various HTML viewers on the host, not the target;
91 # we really want to know what's available on the target, for cross-builds.
92 # That would probably require us to, at run time, look for xdg-open and,
93 # if we don't find it, look for mozilla, htmlview, etc.
95 AC_PATH_PROG(HTML_VIEWER, xdg-open)
96 if test "x$HTML_VIEWER" != x
99 # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
100 # Define some variable to be that, so we just run that?
102 AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
105 # XXX - we have to define HTML_VIEWER for the prefs.c code that
106 # sets the default value of the Web browser preference, even
107 # though that preference won't be offered.
109 AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
111 AC_PATH_PROG(HTML_VIEWER, htmlview)
112 if test "x$HTML_VIEWER" = x
114 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
116 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
120 AC_PATH_PROG(PYTHON, python)
130 if test "x$CC_FOR_BUILD" = x
134 AC_SUBST(CC_FOR_BUILD)
137 AC_PATH_PROG(DOXYGEN, doxygen)
138 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
139 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
143 AC_ARG_WITH([gnutls],
144 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
145 [use gnutls library @<:@default=yes@:>@]),
146 with_gnutls="$withval", with_gnutls="yes")
147 if test "x$with_gnutls" = "xyes"; then
148 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
150 echo "gnuTLS found, enabling ssl decryption"
151 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
155 echo "gnuTLS not found, disabling ssl decryption"
163 AC_ARG_WITH([gcrypt],
164 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
165 [use gcrypt library @<:@default=yes@:>@]),
166 with_gcrypt="$withval", with_gcrypt="yes")
167 if test "x$with_gcrypt" = "xyes"; then
168 AM_PATH_LIBGCRYPT(1.1.92,
170 echo "libgcrypt found, enabling ipsec decryption"
171 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
175 if test x$libgcrypt_config_prefix != x ; then
176 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
178 echo "libgcrypt not found, disabling ipsec decryption"
186 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
187 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
188 with_gtk3="$withval", with_gtk="no")
192 # FIXME: currently the path argument to with-libsmi is being ignored
196 AC_PATH_PROG(XSLTPROC, xsltproc)
197 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
198 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
201 AC_PATH_PROG(XMLLINT, xmllint)
202 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
203 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
205 # Check for fop (translate .fo to e.g. pdf)
206 AC_PATH_PROG(FOP, fop)
207 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
208 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
211 # Look for something to convert HTML to text (for docbook/)
213 AC_PATH_PROG(ELINKS, elinks)
214 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
215 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
217 ## links: Fails as used in docbook/Makefile.am
218 ## (Rather than fixing things we'll just disable the use of links).
219 ##AC_PATH_PROG(LINKS, links)
220 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
221 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
223 AC_PATH_PROG(LYNX, lynx)
224 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
225 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
228 # Check for hhc (html help compiler)
229 AC_PATH_PROG(HHC, hhc.exe)
230 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
231 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
233 # Check for packaging utilities
234 # For now, we check to see if the various packaging utilites are in our
235 # path. I'm too lazy to write code to go hunt for them. - Gerald
238 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
239 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
240 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
242 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
243 -a x$HAVE_PKGTRANS = xyes ; then
244 HAVE_SVR4_PACKAGING=yes
246 HAVE_SVR4_PACKAGING=no
248 AC_SUBST(HAVE_SVR4_PACKAGING)
251 AC_WIRESHARK_RPM_CHECK
255 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
258 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
259 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
260 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
262 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
263 -a x$HAVE_BLESS = xyes ; then
264 HAVE_OSX_PACKAGING=yes
266 HAVE_OSX_PACKAGING=no
268 AC_SUBST(HAVE_OSX_PACKAGING)
271 # Try to add some additional gcc checks to CFLAGS
273 AC_ARG_ENABLE(extra-gcc-checks,
274 AC_HELP_STRING( [--enable-extra-gcc-checks],
275 [Do additional -W checks in GCC. @<:@default=no@:>@]),
277 wireshark_extra_gcc_flags=$enableval
278 if test $enableval != no
280 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
281 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
282 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
283 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
284 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
285 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
286 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
287 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
288 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
289 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
290 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
291 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
292 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
293 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
294 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
295 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
296 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
297 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
298 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
299 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
300 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
301 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
303 # epan/dissectors/packet-ncp2222.inc blocks this one
306 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
307 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
308 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
310 # epan/dissectors/packet-afs.c blocks this one for now.
312 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
314 # More cleanup needed for this on LP64.
316 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
319 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
320 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
321 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
322 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
323 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
324 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
325 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
326 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
327 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
328 # Use the faster pre gcc 4.5 floating point precision
329 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
331 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
332 ###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,-M])
333 ###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--cref])
334 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
335 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
336 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
339 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
340 # so we can use _U_ to flag unused function arguments and not get warnings
341 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
342 # function argument will compile with non-GCC compilers.
344 if test "x$GCC" = "xyes" ; then
345 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
347 CFLAGS="-D_U_=\"\" $CFLAGS"
351 # If we're running gcc, will enable a barrier "stop on warning".
352 # This barrier is set for a very large part of the code. However, it is
353 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
355 warnings_as_errors_default="yes"
356 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
357 AC_ARG_ENABLE(warnings-as-errors,
358 AC_HELP_STRING( [--enable-warnings-as-errors],
359 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
361 if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
362 with_warnings_as_errors="yes"
365 with_warnings_as_errors="no"
369 if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
370 with_warnings_as_errors="yes"
373 with_warnings_as_errors="no"
377 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
380 # Add any platform-specific compiler flags needed.
382 AC_MSG_CHECKING(for platform-specific compiler flags)
383 if test "x$GCC" = "xyes" ; then
385 # GCC - do any platform-specific tweaking necessary.
389 # the X11 headers don't automatically include prototype info
390 # and a lot don't include the return type
391 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
392 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
396 # See comments above about Apple's lovely C compiler.
398 CFLAGS="-no-cpp-precomp $CFLAGS"
399 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
402 AC_MSG_RESULT(none needed)
407 # Not GCC - assume it's the vendor's compiler.
412 # HP's ANSI C compiler; flags suggested by Jost Martin.
413 # "-Ae" for ANSI C plus extensions such as "long long".
414 # "+O2", for optimization. XXX - works with "-g"?
416 CFLAGS="-Ae +O2 $CFLAGS"
417 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
421 # It may be called "cc", but it's really a GCC derivative
422 # with a problematic special precompiler and precompiled
423 # headers; turn off the special precompiler, as some
424 # apparently-legal code won't compile with its precompiled
427 CFLAGS="-no-cpp-precomp $CFLAGS"
428 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
431 AC_MSG_RESULT(none needed)
437 # Add any platform-specific linker flags needed.
439 AC_MSG_CHECKING(for platform-specific linker flags)
443 # Add -Wl,-single_module to the LDFLAGS used with shared
444 # libraries, to fix some error that show up in some cases;
445 # some Apple documentation recommends it for most shared
448 LDFLAGS_SHAREDLIB="-Wl,-single_module"
450 # Add -Wl,-search_paths_first to make sure that if we search
451 # directories A and B, in that order, for a given library, a
452 # non-shared version in directory A, rather than a shared
453 # version in directory B, is chosen (so we can use
454 # --with-pcap=/usr/local to force all programs to be linked
455 # with a static version installed in /usr/local/lib rather than
456 # the system version in /usr/lib).
458 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
459 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
463 # Shared libraries in cygwin/Win32 must never contain
466 LDFLAGS="$LDFLAGS -no-undefined"
467 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
470 AC_MSG_RESULT(none needed)
473 AC_SUBST(LDFLAGS_SHAREDLIB)
475 # Control silent compiling
476 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
479 # On OS X, if we find the headers for Core Foundation, Launch Services,
480 # and Core Services, add -framework options to link with Application
481 # Services (of which Launch Services is a subframework), Core Foundation
482 # (required by the Launch Services APIs), and Core Services, so we can
483 # use them to launch a Web browser from the Help menu and to use
484 # Gestalt() to get the Mac OS X version number.
489 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
491 ac_coreservices_frameworks="-framework CoreServices"
492 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
493 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
496 # include <CoreFoundation/CFBase.h>
497 # include <CoreFoundation/CFString.h>
498 # include <CoreFoundation/CFURL.h>
499 # include <ApplicationServices/ApplicationServices.h>
500 # include <CoreServices/CoreServices.h>
503 CFStringRef url_CFString;
508 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
509 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
510 status = LSOpenCFURLRef(url_CFURL, NULL);
512 Gestalt(gestaltSystemVersion, &os_version);
514 ac_cv_can_use_osx_frameworks=yes,
515 ac_cv_can_use_osx_frameworks=no,
516 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
517 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
518 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
519 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
520 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
528 AC_SUBST(CORESERVICES_FRAMEWORKS)
529 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
532 # If using $prefix we add "$prefix/include" to the include search path
533 # and "$prefix/lib" to the library search path.
535 if test "x$prefix" != "x" ; then
536 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
537 if test -d $prefix/include ; then
540 # Arrange that we search for header files in "$prefix/include", as
541 # various packages we use may have been installed under "$prefix/include".
543 CFLAGS="$CFLAGS -I$prefix/include"
544 CPPFLAGS="$CPPFLAGS -I$prefix/include"
547 # Arrange that we search for libraries in "$prefix/lib".
549 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
555 dnl Look in /usr/local for header files and libraries ?
556 dnl XXX FIXME don't include /usr/local if it is already in the system
557 dnl search path as this causes gcc 3.2 on Linux to complain about a change
558 dnl of the system search order for includes
559 AC_ARG_ENABLE(usr-local,
560 AC_HELP_STRING( [--enable-usr-local],
561 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
562 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
564 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
565 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
566 if test -d "/usr/local"; then
569 # Arrange that we search for header files in the source directory
570 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
571 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
572 # may have been installed under "/usr/local/include".
574 CFLAGS="$CFLAGS -I/usr/local/include"
575 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
578 # Arrange that we search for libraries in "/usr/local/lib".
580 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
589 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
594 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
595 if test x$LD_LIBRARY_PATH != x ; then
596 LIBS="$LIBS -R$LD_LIBRARY_PATH"
597 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
599 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
605 # Check for versions of "sed" inadequate to handle, in libtool, a list
606 # of object files as large as the list in Wireshark.
608 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
609 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
610 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
611 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
612 # is the only "sed" that comes with Solaris that can handle Wireshark.
614 # Add any checks here that are necessary for other OSes.
616 AC_WIRESHARK_GNU_SED_CHECK
617 if test "$HAVE_GNU_SED" = no ; then
620 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
622 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
624 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
639 # Enable/disable tshark
641 AC_ARG_ENABLE(wireshark,
642 AC_HELP_STRING( [--enable-wireshark],
643 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
644 enable_wireshark=$enableval,enable_wireshark=yes)
646 AC_ARG_ENABLE(threads,
647 AC_HELP_STRING( [--enable-threads],
648 [use threads in wireshark. @<:@default=no@:>@]),
649 enable_threads=$enableval,enable_threads=no)
650 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
652 AC_ARG_ENABLE(profile-build,
653 AC_HELP_STRING( [--enable-profile-build],
654 [build profile-ready binaries. @<:@default=no@:>@]),
655 enable_profile_build=$enableval,enable_profile_build=no)
656 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
657 AC_MSG_CHECKING(if profile builds must be generated)
658 if test "x$enable_profile_build" = "xyes" ; then
659 if test "x$GCC" = "xyes" ; then
661 CFLAGS=" -pg $CFLAGS"
664 echo "Building profile binaries currently only supported for GCC."
670 # Create DATAFILE_DIR #define for config.h
671 datafiledir=$datadir/wireshark
673 test "x$prefix" = xNONE && prefix=$ac_default_prefix
674 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
675 # Ugly hack, but I don't see how this problem can be solved
676 # properly that DATAFILE_DIR had a value starting with
677 # "${prefix}/" instead of e.g. "/usr/local/"
678 eval eval echo "$datafiledir"
680 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
682 # Create DOC_DIR #define for config.h
684 test "x$prefix" = xNONE && prefix=$ac_default_prefix
685 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
686 # Ugly hack, but I don't see how this problem can be solved
687 # properly that DOC_DIR had a value starting with
688 # "${prefix}/" instead of e.g. "/usr/local/"
689 eval eval echo "$docdir"
691 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
693 # GTK checks; we require GTK+ 2.4 or later.
694 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
695 # programs to be built with GTK+.
697 if test "x$enable_wireshark" = "xyes"; then
698 if test "x$with_gtk3" = "xyes"; then
699 AM_PATH_GTK_3_0(3.0.0,
701 CFLAGS="$CFLAGS $GTK_CFLAGS"
702 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
703 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
704 ], GTK_OK=no, gthread)
707 AM_PATH_GTK_2_0(2.4.0,
709 CFLAGS="$CFLAGS $GTK_CFLAGS"
710 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
711 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
712 ], GTK_OK=no, gthread)
718 # GLib checks; we require GLib 2.4 or later, and require gmodule
719 # support, as we need that for dynamically loading plugins.
720 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
721 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
722 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
723 # GLIB_CFLAGS to CFLAGS.
724 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
725 # set when generating the Makefile, so we can make programs that require
726 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
727 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
728 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
729 # programs to be built with GLib.
731 if test "$GTK_OK" = "no" ; then
733 # We don't have GTK+.
734 # If they didn't explicitly say "--disable-wireshark", fail (so
735 # that, unless they explicitly indicated that they don't want
736 # Wireshark, we stop so they know they won't be getting
737 # Wireshark unless they fix the GTK+ problem).
739 if test "x$enable_wireshark" = "xyes"; then
740 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
745 AM_PATH_GLIB_2_0(2.4.0,
747 CFLAGS="$CFLAGS $GLIB_CFLAGS"
748 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
749 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
752 # We have GTK+, and thus will be building Wireshark unless the
753 # user explicitly disabled it.
755 wireshark_bin="wireshark\$(EXEEXT)"
756 wireshark_man="wireshark.1"
757 wireshark_SUBDIRS="codecs gtk"
758 # Don't use GLIB_CFLAGS
759 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
763 # Check whether GLib includes GRegex support.
764 # We just assume that everybody builds GLib 2.14.0 and later
765 # with GRegex support; it's possible to compile GLib without
766 # GRegex but it doesn't look as if anyone does.
768 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
769 if test x$PKG_CONFIG != xno ; then
770 ## don't try to run the test against uninstalled libtool libs
771 if $PKG_CONFIG --uninstalled $pkg_config_args; then
772 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
776 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
781 AC_MSG_RESULT($have_gregex)
785 # Check whether GLib modules are supported, to determine whether we
786 # can support plugins.
788 AC_MSG_CHECKING(whether GLib supports loadable modules)
789 ac_save_CFLAGS="$CFLAGS"
791 CFLAGS="$CFLAGS $GLIB_CFLAGS"
792 LIBS="$GLIB_LIBS $LIBS"
802 if (g_module_supported())
803 return 0; /* success */
805 return 1; /* failure */
807 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
808 [echo $ac_n "cross compiling; assumed OK... $ac_c"
809 ac_cv_glib_supports_modules=yes])
810 CFLAGS="$ac_save_CFLAGS"
812 if test "$ac_cv_glib_supports_modules" = yes ; then
821 # If we have <dlfcn.h>, check whether we can use dladdr to find a
822 # filename (hopefully, a full pathname, but no guarantees) for
825 if test "$ac_cv_header_dlfcn_h" = "yes"
827 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
828 ac_save_CFLAGS="$CFLAGS"
830 CFLAGS="$CFLAGS $GLIB_CFLAGS"
831 LIBS="$GLIB_LIBS $LIBS"
833 #define _GNU_SOURCE /* required on Linux, sigh */
841 if (!dladdr((void *)main, &info))
842 return 1; /* failure */
843 return 0; /* assume success */
845 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
846 [echo $ac_n "cross compiling; assumed OK... $ac_c"
847 ac_cv_dladdr_finds_executable_path=yes])
848 CFLAGS="$ac_save_CFLAGS"
850 if test x$ac_cv_dladdr_finds_executable_path = xyes
852 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
854 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
857 if test "x$no_gtk" != "xyes"
860 # We have GTK+; do we want the OS X integration functions and,
861 # if so, do we have them and, if so, which versions do we have,
862 # the old Carbon-based ones or the new Cocoa-based ones?
864 AC_MSG_CHECKING(whether to use OS X integration functions)
866 AC_ARG_WITH(osx-integration,
867 AC_HELP_STRING( [--with-osx-integration],
868 [use OS X integration functions (@<:@default=yes, if available@:>@]),
870 if test $withval = no
872 want_osx_integration=no
874 want_osx_integration=yes
877 want_osx_integration=yes
879 if test "x$want_osx_integration" = "xno"; then
883 AC_WIRESHARK_OSX_INTEGRATION_CHECK
887 AC_SUBST(wireshark_bin)
888 AC_SUBST(wireshark_man)
891 # Enable/disable tshark
893 AC_ARG_ENABLE(tshark,
894 AC_HELP_STRING( [--enable-tshark],
895 [build tshark. @<:@default=yes@:>@]),
896 tshark=$enableval,enable_tshark=yes)
898 if test "x$enable_tshark" = "xyes" ; then
899 tshark_bin="tshark\$(EXEEXT)"
900 tshark_man="tshark.1"
901 wiresharkfilter_man="wireshark-filter.4"
908 AC_SUBST(wiresharkfilter_man)
912 # Enable/disable editcap
914 AC_ARG_ENABLE(editcap,
915 AC_HELP_STRING( [--enable-editcap],
916 [build editcap. @<:@default=yes@:>@]),
917 enable_editcap=$enableval,enable_editcap=yes)
919 if test "x$enable_editcap" = "xyes" ; then
920 editcap_bin="editcap\$(EXEEXT)"
921 editcap_man="editcap.1"
926 AC_SUBST(editcap_bin)
927 AC_SUBST(editcap_man)
929 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
932 # Enable/disable capinfos
934 AC_ARG_ENABLE(capinfos,
935 AC_HELP_STRING( [--enable-capinfos],
936 [build capinfos. @<:@default=yes@:>@]),
937 enable_capinfos=$enableval,enable_capinfos=yes)
939 if test "x$enable_capinfos" = "xyes" ; then
940 capinfos_bin="capinfos\$(EXEEXT)"
941 capinfos_man="capinfos.1"
946 AC_SUBST(capinfos_bin)
947 AC_SUBST(capinfos_man)
950 # Enable/disable mergecap
952 AC_ARG_ENABLE(mergecap,
953 AC_HELP_STRING( [--enable-mergecap],
954 [build mergecap. @<:@default=yes@:>@]),
955 enable_mergecap=$enableval,enable_mergecap=yes)
957 if test "x$enable_mergecap" = "xyes" ; then
958 mergecap_bin="mergecap\$(EXEEXT)"
959 mergecap_man="mergecap.1"
964 AC_SUBST(mergecap_bin)
965 AC_SUBST(mergecap_man)
968 # Enable/disable text2pcap
970 AC_ARG_ENABLE(text2pcap,
971 AC_HELP_STRING( [--enable-text2pcap],
972 [build text2pcap. @<:@default=yes@:>@]),
973 text2pcap=$enableval,enable_text2pcap=yes)
975 if test "x$enable_text2pcap" = "xyes" ; then
976 text2pcap_bin="text2pcap\$(EXEEXT)"
977 text2pcap_man="text2pcap.1"
982 AC_SUBST(text2pcap_bin)
983 AC_SUBST(text2pcap_man)
985 # Enable/disable idl2wrs
987 AC_ARG_ENABLE(idl2wrs,
988 AC_HELP_STRING( [--enable-idl2wrs],
989 [build idl2wrs. @<:@default=yes@:>@]),
990 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
992 if test "x$enable_idl2wrs" = "xyes" ; then
993 idl2wrs_bin="idl2wrs"
994 idl2wrs_man="idl2wrs.1"
999 AC_SUBST(idl2wrs_bin)
1000 AC_SUBST(idl2wrs_man)
1003 # Enable/disable dftest
1005 AC_ARG_ENABLE(dftest,
1006 AC_HELP_STRING( [--enable-dftest],
1007 [build dftest. @<:@default=yes@:>@]),
1008 enable_dftest=$enableval,enable_dftest=yes)
1010 if test "x$enable_dftest" = "xyes" ; then
1011 dftest_bin="dftest\$(EXEEXT)"
1012 dftest_man="dftest.1"
1017 AC_SUBST(dftest_bin)
1018 AC_SUBST(dftest_man)
1021 # Enable/disable randpkt
1023 AC_ARG_ENABLE(randpkt,
1024 AC_HELP_STRING( [--enable-randpkt],
1025 [build randpkt. @<:@default=yes@:>@]),
1026 enable_randpkt=$enableval,enable_randpkt=yes)
1028 if test "x$enable_randpkt" = "xyes" ; then
1029 randpkt_bin="randpkt\$(EXEEXT)"
1030 randpkt_man="randpkt.1"
1035 AC_SUBST(randpkt_bin)
1036 AC_SUBST(randpkt_man)
1040 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1041 dnl "gethostbyname()".
1042 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1044 dnl Checks for "connect()", used as a proxy for "socket()" - and
1045 dnl "-lsocket", if we need it to get "connect()".
1046 AC_WIRESHARK_SOCKET_LIB_CHECK
1049 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1052 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1053 [use libpcap for packet capturing. @<:@default=yes@:>@]),
1055 if test $withval = no
1058 elif test $withval = yes
1069 if test "x$want_pcap" = "xno" ; then
1073 AC_WIRESHARK_PCAP_CHECK
1076 # Enable/disable dumpcap
1079 AC_MSG_CHECKING(whether to build dumpcap)
1081 AC_ARG_ENABLE(dumpcap,
1082 AC_HELP_STRING( [--enable-dumpcap],
1083 [build dumpcap. @<:@default=yes@:>@]),
1084 enable_dumpcap=$enableval,enable_dumpcap=yes)
1086 if test "x$enable_dumpcap" = "xyes" ; then
1087 if test "x$want_pcap" = "xno" ; then
1089 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1097 if test "x$enable_dumpcap" = "xyes" ; then
1098 dumpcap_bin="dumpcap\$(EXEEXT)"
1099 dumpcap_man="dumpcap.1"
1104 AC_SUBST(dumpcap_bin)
1105 AC_SUBST(dumpcap_man)
1107 # Enable/disable rawshark
1110 AC_MSG_CHECKING(whether to build rawshark)
1112 AC_ARG_ENABLE(rawshark,
1113 AC_HELP_STRING( [--enable-rawshark],
1114 [build rawshark. @<:@default=yes@:>@]),
1115 rawshark=$enableval,enable_rawshark=yes)
1117 if test "x$enable_rawshark" = "xyes" ; then
1118 if test "x$want_pcap" = "xno" ; then
1120 AC_MSG_RESULT(pcap not available - disabling rawshark)
1128 if test "x$enable_rawshark" = "xyes" ; then
1129 rawshark_bin="rawshark\$(EXEEXT)"
1130 rawshark_man="rawshark.1"
1135 AC_SUBST(rawshark_bin)
1136 AC_SUBST(rawshark_man)
1139 dnl pcap remote check
1140 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1142 AC_ARG_WITH(pcap-remote,
1143 AC_HELP_STRING([--with-pcap-remote],
1144 [use libpcap remote capturing (requires libpcap)]),
1146 if test $withval = no
1150 want_pcap_remote=yes
1155 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1159 AC_WIRESHARK_PCAP_REMOTE_CHECK
1163 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1166 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1167 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1169 if test $withval = no
1172 elif test $withval = yes
1181 # Use zlib if it's present, otherwise don't.
1183 want_zlib=ifavailable
1186 if test "x$want_zlib" = "xno" ; then
1190 AC_WIRESHARK_ZLIB_CHECK
1191 if test "x$want_zlib" = "xno" ; then
1192 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1196 if test "x$want_zlib" != "xno" ; then
1197 AC_CHECK_LIB(z, gzclearerr,
1199 AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
1204 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1207 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1208 [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@:>@]),
1210 if test $withval = no
1213 elif test $withval = yes
1222 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1224 if test $have_gregex = yes ; then
1227 want_pcre=ifavailable
1231 if test "x$want_pcre" = "xno" ; then
1235 AC_WIRESHARK_LIBPCRE_CHECK
1236 if test "x$want_pcre" = "xno" ; then
1237 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1243 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1246 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1247 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1249 if test $withval = no
1252 elif test $withval = yes
1261 # Use liblua by default
1263 want_lua=ifavailable
1266 if test "x$want_lua" = "xno" ; then
1270 AC_WIRESHARK_LIBLUA_CHECK
1271 if test "x$want_lua" = "xno" ; then
1272 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1275 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1279 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1281 AC_ARG_WITH(portaudio,
1282 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1283 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1285 if test $withval = no
1288 elif test $withval = yes
1293 portaudio_dir=$withval
1297 # Use libportaudio by default
1299 want_portaudio=ifavailable
1302 if test "x$want_portaudio" = "xno" ; then
1306 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1307 if test "x$want_portaudio" = "xno" ; then
1308 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1311 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1316 AC_HELP_STRING( [--enable-ipv6],
1317 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1318 enable_ipv6=$enableval,enable_ipv6=yes)
1320 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1321 if test "x$enable_ipv6" = "xno" ; then
1325 AC_WIRESHARK_IPV6_STACK
1329 dnl Check if dumpcap should be installed with filesystem capabilities
1330 AC_PATH_PROG(SETCAP, setcap)
1331 AC_ARG_ENABLE(setcap-install,
1332 AC_HELP_STRING( [--enable-setcap-install],
1333 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1334 enable_setcap_install=$enableval,enable_setcap_install=no)
1336 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1337 if test "x$enable_setcap_install" = "xno" ; then
1340 if test "x$SETCAP" = "x" ; then
1341 AC_MSG_RESULT(no. Setcap not found)
1342 elif test "x$enable_dumpcap" = "xno" ; then
1343 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1349 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1351 dnl Check if dumpcap should be installed setuid
1352 AC_ARG_ENABLE(setuid-install,
1353 AC_HELP_STRING( [--enable-setuid-install],
1354 [install dumpcap as setuid @<:@default=no@:>@]),
1355 enable_setuid_install=$enableval,enable_setuid_install=no)
1357 AC_MSG_CHECKING(whether to install dumpcap setuid)
1358 if test "x$enable_setuid_install" = "xno" ; then
1361 if test "x$enable_setcap_install" = "xyes" ; then
1362 enable_setuid_install=no
1363 AC_MSG_RESULT(no; using setcap instead)
1364 elif test "x$enable_dumpcap" = "xno" ; then
1365 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1371 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1372 AC_CHECK_FUNCS(setresuid setresgid)
1374 dnl ...but our Network Operations group is named "no"!
1376 AC_ARG_WITH(dumpcap-group,
1377 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1378 [restrict dumpcap to GROUP]),
1380 if test "x$withval" = "xyes"; then
1381 AC_MSG_ERROR([No dumpcap group specified.])
1382 elif test "x$withval" != "xno"; then
1383 AC_MSG_RESULT($withval)
1384 DUMPCAP_GROUP="$withval"
1387 AC_SUBST(DUMPCAP_GROUP)
1388 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1390 dnl libcap (not libpcap) check
1392 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1395 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1396 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1398 if test "x$withval" = "xno"; then
1400 elif test "x$withval" = "xyes"; then
1402 elif test -d "$withval"; then
1404 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1407 if test "x$with_libcap" = "xno" ; then
1411 AC_WIRESHARK_LIBCAP_CHECK
1413 AC_SUBST(LIBCAP_LIBS)
1415 dnl Checks for header files.
1416 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1417 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)
1418 AC_CHECK_HEADERS(netinet/in.h)
1419 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1423 AC_MSG_CHECKING(whether to use SSL library)
1426 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1427 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1429 if test "x$withval" = "xno"; then
1431 elif test "x$withval" = "xyes"; then
1433 elif test -d "$withval"; then
1435 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1440 if test "x$want_ssl" = "xyes"; then
1442 AC_CHECK_LIB(crypto,EVP_md5,
1447 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1455 AC_MSG_CHECKING(whether to use kerberos)
1458 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1459 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1461 if test $withval = no
1464 elif test $withval = yes
1473 # Use kerberos if specified, otherwise don't.
1475 want_krb5=ifavailable
1478 if test "x$want_krb5" = "xno" ; then
1482 AC_WIRESHARK_KRB5_CHECK
1488 AC_MSG_CHECKING(whether to use the c-ares library if available)
1491 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1492 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1494 if test "x$withval" = "xno"; then
1496 elif test "x$withval" = "xyes"; then
1498 elif test -d "$withval"; then
1500 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1503 if test "x$want_c_ares" = "xno" ; then
1507 AC_WIRESHARK_C_ARES_CHECK
1509 AC_SUBST(C_ARES_LIBS)
1513 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1516 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1517 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1519 if test "x$withval" = "xno"; then
1521 elif test "x$withval" = "xyes"; then
1523 elif test -d "$withval"; then
1525 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1528 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1532 AC_WIRESHARK_ADNS_CHECK
1538 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1541 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1542 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1544 if test "x$withval" = "xno"; then
1546 elif test "x$withval" = "xyes"; then
1548 elif test -d "$withval"; then
1550 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1553 if test "x$want_geoip" = "xno"; then
1557 AC_WIRESHARK_GEOIP_CHECK
1559 AC_SUBST(GEOIP_LIBS)
1561 dnl Python devel Check
1563 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1564 [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1566 pythondir='${libdir}/wireshark/python/${VERSION}'
1567 if test "x$withval" = "xno"; then
1569 elif test "x$withval" != "xyes"; then
1570 pythondir="$withval"
1572 AC_WIRESHARK_PYTHON_CHECK
1575 AC_WIRESHARK_PYTHON_CHECK
1578 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1582 # Define WS_VAR_IMPORT appropriately for declarations of external
1583 # variables exported from dynamically-linked libraries.
1585 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1588 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1589 # never return (just like Charlie on the MTA).
1591 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1592 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1593 # follow the function name, so we need two different flavors of
1596 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1598 AC_ARG_ENABLE(airpcap,
1599 AC_HELP_STRING( [--enable-airpcap],
1600 [use airpcap in wireshark. @<:@default=yes@:>@]),
1601 enable_airpcap=$enableval
1602 if test x$enable_airpcap != xno; then
1603 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1607 # Define HAVE_AIRPDCAP
1608 # We'll want to remove this eventually.
1610 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1612 dnl Checks for typedefs, structures, and compiler characteristics.
1615 # Check how we can get the time zone abbreviation
1616 AC_WIRESHARK_TIMEZONE_ABBREV
1618 # We need to know whether "struct sockaddr" has an "sa_len" member
1619 # for get_interface_list().
1621 AC_WIRESHARK_STRUCT_SA_LEN
1623 # We must know our byte order
1626 # Checks whether "-traditional" is needed when using "ioctl".
1627 # XXX - do we need this?
1628 AC_PROG_GCC_TRADITIONAL
1631 AC_CHECK_FUNC(getopt,
1633 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1635 GETOPT_LO="wsgetopt.lo"
1637 if test "$ac_cv_func_getopt" = no ; then
1638 GETOPT_LO="wsgetopt.lo"
1640 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1643 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1644 [STRERROR_LO="strerror.lo"
1645 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1647 if test "$ac_cv_func_strerror" = no ; then
1648 STRERROR_LO="strerror.lo"
1650 AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
1651 AC_SUBST(STRERROR_LO)
1653 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1654 STRNCASECMP_LO="strncasecmp.lo")
1655 if test "$ac_cv_func_strncasecmp" = no ; then
1656 STRNCASECMP_LO="strncasecmp.lo"
1658 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1659 AC_SUBST(STRNCASECMP_LO)
1661 AC_CHECK_FUNCS(mkstemp mkdtemp)
1663 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1665 if test "$have_inet_aton" = no; then
1666 INET_ATON_LO="inet_aton.lo"
1667 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1671 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1672 AC_SUBST(INET_ATON_LO)
1674 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1675 dnl check for pre-BIND82 inet_pton() bug.
1676 AC_MSG_CHECKING(for broken inet_pton)
1677 AC_TRY_RUN([#include <sys/types.h>
1678 #include <sys/socket.h>
1679 #include <netinet/in.h>
1680 #include <arpa/inet.h>
1685 /* this should return 0 (error) */
1686 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1690 }], [AC_MSG_RESULT(ok);
1691 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1692 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1693 have_inet_pton=no])],
1695 if test "$have_inet_pton" = no; then
1696 INET_PTON_LO="inet_pton.lo"
1700 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1701 AC_SUBST(INET_PTON_LO)
1703 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1704 AC_MSG_CHECKING([for inet_ntop prototype])
1705 AC_TRY_COMPILE([#include <stdio.h>
1706 #include <sys/types.h>
1707 #include <sys/socket.h>
1708 #include <netinet/in.h>
1709 #include <arpa/inet.h>
1711 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1713 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1714 [Define if inet_ntop() prototype exists])], [
1715 AC_TRY_COMPILE([#include <stdio.h>
1716 #include <sys/types.h>
1717 #include <sys/socket.h>
1718 #include <netinet/in.h>
1719 #include <arpa/inet.h>
1721 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1723 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1724 [Define if inet_ntop() prototype exists])], [
1725 AC_MSG_RESULT(no)])])
1727 INET_NTOP_LO="inet_ntop.lo"
1728 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1729 [Define if inet/v6defs.h needs to be included])])
1730 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1731 AC_SUBST(INET_NTOP_LO)
1733 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1734 [STRPTIME_LO="strptime.lo"
1735 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1737 if test "$ac_cv_func_strptime" = no ; then
1738 STRPTIME_LO="strptime.lo"
1740 AC_SUBST(STRPTIME_C)
1741 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1742 AC_SUBST(STRPTIME_LO)
1744 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1745 AC_CHECK_FUNCS(issetugid)
1746 AC_CHECK_FUNCS(mmap mprotect sysconf)
1747 AC_CHECK_FUNCS(strtoll)
1749 dnl blank for now, but will be used in future
1750 AC_SUBST(wireshark_SUBDIRS)
1753 dnl check whether plugins should be enabled and, if they should be,
1754 dnl check for plugins directory - stolen from Amanda's configure.in
1756 dnl we don't wish to expand ${libdir} yet
1757 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1758 AC_ARG_WITH(plugins,
1759 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1760 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1762 if test "x$withval" = "xno"; then
1764 elif test "x$have_plugins" = "xno"; then
1765 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1766 elif test "x$withval" != "xyes"; then
1767 plugindir="$withval"
1770 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1771 if test x$have_plugins = xyes
1773 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1776 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1779 # The plugin dissectors reside in ./plugins/PROTO/
1782 AC_SUBST(PLUGIN_LIBS)
1786 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1787 # (autoconf? automake? libtool?) - with the newer version(s), it's
1788 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1790 # With older version(s) of those tool(s), however, it's not just an
1791 # alias, and the configure scripts don't work without it.
1794 AC_SUBST(LIBTOOL_DEPS)
1796 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1797 if test x$enable_static = xyes -a x$have_plugins = xyes
1799 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1801 AC_SUBST(ENABLE_STATIC)
1803 dnl Save the cacheable configure results to config.cache before recursing
1806 sinclude(plugins/Custom.m4) dnl
1807 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1809 AM_CONFIG_HEADER(config.h)
1814 asn1/acp133/Makefile
1816 asn1/ansi_map/Makefile
1817 asn1/ansi_tcap/Makefile
1820 asn1/charging_ase/Makefile
1833 asn1/gprscdr/Makefile
1834 asn1/gsm_map/Makefile
1843 asn1/h450-ros/Makefile
1846 asn1/HI2Operations/Makefile
1850 asn1/kerberos/Makefile
1852 asn1/logotypecertextn/Makefile
1853 asn1/lte-rrc/Makefile
1855 asn1/mpeg-audio/Makefile
1856 asn1/mpeg-pes/Makefile
1858 asn1/ns_cert_exts/Makefile
1866 asn1/pkcs12/Makefile
1867 asn1/pkinit/Makefile
1868 asn1/pkixac/Makefile
1869 asn1/pkix1explicit/Makefile
1870 asn1/pkix1implicit/Makefile
1871 asn1/pkixproxy/Makefile
1872 asn1/pkixqualified/Makefile
1873 asn1/pkixtsp/Makefile
1876 asn1/q932-ros/Makefile
1889 asn1/spnego/Makefile
1896 asn1/wlancertextn/Makefile
1898 asn1/x509af/Makefile
1899 asn1/x509ce/Makefile
1900 asn1/x509if/Makefile
1901 asn1/x509sat/Makefile
1909 epan/dfilter/Makefile
1910 epan/dissectors/Makefile
1911 epan/dissectors/dcerpc/Makefile
1912 epan/dissectors/pidl/Makefile
1913 epan/ftypes/Makefile
1915 epan/wspython/Makefile
1921 packaging/macosx/Info.plist
1922 packaging/macosx/Makefile
1923 packaging/nsis/Makefile
1924 packaging/rpm/Makefile
1925 packaging/rpm/SPECS/Makefile
1926 packaging/rpm/SPECS/wireshark.spec
1927 packaging/svr4/Makefile
1928 packaging/svr4/checkinstall
1929 packaging/svr4/pkginfo
1931 plugins/asn1/Makefile
1932 plugins/docsis/Makefile
1933 plugins/ethercat/Makefile
1934 plugins/giop/Makefile
1935 plugins/gryphon/Makefile
1936 plugins/interlink/Makefile
1937 plugins/irda/Makefile
1938 plugins/m2m/Makefile
1939 plugins/mate/Makefile
1940 plugins/opcua/Makefile
1941 plugins/profinet/Makefile
1942 plugins/sercosiii/Makefile
1943 plugins/stats_tree/Makefile
1944 plugins/unistim/Makefile
1945 plugins/wimax/Makefile
1946 plugins/wimaxasncp/Makefile
1949 tools/lemon/Makefile
1954 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1959 if test "x$enable_setcap_install" = "xyes" ; then
1960 setcap_message="yes"
1966 if test "x$enable_setuid_install" = "xyes" ; then
1967 setuid_message="yes"
1972 if test "x$DUMPCAP_GROUP" = "x" ; then
1973 dumpcap_group_message="(none)"
1975 dumpcap_group_message="$DUMPCAP_GROUP"
1978 if test "x$want_zlib" = "xno" ; then
1984 if test "x$want_pcre" = "xno" ; then
1985 if test $have_gregex = yes
1987 pcre_message="no (using GRegex instead)"
1995 if test "x$want_lua" = "xyes" ; then
2001 if test "x$want_python" = "xyes"; then
2002 python_message="yes"
2007 if test "x$want_portaudio" = "xyes" ; then
2008 portaudio_message="yes"
2010 portaudio_message="no"
2013 if test "x$want_ssl" = "xno" ; then
2019 if test "x$want_krb5" = "xno" ; then
2022 krb5_message="yes ($ac_krb5_version)"
2025 if test "x$have_good_c_ares" = "xyes" ; then
2026 c_ares_message="yes"
2031 if test "x$have_good_adns" = "xyes" ; then
2034 if test "x$have_good_c_ares" = "xyes" ; then
2035 adns_message="no (using c-ares instead)"
2041 if test "x$have_good_libcap" = "xyes" ; then
2042 libcap_message="yes"
2047 if test "x$have_good_geoip" = "xyes" ; then
2054 echo "The Wireshark package has been configured with the following options."
2055 echo " Build wireshark : $enable_wireshark"
2056 echo " Build tshark : $enable_tshark"
2057 echo " Build capinfos : $enable_capinfos"
2058 echo " Build editcap : $enable_editcap"
2059 echo " Build dumpcap : $enable_dumpcap"
2060 echo " Build mergecap : $enable_mergecap"
2061 echo " Build text2pcap : $enable_text2pcap"
2062 echo " Build idl2wrs : $enable_idl2wrs"
2063 echo " Build randpkt : $enable_randpkt"
2064 echo " Build dftest : $enable_dftest"
2065 echo " Build rawshark : $enable_rawshark"
2067 echo " Install dumpcap with capabilities : $setcap_message"
2068 echo " Install dumpcap setuid : $setuid_message"
2069 echo " Use dumpcap group : $dumpcap_group_message"
2070 echo " Use plugins : $have_plugins"
2071 echo " Use lua library : $lua_message"
2072 echo " Use python binding : $python_message"
2073 echo " Build rtp_player : $portaudio_message"
2074 echo " Use threads : $enable_threads"
2075 echo " Build profile binaries : $enable_profile_build"
2076 echo " Use pcap library : $want_pcap"
2077 echo " Use zlib library : $zlib_message"
2078 echo " Use pcre library : $pcre_message"
2079 echo " Use kerberos library : $krb5_message"
2080 echo " Use c-ares library : $c_ares_message"
2081 echo " Use GNU ADNS library : $adns_message"
2082 echo " Use SMI MIB library : $libsmi_message"
2083 echo " Use GNU crypto library : $gcrypt_message"
2084 echo " Use SSL crypto library : $ssl_message"
2085 echo " Use IPv6 name resolution : $enable_ipv6"
2086 echo " Use gnutls library : $tls_message"
2087 echo " Use POSIX capabilities library : $libcap_message"
2088 echo " Use GeoIP library : $geoip_message"