5 AC_INIT(wireshark, 1.5.0)
7 dnl Check for CPU / vendor / OS
8 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
9 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
10 dnl needs. Using `AC_CANONICAL_TARGET' is enough to run the two other
13 dnl As nothing in the Wireshark is itself a build tool (we are not,
14 dnl for example, a compiler that generates machine code), we probably
15 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
16 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
17 dnl AC_CANONICAL_HOST - instead. Note that we do have tools, such as
18 dnl lemon, that need to be built for the build machine, not for the
19 dnl host machine, so we might need both.
21 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
23 dnl AC_CANONICAL_BUILD
27 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
31 dnl Checks for programs.
36 dnl Work around libtool bug (fixed in the version 1.5a?)
37 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
40 AC_PATH_PROG(PERL, perl)
42 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)
305 # Use the faster pre gcc 4.5 floating point precision
306 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
308 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
309 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
310 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
311 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
314 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
315 # so we can use _U_ to flag unused function arguments and not get warnings
316 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
317 # function argument will compile with non-GCC compilers.
319 if test "x$GCC" = "xyes" ; then
320 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
322 CFLAGS="-D_U_=\"\" $CFLAGS"
326 # If we're running gcc, will enable a barrier "stop on warning".
327 # This barrier is set for a very large part of the code. However, it is
328 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
330 warnings_as_errors_default="yes"
331 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
332 AC_ARG_ENABLE(warnings-as-errors,
333 AC_HELP_STRING( [--enable-warnings-as-errors],
334 [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
336 if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
337 with_warnings_as_errors="yes"
340 with_warnings_as_errors="no"
344 if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
345 with_warnings_as_errors="yes"
348 with_warnings_as_errors="no"
352 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
355 # Add any platform-specific compiler flags needed.
357 AC_MSG_CHECKING(for platform-specific compiler flags)
358 if test "x$GCC" = "xyes" ; then
360 # GCC - do any platform-specific tweaking necessary.
364 # the X11 headers don't automatically include prototype info
365 # and a lot don't include the return type
366 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
367 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
371 # See comments above about Apple's lovely C compiler.
373 CFLAGS="-no-cpp-precomp $CFLAGS"
374 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
377 AC_MSG_RESULT(none needed)
382 # Not GCC - assume it's the vendor's compiler.
387 # HP's ANSI C compiler; flags suggested by Jost Martin.
388 # "-Ae" for ANSI C plus extensions such as "long long".
389 # "+O2", for optimization. XXX - works with "-g"?
391 CFLAGS="-Ae +O2 $CFLAGS"
392 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
396 # It may be called "cc", but it's really a GCC derivative
397 # with a problematic special precompiler and precompiled
398 # headers; turn off the special precompiler, as some
399 # apparently-legal code won't compile with its precompiled
402 CFLAGS="-no-cpp-precomp $CFLAGS"
403 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
406 AC_MSG_RESULT(none needed)
412 # Add any platform-specific linker flags needed.
414 AC_MSG_CHECKING(for platform-specific linker flags)
418 # Add -Wl,-single_module to the LDFLAGS used with shared
419 # libraries, to fix some error that show up in some cases;
420 # some Apple documentation recommends it for most shared
423 LDFLAGS_SHAREDLIB="-Wl,-single_module"
425 # Add -Wl,-search_paths_first to make sure that if we search
426 # directories A and B, in that order, for a given library, a
427 # non-shared version in directory A, rather than a shared
428 # version in directory B, is chosen (so we can use
429 # --with-pcap=/usr/local to force all programs to be linked
430 # with a static version installed in /usr/local/lib rather than
431 # the system version in /usr/lib).
433 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
434 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
438 # Shared libraries in cygwin/Win32 must never contain
441 LDFLAGS="$LDFLAGS -no-undefined"
442 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
445 AC_MSG_RESULT(none needed)
448 AC_SUBST(LDFLAGS_SHAREDLIB)
450 # Control silent compiling
451 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
454 # On OS X, if we find the headers for Core Foundation, Launch Services,
455 # and Core Services, add -framework options to link with Application
456 # Services (of which Launch Services is a subframework), Core Foundation
457 # (required by the Launch Services APIs), and Core Services, so we can
458 # use them to launch a Web browser from the Help menu and to use
459 # Gestalt() to get the Mac OS X version number.
464 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
466 ac_frameworks="-framework ApplicationServices -framework CoreFoundation -framework CoreServices"
467 LIBS="$LIBS $ac_frameworks"
470 # include <CoreFoundation/CFBase.h>
471 # include <CoreFoundation/CFString.h>
472 # include <CoreFoundation/CFURL.h>
473 # include <ApplicationServices/ApplicationServices.h>
474 # include <CoreServices/CoreServices.h>
477 CFStringRef url_CFString;
482 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
483 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
484 status = LSOpenCFURLRef(url_CFURL, NULL);
486 Gestalt(gestaltSystemVersion, &os_version);
488 ac_cv_can_use_osx_frameworks=yes,
489 ac_cv_can_use_osx_frameworks=no,
490 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
491 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
492 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
493 FRAMEWORKS="$ac_frameworks"
504 # If using $prefix we add "$prefix/include" to the include search path
505 # and "$prefix/lib" to the library search path.
507 if test "x$prefix" != "x" ; then
508 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
509 if test -d $prefix/include ; then
512 # Arrange that we search for header files in "$prefix/include", as
513 # various packages we use may have been installed under "$prefix/include".
515 CFLAGS="$CFLAGS -I$prefix/include"
516 CPPFLAGS="$CPPFLAGS -I$prefix/include"
519 # Arrange that we search for libraries in "$prefix/lib".
521 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
527 dnl Look in /usr/local for header files and libraries ?
528 dnl XXX FIXME don't include /usr/local if it is already in the system
529 dnl search path as this causes gcc 3.2 on Linux to complain about a change
530 dnl of the system search order for includes
531 AC_ARG_ENABLE(usr-local,
532 AC_HELP_STRING( [--enable-usr-local],
533 [look for headers and libs in /usr/local tree. @<:@default=yes@:>@]),
534 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
536 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
537 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
540 # Arrange that we search for header files in the source directory
541 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
542 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
543 # may have been installed under "/usr/local/include".
545 CFLAGS="$CFLAGS -I/usr/local/include"
546 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
549 # Arrange that we search for libraries in "/usr/local/lib".
551 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
557 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
562 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
563 if test x$LD_LIBRARY_PATH != x ; then
564 LIBS="$LIBS -R$LD_LIBRARY_PATH"
565 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
567 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
573 # Check for versions of "sed" inadequate to handle, in libtool, a list
574 # of object files as large as the list in Wireshark.
576 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
577 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
578 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
579 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
580 # is the only "sed" that comes with Solaris that can handle Wireshark.
582 # Add any checks here that are necessary for other OSes.
584 AC_WIRESHARK_GNU_SED_CHECK
585 if test "$HAVE_GNU_SED" = no ; then
588 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
590 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
592 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
607 # Enable/disable tshark
609 AC_ARG_ENABLE(wireshark,
610 AC_HELP_STRING( [--enable-wireshark],
611 [build GTK+-based wireshark. @<:@default=yes, if GTK+ available@:>@]),
612 enable_wireshark=$enableval,enable_wireshark=yes)
614 AC_ARG_ENABLE(threads,
615 AC_HELP_STRING( [--enable-threads],
616 [use threads in wireshark. @<:@default=no@:>@]),
617 enable_threads=$enableval,enable_threads=no)
618 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
620 AC_ARG_ENABLE(profile-build,
621 AC_HELP_STRING( [--enable-profile-build],
622 [build profile-ready binaries. @<:@default=no@:>@]),
623 enable_profile_build=$enableval,enable_profile_build=no)
624 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
625 AC_MSG_CHECKING(if profile builds must be generated)
626 if test "x$enable_profile_build" = "xyes" ; then
627 if test "x$GCC" = "xyes" ; then
629 CFLAGS=" -pg $CFLAGS"
632 echo "Building profile binaries currently only supported for GCC."
638 # Create DATAFILE_DIR #define for config.h
639 datafiledir=$datadir/wireshark
641 test "x$prefix" = xNONE && prefix=$ac_default_prefix
642 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
643 # Ugly hack, but I don't see how this problem can be solved
644 # properly that DATAFILE_DIR had a value starting with
645 # "${prefix}/" instead of e.g. "/usr/local/"
646 eval eval echo "$datafiledir"
648 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
650 # GTK checks; we require GTK+ 2.4 or later.
651 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
652 # programs to be built with GTK+.
654 if test "x$enable_wireshark" = "xyes"; then
655 AM_PATH_GTK_2_0(2.4.0,
657 CFLAGS="$CFLAGS $GTK_CFLAGS"
658 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
659 ], GTK_OK=no, gthread)
664 # GLib checks; we require GLib 2.4 or later, and require gmodule
665 # support, as we need that for dynamically loading plugins.
666 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
667 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
668 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
669 # GLIB_CFLAGS to CFLAGS.
670 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
671 # set when generating the Makefile, so we can make programs that require
672 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
673 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
674 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
675 # programs to be built with GLib.
677 if test "$GTK_OK" = "no" ; then
679 # We don't have GTK+.
680 # If they didn't explicitly say "--disable-wireshark", fail (so
681 # that, unless they explicitly indicated that they don't want
682 # Wireshark, we stop so they know they won't be getting
683 # Wireshark unless they fix the GTK+ problem).
685 if test "x$enable_wireshark" = "xyes"; then
686 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
691 AM_PATH_GLIB_2_0(2.4.0,
693 CFLAGS="$CFLAGS $GLIB_CFLAGS"
694 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
695 ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
698 # We have GTK+, and thus will be building Wireshark unless the
699 # user explicitly disabled it.
701 wireshark_bin="wireshark\$(EXEEXT)"
702 wireshark_man="wireshark.1"
703 wireshark_SUBDIRS="codecs gtk"
704 # Don't use GLIB_CFLAGS
705 AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
709 # Check whether GLib includes GRegex support.
710 # We just assume that everybody builds GLib 2.14.0 and later
711 # with GRegex support; it's possible to compile GLib without
712 # GRegex but it doesn't look as if anyone does.
714 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
715 if test x$PKG_CONFIG != xno ; then
716 ## don't try to run the test against uninstalled libtool libs
717 if $PKG_CONFIG --uninstalled $pkg_config_args; then
718 echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
722 if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
727 AC_MSG_RESULT($have_gregex)
731 # Check whether GLib modules are supported, to determine whether we
732 # can support plugins.
734 AC_MSG_CHECKING(whether GLib supports loadable modules)
735 ac_save_CFLAGS="$CFLAGS"
737 CFLAGS="$CFLAGS $GLIB_CFLAGS"
738 LIBS="$GLIB_LIBS $LIBS"
748 if (g_module_supported())
749 return 0; /* success */
751 return 1; /* failure */
753 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
754 [echo $ac_n "cross compiling; assumed OK... $ac_c"
755 ac_cv_glib_supports_modules=yes])
756 CFLAGS="$ac_save_CFLAGS"
758 if test "$ac_cv_glib_supports_modules" = yes ; then
767 # If we have <dlfcn.h>, check whether we can use dladdr to find a
768 # filename (hopefully, a full pathname, but no guarantees) for
771 if test "$ac_cv_header_dlfcn_h" = "yes"
773 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
774 ac_save_CFLAGS="$CFLAGS"
776 CFLAGS="$CFLAGS $GLIB_CFLAGS"
777 LIBS="$GLIB_LIBS $LIBS"
779 #define _GNU_SOURCE /* required on Linux, sigh */
787 if (!dladdr((void *)main, &info))
788 return 1; /* failure */
789 return 0; /* assume success */
791 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
792 [echo $ac_n "cross compiling; assumed OK... $ac_c"
793 ac_cv_dladdr_finds_executable_path=yes])
794 CFLAGS="$ac_save_CFLAGS"
796 if test x$ac_cv_dladdr_finds_executable_path = xyes
798 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
800 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
803 if test "x$no_gtk" != "xyes"
806 # We have GTK+; do we want the OS X integration functions and,
807 # if so, do we have them and, if so, which versions do we have,
808 # the old Carbon-based ones or the new Cocoa-based ones?
810 AC_MSG_CHECKING(whether to use OS X integration functions)
812 AC_ARG_WITH(osx-integration,
813 AC_HELP_STRING( [--with-osx-integration],
814 [use OS X integration functions (@<:@default=yes, if available@:>@]),
816 if test $withval = no
818 want_osx_integration=no
820 want_osx_integration=yes
823 want_osx_integration=yes
825 if test "x$want_osx_integration" = "xno"; then
829 AC_WIRESHARK_OSX_INTEGRATION_CHECK
833 AC_SUBST(wireshark_bin)
834 AC_SUBST(wireshark_man)
837 # Enable/disable tshark
839 AC_ARG_ENABLE(tshark,
840 AC_HELP_STRING( [--enable-tshark],
841 [build tshark. @<:@default=yes@:>@]),
842 tshark=$enableval,enable_tshark=yes)
844 if test "x$enable_tshark" = "xyes" ; then
845 tshark_bin="tshark\$(EXEEXT)"
846 tshark_man="tshark.1"
847 wiresharkfilter_man="wireshark-filter.4"
854 AC_SUBST(wiresharkfilter_man)
858 # Enable/disable editcap
860 AC_ARG_ENABLE(editcap,
861 AC_HELP_STRING( [--enable-editcap],
862 [build editcap. @<:@default=yes@:>@]),
863 enable_editcap=$enableval,enable_editcap=yes)
865 if test "x$enable_editcap" = "xyes" ; then
866 editcap_bin="editcap\$(EXEEXT)"
867 editcap_man="editcap.1"
872 AC_SUBST(editcap_bin)
873 AC_SUBST(editcap_man)
875 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
878 # Enable/disable capinfos
880 AC_ARG_ENABLE(capinfos,
881 AC_HELP_STRING( [--enable-capinfos],
882 [build capinfos. @<:@default=yes@:>@]),
883 enable_capinfos=$enableval,enable_capinfos=yes)
885 if test "x$enable_capinfos" = "xyes" ; then
886 capinfos_bin="capinfos\$(EXEEXT)"
887 capinfos_man="capinfos.1"
892 AC_SUBST(capinfos_bin)
893 AC_SUBST(capinfos_man)
896 # Enable/disable mergecap
898 AC_ARG_ENABLE(mergecap,
899 AC_HELP_STRING( [--enable-mergecap],
900 [build mergecap. @<:@default=yes@:>@]),
901 enable_mergecap=$enableval,enable_mergecap=yes)
903 if test "x$enable_mergecap" = "xyes" ; then
904 mergecap_bin="mergecap\$(EXEEXT)"
905 mergecap_man="mergecap.1"
910 AC_SUBST(mergecap_bin)
911 AC_SUBST(mergecap_man)
914 # Enable/disable text2pcap
916 AC_ARG_ENABLE(text2pcap,
917 AC_HELP_STRING( [--enable-text2pcap],
918 [build text2pcap. @<:@default=yes@:>@]),
919 text2pcap=$enableval,enable_text2pcap=yes)
921 if test "x$enable_text2pcap" = "xyes" ; then
922 text2pcap_bin="text2pcap\$(EXEEXT)"
923 text2pcap_man="text2pcap.1"
928 AC_SUBST(text2pcap_bin)
929 AC_SUBST(text2pcap_man)
931 # Enable/disable idl2wrs
933 AC_ARG_ENABLE(idl2wrs,
934 AC_HELP_STRING( [--enable-idl2wrs],
935 [build idl2wrs. @<:@default=yes@:>@]),
936 enable_idl2wrs=$enableval,enable_idl2wrs=yes)
938 if test "x$enable_idl2wrs" = "xyes" ; then
939 idl2wrs_bin="idl2wrs"
940 idl2wrs_man="idl2wrs.1"
945 AC_SUBST(idl2wrs_bin)
946 AC_SUBST(idl2wrs_man)
949 # Enable/disable dftest
951 AC_ARG_ENABLE(dftest,
952 AC_HELP_STRING( [--enable-dftest],
953 [build dftest. @<:@default=yes@:>@]),
954 enable_dftest=$enableval,enable_dftest=yes)
956 if test "x$enable_dftest" = "xyes" ; then
957 dftest_bin="dftest\$(EXEEXT)"
964 # Enable/disable randpkt
966 AC_ARG_ENABLE(randpkt,
967 AC_HELP_STRING( [--enable-randpkt],
968 [build randpkt. @<:@default=yes@:>@]),
969 enable_randpkt=$enableval,enable_randpkt=yes)
971 if test "x$enable_randpkt" = "xyes" ; then
972 randpkt_bin="randpkt\$(EXEEXT)"
976 AC_SUBST(randpkt_bin)
980 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
981 dnl "gethostbyname()".
982 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
984 dnl Checks for "connect()", used as a proxy for "socket()" - and
985 dnl "-lsocket", if we need it to get "connect()".
986 AC_WIRESHARK_SOCKET_LIB_CHECK
989 AC_MSG_CHECKING(whether to use libpcap for packet capture)
992 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
993 [use libpcap for packet capturing. @<:@default=yes@:>@]),
995 if test $withval = no
998 elif test $withval = yes
1009 if test "x$want_pcap" = "xno" ; then
1013 AC_WIRESHARK_PCAP_CHECK
1016 # Enable/disable dumpcap
1019 AC_MSG_CHECKING(whether to build dumpcap)
1021 AC_ARG_ENABLE(dumpcap,
1022 AC_HELP_STRING( [--enable-dumpcap],
1023 [build dumpcap. @<:@default=yes@:>@]),
1024 enable_dumpcap=$enableval,enable_dumpcap=yes)
1026 if test "x$enable_dumpcap" = "xyes" ; then
1027 if test "x$want_pcap" = "xno" ; then
1029 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1037 if test "x$enable_dumpcap" = "xyes" ; then
1038 dumpcap_bin="dumpcap\$(EXEEXT)"
1039 dumpcap_man="dumpcap.1"
1044 AC_SUBST(dumpcap_bin)
1045 AC_SUBST(dumpcap_man)
1047 # Enable/disable rawshark
1050 AC_MSG_CHECKING(whether to build rawshark)
1052 AC_ARG_ENABLE(rawshark,
1053 AC_HELP_STRING( [--enable-rawshark],
1054 [build rawshark. @<:@default=yes@:>@]),
1055 rawshark=$enableval,enable_rawshark=yes)
1057 if test "x$enable_rawshark" = "xyes" ; then
1058 if test "x$want_pcap" = "xno" ; then
1060 AC_MSG_RESULT(pcap not available - disabling rawshark)
1068 if test "x$enable_rawshark" = "xyes" ; then
1069 rawshark_bin="rawshark\$(EXEEXT)"
1070 rawshark_man="rawshark.1"
1075 AC_SUBST(rawshark_bin)
1076 AC_SUBST(rawshark_man)
1079 dnl pcap remote check
1080 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1082 AC_ARG_WITH(pcap-remote,
1083 AC_HELP_STRING([--with-pcap-remote],
1084 [use libpcap remote capturing (requires libpcap)]),
1086 if test $withval = no
1090 want_pcap_remote=yes
1095 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1099 AC_WIRESHARK_PCAP_REMOTE_CHECK
1103 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1106 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1107 [use zlib (located in directory DIR, if supplied) to read compressed data. @<:@default=yes, if available@:>@]),
1109 if test $withval = no
1112 elif test $withval = yes
1121 # Use zlib if it's present, otherwise don't.
1123 want_zlib=ifavailable
1126 if test "x$want_zlib" = "xno" ; then
1130 AC_WIRESHARK_ZLIB_CHECK
1131 if test "x$want_zlib" = "xno" ; then
1132 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1138 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1141 AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1142 [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@:>@]),
1144 if test $withval = no
1147 elif test $withval = yes
1156 # Use libpcre if it's present and GRegex isn't, otherwise don't.
1158 if test $have_gregex = yes ; then
1161 want_pcre=ifavailable
1165 if test "x$want_pcre" = "xno" ; then
1169 AC_WIRESHARK_LIBPCRE_CHECK
1170 if test "x$want_pcre" = "xno" ; then
1171 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1177 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1180 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1181 [use liblua (located in directory DIR, if supplied) for the lua scripting plugin. @<:@default=yes, if available@:>@]),
1183 if test $withval = no
1186 elif test $withval = yes
1195 # Use liblua by default
1197 want_lua=ifavailable
1200 if test "x$want_lua" = "xno" ; then
1204 AC_WIRESHARK_LIBLUA_CHECK
1205 if test "x$want_lua" = "xno" ; then
1206 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1209 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1213 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1215 AC_ARG_WITH(portaudio,
1216 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1217 [use libportaudio (located in directory DIR, if supplied) for the rtp_player. @<:@default=yes, if available@:>@]),
1219 if test $withval = no
1222 elif test $withval = yes
1227 portaudio_dir=$withval
1231 # Use libportaudio by default
1233 want_portaudio=ifavailable
1236 if test "x$want_portaudio" = "xno" ; then
1240 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1241 if test "x$want_portaudio" = "xno" ; then
1242 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1245 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1250 AC_HELP_STRING( [--enable-ipv6],
1251 [use ipv6 name resolution, if available. @<:@default=yes@:>@]),
1252 enable_ipv6=$enableval,enable_ipv6=yes)
1254 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1255 if test "x$enable_ipv6" = "xno" ; then
1259 AC_WIRESHARK_IPV6_STACK
1263 dnl Check if dumpcap should be installed with filesystem capabilities
1264 AC_PATH_PROG(SETCAP, setcap)
1265 AC_ARG_ENABLE(setcap-install,
1266 AC_HELP_STRING( [--enable-setcap-install],
1267 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1268 enable_setcap_install=$enableval,enable_setcap_install=no)
1270 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1271 if test "x$enable_setcap_install" = "xno" ; then
1274 if test "x$SETCAP" = "x" ; then
1275 AC_MSG_RESULT(no. Setcap not found)
1276 elif test "x$enable_dumpcap" = "xno" ; then
1277 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1283 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1285 dnl Check if dumpcap should be installed setuid
1286 AC_ARG_ENABLE(setuid-install,
1287 AC_HELP_STRING( [--enable-setuid-install],
1288 [install dumpcap as setuid @<:@default=no@:>@]),
1289 enable_setuid_install=$enableval,enable_setuid_install=no)
1291 AC_MSG_CHECKING(whether to install dumpcap setuid)
1292 if test "x$enable_setuid_install" = "xno" ; then
1295 if test "x$enable_setcap_install" = "xyes" ; then
1296 enable_setuid_install=no
1297 AC_MSG_RESULT(no; using setcap instead)
1298 elif test "x$enable_dumpcap" = "xno" ; then
1299 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1305 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1306 AC_CHECK_FUNCS(setresuid setresgid)
1308 dnl ...but our Network Operations group is named "no"!
1310 AC_ARG_WITH(dumpcap-group,
1311 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1312 [restrict dumpcap to GROUP]),
1314 if test "x$withval" = "xyes"; then
1315 AC_MSG_ERROR([No dumpcap group specified.])
1316 elif test "x$withval" != "xno"; then
1317 AC_MSG_RESULT($withval)
1318 DUMPCAP_GROUP="$withval"
1321 AC_SUBST(DUMPCAP_GROUP)
1322 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1324 dnl libcap (not libpcap) check
1326 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1329 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1330 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management. @<:@default=yes, if present@:>@]),
1332 if test "x$withval" = "xno"; then
1334 elif test "x$withval" = "xyes"; then
1336 elif test -d "$withval"; then
1338 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1341 if test "x$with_libcap" = "xno" ; then
1345 AC_WIRESHARK_LIBCAP_CHECK
1347 AC_SUBST(LIBCAP_LIBS)
1349 dnl Checks for header files.
1350 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1351 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)
1352 AC_CHECK_HEADERS(netinet/in.h)
1353 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1357 AC_MSG_CHECKING(whether to use SSL library)
1360 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1361 [use SSL crypto library (located in directory DIR, if supplied). @<:@default=no@:>@]),
1363 if test "x$withval" = "xno"; then
1365 elif test "x$withval" = "xyes"; then
1367 elif test -d "$withval"; then
1369 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1374 if test "x$want_ssl" = "xyes"; then
1376 AC_CHECK_LIB(crypto,EVP_md5,
1381 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1389 AC_MSG_CHECKING(whether to use kerberos)
1392 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1393 [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection @<:@default=yes@:>@]),
1395 if test $withval = no
1398 elif test $withval = yes
1407 # Use kerberos if specified, otherwise don't.
1409 want_krb5=ifavailable
1412 if test "x$want_krb5" = "xno" ; then
1416 AC_WIRESHARK_KRB5_CHECK
1422 AC_MSG_CHECKING(whether to use the c-ares library if available)
1425 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1426 [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns. @<:@default=yes, if present@:>@]),
1428 if test "x$withval" = "xno"; then
1430 elif test "x$withval" = "xyes"; then
1432 elif test -d "$withval"; then
1434 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1437 if test "x$want_c_ares" = "xno" ; then
1441 AC_WIRESHARK_C_ARES_CHECK
1443 AC_SUBST(C_ARES_LIBS)
1447 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1450 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1451 [use GNU ADNS (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1453 if test "x$withval" = "xno"; then
1455 elif test "x$withval" = "xyes"; then
1457 elif test -d "$withval"; then
1459 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1462 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1466 AC_WIRESHARK_ADNS_CHECK
1472 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1475 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1476 [use GeoIP (located in directory DIR, if supplied). @<:@default=yes, if present@:>@]),
1478 if test "x$withval" = "xno"; then
1480 elif test "x$withval" = "xyes"; then
1482 elif test -d "$withval"; then
1484 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1487 if test "x$want_geoip" = "xno"; then
1491 AC_WIRESHARK_GEOIP_CHECK
1493 AC_SUBST(GEOIP_LIBS)
1495 dnl Python devel Check
1497 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1498 [use python interpretor (installed in DIR, if supplied). @<:@default=no@:>@ (EXPERIMENTAL)]),
1500 pythondir='${libdir}/wireshark/python/${VERSION}'
1501 if test "x$withval" = "xno"; then
1503 elif test "x$withval" != "xyes"; then
1504 pythondir="$withval"
1506 AC_WIRESHARK_PYTHON_CHECK
1509 AC_WIRESHARK_PYTHON_CHECK
1512 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1516 # Define WS_VAR_IMPORT appropriately for declarations of external
1517 # variables exported from dynamically-linked libraries.
1519 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1521 AC_ARG_ENABLE(airpcap,
1522 AC_HELP_STRING( [--enable-airpcap],
1523 [use airpcap in wireshark. @<:@default=no@:>@]),
1524 enable_airpcap=$enableval
1525 if test x$enable_airpcap != xno; then
1526 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1530 # Define HAVE_AIRPDCAP
1531 # We'll want to remove this eventually.
1533 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1535 dnl Checks for typedefs, structures, and compiler characteristics.
1538 # Check how we can get the time zone abbreviation
1539 AC_WIRESHARK_TIMEZONE_ABBREV
1541 # We need to know whether "struct sockaddr" has an "sa_len" member
1542 # for get_interface_list().
1544 AC_WIRESHARK_STRUCT_SA_LEN
1546 # We must know our byte order
1549 # Checks whether "-traditional" is needed when using "ioctl".
1550 # XXX - do we need this?
1551 AC_PROG_GCC_TRADITIONAL
1554 AC_CHECK_FUNC(getopt,
1556 AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1558 GETOPT_LO="wsgetopt.lo"
1560 if test "$ac_cv_func_getopt" = no ; then
1561 GETOPT_LO="wsgetopt.lo"
1565 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1566 [STRERROR_LO="strerror.lo"
1567 AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1569 if test "$ac_cv_func_strerror" = no ; then
1570 STRERROR_LO="strerror.lo"
1572 AC_SUBST(STRERROR_LO)
1574 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1575 STRNCASECMP_LO="strncasecmp.lo")
1576 if test "$ac_cv_func_strncasecmp" = no ; then
1577 STRNCASECMP_LO="strncasecmp.lo"
1579 AC_SUBST(STRNCASECMP_LO)
1581 AC_CHECK_FUNCS(mkstemp mkdtemp)
1583 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1585 if test "$have_inet_aton" = no; then
1586 INET_ATON_LO="inet_aton.lo"
1587 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1591 AC_SUBST(INET_ATON_LO)
1593 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1594 dnl check for pre-BIND82 inet_pton() bug.
1595 AC_MSG_CHECKING(for broken inet_pton)
1596 AC_TRY_RUN([#include <sys/types.h>
1597 #include <sys/socket.h>
1598 #include <netinet/in.h>
1599 #include <arpa/inet.h>
1604 /* this should return 0 (error) */
1605 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1609 }], [AC_MSG_RESULT(ok);
1610 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1611 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1612 have_inet_pton=no])],
1614 if test "$have_inet_pton" = no; then
1615 INET_PTON_LO="inet_pton.lo"
1619 AC_SUBST(INET_PTON_LO)
1621 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1622 AC_MSG_CHECKING([for inet_ntop prototype])
1623 AC_TRY_COMPILE([#include <stdio.h>
1624 #include <sys/types.h>
1625 #include <sys/socket.h>
1626 #include <netinet/in.h>
1627 #include <arpa/inet.h>
1629 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1631 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1632 [Define if inet_ntop() prototype exists])], [
1633 AC_TRY_COMPILE([#include <stdio.h>
1634 #include <sys/types.h>
1635 #include <sys/socket.h>
1636 #include <netinet/in.h>
1637 #include <arpa/inet.h>
1639 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1641 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1642 [Define if inet_ntop() prototype exists])], [
1643 AC_MSG_RESULT(no)])])
1645 INET_NTOP_LO="inet_ntop.lo"
1646 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1647 [Define if inet/v6defs.h needs to be included])])
1648 AC_SUBST(INET_NTOP_LO)
1650 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1651 [STRPTIME_LO="strptime.lo"
1652 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1654 if test "$ac_cv_func_strptime" = no ; then
1655 STRPTIME_LO="strptime.lo"
1657 AC_SUBST(STRPTIME_C)
1658 AC_SUBST(STRPTIME_LO)
1660 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1661 AC_CHECK_FUNCS(issetugid)
1662 AC_CHECK_FUNCS(mmap mprotect sysconf)
1663 AC_CHECK_FUNCS(strtoll)
1665 dnl blank for now, but will be used in future
1666 AC_SUBST(wireshark_SUBDIRS)
1669 dnl check whether plugins should be enabled and, if they should be,
1670 dnl check for plugins directory - stolen from Amanda's configure.in
1672 dnl we don't wish to expand ${libdir} yet
1673 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1674 AC_ARG_WITH(plugins,
1675 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1676 [support plugins (installed in DIR, if supplied). @<:@default=yes, if possible@:>@]),
1678 if test "x$withval" = "xno"; then
1680 elif test "x$have_plugins" = "xno"; then
1681 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1682 elif test "x$withval" != "xyes"; then
1683 plugindir="$withval"
1686 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1687 if test x$have_plugins = xyes
1689 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1692 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1695 # The plugin dissectors reside in ./plugins/PROTO/
1698 AC_SUBST(PLUGIN_LIBS)
1702 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1703 # (autoconf? automake? libtool?) - with the newer version(s), it's
1704 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1706 # With older version(s) of those tool(s), however, it's not just an
1707 # alias, and the configure scripts don't work without it.
1710 AC_SUBST(LIBTOOL_DEPS)
1712 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1713 if test x$enable_static = xyes -a x$have_plugins = xyes
1715 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1717 AC_SUBST(ENABLE_STATIC)
1719 AC_ARG_ENABLE(new-packet-list,
1720 AC_HELP_STRING( [--enable-new-packet-list],
1721 [use new packet list feature. @<:@default=yes@:>@]),
1722 new_packet_list=$enableval,new_packet_list=yes)
1723 AC_MSG_CHECKING(if new packet list is used);
1724 if test "x$new_packet_list" = "xyes" ; then
1726 CFLAGS=" -DNEW_PACKET_LIST $CFLAGS"
1731 dnl Save the cacheable configure results to config.cache before recursing
1734 sinclude(plugins/Custom.m4) dnl
1735 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1737 AM_CONFIG_HEADER(config.h)
1742 asn1/acp133/Makefile
1744 asn1/ansi_map/Makefile
1745 asn1/ansi_tcap/Makefile
1748 asn1/charging_ase/Makefile
1761 asn1/gsm_map/Makefile
1770 asn1/h450-ros/Makefile
1773 asn1/HI2Operations/Makefile
1776 asn1/kerberos/Makefile
1778 asn1/logotypecertextn/Makefile
1779 asn1/lte-rrc/Makefile
1781 asn1/mpeg-audio/Makefile
1782 asn1/mpeg-pes/Makefile
1784 asn1/ns_cert_exts/Makefile
1789 asn1/pkcs12/Makefile
1790 asn1/pkinit/Makefile
1791 asn1/pkixac/Makefile
1792 asn1/pkix1explicit/Makefile
1793 asn1/pkix1implicit/Makefile
1794 asn1/pkixproxy/Makefile
1795 asn1/pkixqualified/Makefile
1796 asn1/pkixtsp/Makefile
1799 asn1/q932-ros/Makefile
1813 asn1/spnego/Makefile
1819 asn1/wlancertextn/Makefile
1823 asn1/x509af/Makefile
1824 asn1/x509ce/Makefile
1825 asn1/x509if/Makefile
1826 asn1/x509sat/Makefile
1834 epan/dfilter/Makefile
1835 epan/dissectors/Makefile
1836 epan/dissectors/dcerpc/Makefile
1837 epan/dissectors/pidl/Makefile
1838 epan/ftypes/Makefile
1840 epan/wspython/Makefile
1846 packaging/macosx/Info.plist
1847 packaging/macosx/Makefile
1848 packaging/nsis/Makefile
1849 packaging/rpm/Makefile
1850 packaging/rpm/SPECS/Makefile
1851 packaging/rpm/SPECS/wireshark.spec
1852 packaging/svr4/Makefile
1853 packaging/svr4/checkinstall
1854 packaging/svr4/pkginfo
1856 plugins/asn1/Makefile
1857 plugins/docsis/Makefile
1858 plugins/ethercat/Makefile
1859 plugins/giop/Makefile
1860 plugins/gryphon/Makefile
1861 plugins/interlink/Makefile
1862 plugins/irda/Makefile
1863 plugins/m2m/Makefile
1864 plugins/mate/Makefile
1865 plugins/opcua/Makefile
1866 plugins/profinet/Makefile
1867 plugins/sercosiii/Makefile
1868 plugins/stats_tree/Makefile
1869 plugins/unistim/Makefile
1870 plugins/wimax/Makefile
1871 plugins/wimaxasncp/Makefile
1874 tools/lemon/Makefile
1879 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1884 if test "x$enable_setcap_install" = "xyes" ; then
1885 setcap_message="yes"
1891 if test "x$enable_setuid_install" = "xyes" ; then
1892 setuid_message="yes"
1897 if test "x$DUMPCAP_GROUP" = "x" ; then
1898 dumpcap_group_message="(none)"
1900 dumpcap_group_message="$DUMPCAP_GROUP"
1903 if test "x$want_zlib" = "xno" ; then
1909 if test "x$want_pcre" = "xno" ; then
1910 if test $have_gregex = yes
1912 pcre_message="no (using GRegex instead)"
1920 if test "x$want_lua" = "xyes" ; then
1926 if test "x$want_python" = "xyes"; then
1927 python_message="yes"
1932 if test "x$want_portaudio" = "xyes" ; then
1933 portaudio_message="yes"
1935 portaudio_message="no"
1938 if test "x$want_ssl" = "xno" ; then
1944 if test "x$want_krb5" = "xno" ; then
1947 krb5_message="yes ($ac_krb5_version)"
1950 if test "x$have_good_c_ares" = "xyes" ; then
1951 c_ares_message="yes"
1956 if test "x$have_good_adns" = "xyes" ; then
1962 if test "x$have_good_libcap" = "xyes" ; then
1963 libcap_message="yes"
1968 if test "x$have_good_geoip" = "xyes" ; then
1975 echo "The Wireshark package has been configured with the following options."
1976 echo " Build wireshark : $enable_wireshark"
1977 echo " Build tshark : $enable_tshark"
1978 echo " Build capinfos : $enable_capinfos"
1979 echo " Build editcap : $enable_editcap"
1980 echo " Build dumpcap : $enable_dumpcap"
1981 echo " Build mergecap : $enable_mergecap"
1982 echo " Build text2pcap : $enable_text2pcap"
1983 echo " Build idl2wrs : $enable_idl2wrs"
1984 echo " Build randpkt : $enable_randpkt"
1985 echo " Build dftest : $enable_dftest"
1986 echo " Build rawshark : $enable_rawshark"
1988 echo " Install dumpcap with capabilities : $setcap_message"
1989 echo " Install dumpcap setuid : $setuid_message"
1990 echo " Use dumpcap group : $dumpcap_group_message"
1991 echo " Use plugins : $have_plugins"
1992 echo " Use lua library : $lua_message"
1993 echo " Use python binding : $python_message"
1994 echo " Build rtp_player : $portaudio_message"
1995 echo " Use threads : $enable_threads"
1996 echo " Build profile binaries : $enable_profile_build"
1997 echo " Use pcap library : $want_pcap"
1998 echo " Use zlib library : $zlib_message"
1999 echo " Use pcre library : $pcre_message"
2000 echo " Use kerberos library : $krb5_message"
2001 echo " Use c-ares library : $c_ares_message"
2002 echo " Use GNU ADNS library : $adns_message"
2003 echo " Use SMI MIB library : $libsmi_message"
2004 echo " Use GNU crypto library : $gcrypt_message"
2005 echo " Use SSL crypto library : $ssl_message"
2006 echo " Use IPv6 name resolution : $enable_ipv6"
2007 echo " Use gnutls library : $tls_message"
2008 echo " Use POSIX capabilities library : $libcap_message"
2009 echo " Use GeoIP library : $geoip_message"