5 AC_INIT(wireshark, 1.7.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)
131 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
132 # flags such as -pedantic, -W warning flags and -f feature flags. Currently,
133 # we assume GCC and clang do; other compilers should be added here.
135 # This is done to avoid getting tripped up by compilers that support
136 # those flags but give them a different meaning.
138 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
139 ac_supports_gcc_flags=yes
143 # Set "ac_supports_W_linker_passthrough" if the compiler is known to
144 # support "-Wl,{options}" to pass options through to the linker.
145 # Currently, we assume GCC, xlc, and clang do; other compilers should
148 if test "x$GCC" = "xyes" -o "x$CC" = "xxlc" -o "x$CC" = "xclang" ; then
149 ac_supports_W_linker_passthrough=yes
153 # Set "ac_supports_attribute_unused" if the compiler is known to
154 # support "__attribute__(unused)".
155 # Currently, we assume GCC and clang do; other compilers should
158 # XXX - do this with a compiler test?
160 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
161 ac_supports_W_linker_passthrough=yes
164 if test "x$CC_FOR_BUILD" = x
168 AC_SUBST(CC_FOR_BUILD)
171 AC_PATH_PROG(DOXYGEN, doxygen)
172 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
173 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
176 # Try to arrange for large file support.
182 AC_ARG_WITH([gnutls],
183 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
184 [use GnuTLS library @<:@default=yes@:>@]),
185 with_gnutls="$withval", with_gnutls="yes")
186 if test "x$with_gnutls" = "xyes"; then
187 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
189 echo "GnuTLS found, enabling SSL decryption"
190 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
194 echo "GnuTLS not found, disabling SSL decryption"
202 AC_ARG_WITH([gcrypt],
203 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
204 [use gcrypt library @<:@default=yes@:>@]),
205 with_gcrypt="$withval", with_gcrypt="yes")
206 if test "x$with_gcrypt" = "xyes"; then
207 AM_PATH_LIBGCRYPT(1.1.92,
209 echo "libgcrypt found, enabling ipsec decryption"
210 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
214 if test x$libgcrypt_config_prefix != x ; then
215 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
217 echo "libgcrypt not found, disabling ipsec decryption"
225 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
226 [use Qt instead of GTK+ @<:@default=no@:>@]),
227 with_qt="$withval", with_qt="no")
230 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
231 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
232 with_gtk3="$withval", with_gtk3="no")
235 # FIXME: currently the path argument to with-libsmi is being ignored
239 AC_PATH_PROG(XSLTPROC, xsltproc)
240 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
241 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
244 AC_PATH_PROG(XMLLINT, xmllint)
245 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
246 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
248 # Check for fop (translate .fo to e.g. pdf)
249 AC_PATH_PROG(FOP, fop)
250 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
251 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
254 # Look for something to convert HTML to text (for docbook/)
256 AC_PATH_PROG(ELINKS, elinks)
257 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
258 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
260 ## links: Fails as used in docbook/Makefile.am
261 ## (Rather than fixing things we'll just disable the use of links).
262 ##AC_PATH_PROG(LINKS, links)
263 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
264 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
266 AC_PATH_PROG(LYNX, lynx)
267 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
268 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
271 # Check for hhc (html help compiler)
272 AC_PATH_PROG(HHC, hhc.exe)
273 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
274 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
276 # Check for packaging utilities
277 # For now, we check to see if the various packaging utilites are in our
278 # path. I'm too lazy to write code to go hunt for them. - Gerald
281 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
282 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
283 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
285 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
286 -a x$HAVE_PKGTRANS = xyes ; then
287 HAVE_SVR4_PACKAGING=yes
289 HAVE_SVR4_PACKAGING=no
291 AC_SUBST(HAVE_SVR4_PACKAGING)
294 AC_WIRESHARK_RPM_CHECK
298 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
301 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
302 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
303 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
305 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
306 -a x$HAVE_BLESS = xyes ; then
307 HAVE_OSX_PACKAGING=yes
309 HAVE_OSX_PACKAGING=no
311 AC_SUBST(HAVE_OSX_PACKAGING)
314 # Try to add some additional gcc checks to CFLAGS
316 AC_ARG_ENABLE(extra-gcc-checks,
317 AC_HELP_STRING( [--enable-extra-gcc-checks],
318 [do additional -W checks in GCC @<:@default=no@:>@]),
320 wireshark_extra_gcc_flags=$enableval
321 if test $enableval != no
323 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
324 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
325 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
326 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
327 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
328 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
329 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
330 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
331 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
332 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
333 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
334 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
335 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
336 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
337 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
338 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
339 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
340 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
341 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
342 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
344 # epan/dissectors/packet-ncp2222.inc blocks this one
347 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
349 # GLib blocks this for now.
351 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
353 # All the registration functions block these for now.
355 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
356 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
358 # epan/dissectors/packet-afs.c blocks this one for now.
360 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
362 # More cleanup needed for this on LP64.
364 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
367 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
368 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
369 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
370 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
371 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
372 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
373 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
374 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
375 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
376 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
377 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable) ## for now
379 # Use the faster pre gcc 4.5 floating point precision if available;
380 # clang doesn't error out on -f options that it doesn't know about,
381 # it just warns and ignores them, so this check doesn't cause us
382 # to omit -fexcess-precision=fast, which produces a pile of
385 if test "x$CC" != "xclang" ; then
386 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
389 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
390 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
391 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
392 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
393 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
394 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
397 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
398 # CPPFLAGS as well, so we can use _U_ to flag unused function arguments and
399 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
400 # to flag an unused function argument will compile with non-GCC, non-clang
403 # XXX - other compilers?
405 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
406 CPPFLAGS="-D_U_=\"__attribute__((unused))\" $CPPFLAGS"
408 CPPFLAGS="-D_U_=\"\" $CPPFLAGS"
411 # If we're running GCC or CLang, always use FORTIFY_SOURCE=2
412 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
413 # Note: FORTIFY_SOURCE is only effective for gcc -O2 (and -O1 ?)
414 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
415 CPPFLAGS="-D_FORTIFY_SOURCE=2 $CPPFLAGS"
419 # If the compiler supports GCC-style flags, enable a barrier "stop on
421 # This barrier is set for a very large part of the code. However, it is
422 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
424 warnings_as_errors_default="yes"
425 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
426 AC_ARG_ENABLE(warnings-as-errors,
427 AC_HELP_STRING( [--enable-warnings-as-errors],
428 [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]),
430 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
431 with_warnings_as_errors="yes"
434 with_warnings_as_errors="no"
438 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
439 with_warnings_as_errors="yes"
442 with_warnings_as_errors="no"
446 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
449 # Add any platform-specific compiler flags needed.
451 AC_MSG_CHECKING(for platform-specific compiler flags)
452 if test "x$GCC" = "xyes" ; then
454 # GCC - do any platform-specific tweaking necessary.
458 # the X11 headers don't automatically include prototype info
459 # and a lot don't include the return type
460 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
461 CFLAGS="$CFLAGS -Wno-return-type"
462 CXXFLAGS="$CXXFLAGS -Wno-return-type"
463 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
467 # See comments above about Apple's lovely C compiler.
469 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
470 # defines __GNUC__"; clang defines __GNUC__, so that
471 # means we think clang is GCC.
473 # clang whines about -no-cpp-precomp being unused
474 # so we check whether this is really clang, and
475 # only add -no-cpp-precomp if it's not.
477 if test "x$CC" != "xclang" ; then
478 CFLAGS="-no-cpp-precomp $CFLAGS"
479 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
482 # Clang, clang, clang went the trolley....
484 AC_MSG_RESULT(none needed)
488 AC_MSG_RESULT(none needed)
493 # Not GCC - assume it's the vendor's compiler.
498 # HP's ANSI C compiler; flags suggested by Jost Martin.
499 # "-Ae" for ANSI C plus extensions such as "long long".
500 # "+O2", for optimization. XXX - works with "-g"?
502 # HP's ANSI C++ compiler doesn't support "-Ae", but
503 # does support "+O2", at least according to the
504 # documentation I can find online.
506 CFLAGS="-Ae +O2 $CFLAGS"
507 CXXFLAGS="+O2 $CFLAGS"
508 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
512 # It may be called "cc", but it's really a GCC derivative
513 # with a problematic special precompiler and precompiled
514 # headers; turn off the special precompiler, as some
515 # apparently-legal code won't compile with its precompiled
518 # On the other hand, if it's called "clang", it's not a
519 # GCC derivative, and it whines if you pass it
522 # XXX - is there any version of autoconf we support
523 # where it uses another way to decide if the compiler
526 if test "x$CC" != "xclang" ; then
527 CFLAGS="-no-cpp-precomp $CFLAGS"
528 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
531 # Clang, clang, clang went the trolley....
533 AC_MSG_RESULT(none needed)
537 AC_MSG_RESULT(none needed)
543 # Add any platform-specific linker flags needed.
545 AC_MSG_CHECKING(for platform-specific linker flags)
549 # Add -Wl,-single_module to the LDFLAGS used with shared
550 # libraries, to fix some error that show up in some cases;
551 # some Apple documentation recommends it for most shared
554 LDFLAGS_SHAREDLIB="-Wl,-single_module"
556 # Add -Wl,-search_paths_first to make sure that if we search
557 # directories A and B, in that order, for a given library, a
558 # non-shared version in directory A, rather than a shared
559 # version in directory B, is chosen (so we can use
560 # --with-pcap=/usr/local to force all programs to be linked
561 # with a static version installed in /usr/local/lib rather than
562 # the system version in /usr/lib).
564 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
565 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
569 # Shared libraries in cygwin/Win32 must never contain
572 LDFLAGS="$LDFLAGS -no-undefined"
573 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
576 AC_MSG_RESULT(none needed)
579 AC_SUBST(LDFLAGS_SHAREDLIB)
581 # Control silent compiling
582 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
585 # On OS X, if we find the headers for Core Foundation, Launch Services,
586 # and Core Services, add -framework options to link with Application
587 # Services (of which Launch Services is a subframework), Core Foundation
588 # (required by the Launch Services APIs), and Core Services, so we can
589 # use them to launch a Web browser from the Help menu and to use
590 # Gestalt() to get the Mac OS X version number.
595 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
597 ac_coreservices_frameworks="-framework CoreServices"
598 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
599 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
602 # include <CoreFoundation/CFBase.h>
603 # include <CoreFoundation/CFString.h>
604 # include <CoreFoundation/CFURL.h>
605 # include <ApplicationServices/ApplicationServices.h>
606 # include <CoreServices/CoreServices.h>
609 CFStringRef url_CFString;
614 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
615 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
616 status = LSOpenCFURLRef(url_CFURL, NULL);
618 Gestalt(gestaltSystemVersion, &os_version);
620 ac_cv_can_use_osx_frameworks=yes,
621 ac_cv_can_use_osx_frameworks=no,
622 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
623 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
624 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
625 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
626 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
634 AC_SUBST(CORESERVICES_FRAMEWORKS)
635 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
638 # If using $prefix we add "$prefix/include" to the include search path
639 # and "$prefix/lib" to the library search path.
641 if test "x$prefix" != "x" ; then
642 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
643 if test -d $prefix/include ; then
646 # Arrange that we search for header files in "$prefix/include", as
647 # various packages we use may have been installed under "$prefix/include".
649 CPPFLAGS="$CPPFLAGS -I$prefix/include"
652 # Arrange that we search for libraries in "$prefix/lib".
654 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
660 dnl Look in /usr/local for header files and libraries ?
661 dnl XXX FIXME don't include /usr/local if it is already in the system
662 dnl search path as this causes gcc 3.2 on Linux to complain about a change
663 dnl of the system search order for includes
664 AC_ARG_ENABLE(usr-local,
665 AC_HELP_STRING( [--enable-usr-local],
666 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
667 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
669 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
670 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
671 if test -d "/usr/local"; then
674 # Arrange that we search for header files in the source directory
675 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
676 # as various packages we use ("libpcap", "zlib", "adns")
677 # may have been installed under "/usr/local/include".
679 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
682 # Arrange that we search for libraries in "/usr/local/lib".
684 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
693 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
698 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
699 if test x$LD_LIBRARY_PATH != x ; then
700 LIBS="$LIBS -R$LD_LIBRARY_PATH"
701 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
703 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
709 # Check for versions of "sed" inadequate to handle, in libtool, a list
710 # of object files as large as the list in Wireshark.
712 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
713 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
714 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
715 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
716 # is the only "sed" that comes with Solaris that can handle Wireshark.
718 # Add any checks here that are necessary for other OSes.
720 AC_WIRESHARK_GNU_SED_CHECK
721 if test "$HAVE_GNU_SED" = no ; then
724 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
726 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
728 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
743 # Enable/disable wireshark
745 AC_ARG_ENABLE(wireshark,
746 AC_HELP_STRING( [--enable-wireshark],
747 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
748 enable_wireshark=$enableval,enable_wireshark=yes)
750 AC_ARG_ENABLE(packet-editor,
751 AC_HELP_STRING( [--enable-packet-editor],
752 [add support for packet editor in Wireshark @<:@default=no@:>@]),
753 enable_packet_editor=$enableval,enable_packet_editor=no)
754 if test x$enable_packet_editor = xyes; then
755 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
758 AC_ARG_ENABLE(profile-build,
759 AC_HELP_STRING( [--enable-profile-build],
760 [build profile-ready binaries @<:@default=no@:>@]),
761 enable_profile_build=$enableval,enable_profile_build=no)
762 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
763 AC_MSG_CHECKING(if profile builds must be generated)
764 if test "x$enable_profile_build" = "xyes" ; then
765 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
767 CFLAGS=" -pg $CFLAGS"
768 CXXFLAGS=" -pg $CXXFLAGS"
771 echo "Building profile binaries currently only supported for GCC and clang."
777 # Create DATAFILE_DIR #define for config.h
778 datafiledir=$datadir/wireshark
780 test "x$prefix" = xNONE && prefix=$ac_default_prefix
781 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
782 # Ugly hack, but I don't see how this problem can be solved
783 # properly that DATAFILE_DIR had a value starting with
784 # "${prefix}/" instead of e.g. "/usr/local/"
785 eval eval echo "$datafiledir"
787 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
789 # Create DOC_DIR #define for config.h
791 test "x$prefix" = xNONE && prefix=$ac_default_prefix
792 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
793 # Ugly hack, but I don't see how this problem can be solved
794 # properly that DOC_DIR had a value starting with
795 # "${prefix}/" instead of e.g. "/usr/local/"
796 eval eval echo "$docdir"
798 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
800 # GTK+ and Qt checks; we require GTK+ 2.12 or later, and, for now,
801 # don't require any particular version of Qt (except perhaps by
802 # implication, as older versions might not support pkgconfig).
804 # We only do those if we're going to be building Wireshark;
805 # otherwise, we don't have any GUI to build, so we don't use
808 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
809 # force all programs to be built with GTK+ or Qt.
811 if test "x$enable_wireshark" = "xyes"; then
812 if test "x$with_qt" = "xyes"; then
813 PKG_CHECK_MODULES([Qt], [QtCore QtGui],
815 CFLAGS="$CFLAGS $Qt_CFLAGS"
816 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
818 # XXX - greasy hack to make ui/gtk/recent.c
821 CPPFLAGS="-DQT_GUI_LIB $CPPFLAGS"
822 UI_LIBS='$(wireshark_QT_UI_LIBS)'
826 AC_MSG_ERROR([Qt is not available])
830 # We don't know whether we have GTK+, but we
831 # won't be using it, so it's as if we don't
837 # Not Qt - either GTK+ 3.x or 2.x.
839 if test "x$with_gtk3" = "xyes"; then
840 AM_PATH_GTK_3_0(3.0.0,
842 CFLAGS="$CFLAGS $GTK_CFLAGS"
843 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
845 UI_LIBS='$(wireshark_GTK_UI_LIBS)'
846 AC_DEFINE(HAVE_GTK, 1,
847 [Define to 1 if compiling with GTK])
851 AM_PATH_GTK_2_0(2.12.0,
853 CFLAGS="$CFLAGS $GTK_CFLAGS"
854 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
856 UI_LIBS='$(wireshark_GTK_UI_LIBS)'
857 AC_DEFINE(HAVE_GTK, 1,
858 [Define to 1 if compiling with GTK])
868 # GLib checks; we require GLib 2.14 or later, and require gmodule
869 # support, as we need that for dynamically loading plugins.
870 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
871 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
872 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
873 # GLIB_CFLAGS to CFLAGS.
874 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
875 # set when generating the Makefile, so we can make programs that require
876 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
877 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
878 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
879 # programs to be built with GLib.
881 if test "$have_gtk" = "no" ; then
883 # We don't have GTK+.
885 if test "$have_qt" = "yes" ; then
887 # However, we do have Qt, and thus will be building
888 # Wireshark (if the user had explicitly disabled
889 # Wireshark, we wouldn't have looked for Qt, so we
890 # wouldn't think we had it, and thus wouldn't be here).
892 wireshark_bin="wireshark\$(EXEEXT)"
893 wireshark_man="wireshark.1"
894 wireshark_SUBDIRS="codecs ui/qt"
897 # We don't have Qt, either, which means we have no UI
900 # If they didn't explicitly say "--disable-wireshark",
901 # fail (so that, unless they explicitly indicated that
902 # they don't want Wireshark, we stop so they know they
903 # won't be getting Wireshark unless they fix the GTK+/Qt
906 if test "x$enable_wireshark" = "xyes"; then
907 if test "x$with_gtk3" = "xyes"; then
908 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
910 AC_MSG_ERROR([Neither Qt nor GTK+ 2.12 or later are available, so Wireshark can't be compiled])
917 AM_PATH_GLIB_2_0(2.14.0,
919 CFLAGS="$CFLAGS $GLIB_CFLAGS"
920 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
921 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
924 # We have GTK+, and thus will be building Wireshark (if the user
925 # had explicitly disabled Wireshark, we wouldn't have looked for
926 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
928 wireshark_bin="wireshark\$(EXEEXT)"
929 wireshark_man="wireshark.1"
930 wireshark_SUBDIRS="codecs ui/gtk"
931 # Don't use GLIB_CFLAGS
932 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
934 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
935 ## Define GTK_DISABLE_DEPRECATED only if GTK lt 3.2
936 ## GTK 3.2 deprecates GtkVBox & GtkHBox which are currently used extensively by Wireshark.
937 if test $gtk_config_major_version -eq 2 -o $gtk_config_minor_version -lt 2; then
938 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
940 # CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
941 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
942 # Enable GSEAL when building with GTK > 2.20 and < 3.0
943 # (Versions prior to 2.22 lacked some necessary accessors.)
944 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
948 # Error out if a glib header other than a "top level" header
949 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
951 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
953 # Error out on the usage of deprecated glib functions
954 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
957 # Check whether GLib modules are supported, to determine whether we
958 # can support plugins.
960 AC_MSG_CHECKING(whether GLib supports loadable modules)
961 ac_save_CFLAGS="$CFLAGS"
963 CFLAGS="$CFLAGS $GLIB_CFLAGS"
964 LIBS="$GLIB_LIBS $LIBS"
974 if (g_module_supported())
975 return 0; /* success */
977 return 1; /* failure */
979 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
980 [echo $ac_n "cross compiling; assumed OK... $ac_c"
981 ac_cv_glib_supports_modules=yes])
982 CFLAGS="$ac_save_CFLAGS"
984 if test "$ac_cv_glib_supports_modules" = yes ; then
993 # If we have <dlfcn.h>, check whether we can use dladdr to find a
994 # filename (hopefully, a full pathname, but no guarantees) for
997 if test "$ac_cv_header_dlfcn_h" = "yes"
999 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
1000 ac_save_CFLAGS="$CFLAGS"
1001 ac_save_LIBS="$LIBS"
1002 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1003 LIBS="$GLIB_LIBS $LIBS"
1005 #define _GNU_SOURCE /* required on Linux, sigh */
1013 if (!dladdr((void *)main, &info))
1014 return 1; /* failure */
1015 return 0; /* assume success */
1017 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1018 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1019 ac_cv_dladdr_finds_executable_path=yes])
1020 CFLAGS="$ac_save_CFLAGS"
1021 LIBS="$ac_save_LIBS"
1022 if test x$ac_cv_dladdr_finds_executable_path = xyes
1024 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1026 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1029 if test "x$have_gtk" = "xyes"
1032 # We have GTK+; do we want the OS X integration functions and,
1033 # if so, do we have them and, if so, which versions do we have,
1034 # the old Carbon-based ones or the new Cocoa-based ones?
1036 AC_MSG_CHECKING(whether to use OS X integration functions)
1038 AC_ARG_WITH(osx-integration,
1039 AC_HELP_STRING( [--with-osx-integration],
1040 [use OS X integration functions @<:@default=yes, if available@:>@]),
1042 if test $withval = no
1044 want_osx_integration=no
1046 want_osx_integration=yes
1049 want_osx_integration=yes
1051 if test "x$want_osx_integration" = "xno"; then
1055 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1059 AC_SUBST(wireshark_bin)
1060 AC_SUBST(wireshark_man)
1063 # Enable/disable tshark
1065 AC_ARG_ENABLE(tshark,
1066 AC_HELP_STRING( [--enable-tshark],
1067 [build TShark @<:@default=yes@:>@]),
1068 tshark=$enableval,enable_tshark=yes)
1070 if test "x$enable_tshark" = "xyes" ; then
1071 tshark_bin="tshark\$(EXEEXT)"
1072 tshark_man="tshark.1"
1073 wiresharkfilter_man="wireshark-filter.4"
1078 AC_SUBST(tshark_bin)
1079 AC_SUBST(tshark_man)
1080 AC_SUBST(wiresharkfilter_man)
1084 # Enable/disable editcap
1086 AC_ARG_ENABLE(editcap,
1087 AC_HELP_STRING( [--enable-editcap],
1088 [build editcap @<:@default=yes@:>@]),
1089 enable_editcap=$enableval,enable_editcap=yes)
1091 if test "x$enable_editcap" = "xyes" ; then
1092 editcap_bin="editcap\$(EXEEXT)"
1093 editcap_man="editcap.1"
1098 AC_SUBST(editcap_bin)
1099 AC_SUBST(editcap_man)
1101 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1104 # Enable/disable capinfos
1106 AC_ARG_ENABLE(capinfos,
1107 AC_HELP_STRING( [--enable-capinfos],
1108 [build capinfos @<:@default=yes@:>@]),
1109 enable_capinfos=$enableval,enable_capinfos=yes)
1111 if test "x$enable_capinfos" = "xyes" ; then
1112 capinfos_bin="capinfos\$(EXEEXT)"
1113 capinfos_man="capinfos.1"
1118 AC_SUBST(capinfos_bin)
1119 AC_SUBST(capinfos_man)
1122 # Enable/disable mergecap
1124 AC_ARG_ENABLE(mergecap,
1125 AC_HELP_STRING( [--enable-mergecap],
1126 [build mergecap @<:@default=yes@:>@]),
1127 enable_mergecap=$enableval,enable_mergecap=yes)
1129 if test "x$enable_mergecap" = "xyes" ; then
1130 mergecap_bin="mergecap\$(EXEEXT)"
1131 mergecap_man="mergecap.1"
1136 AC_SUBST(mergecap_bin)
1137 AC_SUBST(mergecap_man)
1140 # Enable/disable text2pcap
1142 AC_ARG_ENABLE(text2pcap,
1143 AC_HELP_STRING( [--enable-text2pcap],
1144 [build text2pcap @<:@default=yes@:>@]),
1145 text2pcap=$enableval,enable_text2pcap=yes)
1147 if test "x$enable_text2pcap" = "xyes" ; then
1148 text2pcap_bin="text2pcap\$(EXEEXT)"
1149 text2pcap_man="text2pcap.1"
1154 AC_SUBST(text2pcap_bin)
1155 AC_SUBST(text2pcap_man)
1158 # Enable/disable dftest
1160 AC_ARG_ENABLE(dftest,
1161 AC_HELP_STRING( [--enable-dftest],
1162 [build dftest @<:@default=yes@:>@]),
1163 enable_dftest=$enableval,enable_dftest=yes)
1165 if test "x$enable_dftest" = "xyes" ; then
1166 dftest_bin="dftest\$(EXEEXT)"
1167 dftest_man="dftest.1"
1172 AC_SUBST(dftest_bin)
1173 AC_SUBST(dftest_man)
1176 # Enable/disable randpkt
1178 AC_ARG_ENABLE(randpkt,
1179 AC_HELP_STRING( [--enable-randpkt],
1180 [build randpkt @<:@default=yes@:>@]),
1181 enable_randpkt=$enableval,enable_randpkt=yes)
1183 if test "x$enable_randpkt" = "xyes" ; then
1184 randpkt_bin="randpkt\$(EXEEXT)"
1185 randpkt_man="randpkt.1"
1190 AC_SUBST(randpkt_bin)
1191 AC_SUBST(randpkt_man)
1195 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1196 dnl "gethostbyname()".
1197 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1199 dnl Checks for "connect()", used as a proxy for "socket()" - and
1200 dnl "-lsocket", if we need it to get "connect()".
1201 AC_WIRESHARK_SOCKET_LIB_CHECK
1204 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1207 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1208 [use libpcap for packet capturing @<:@default=yes@:>@]),
1210 if test $withval = no
1213 elif test $withval = yes
1224 if test "x$want_pcap" = "xno" ; then
1228 AC_WIRESHARK_PCAP_CHECK
1231 # Enable/disable dumpcap
1234 AC_MSG_CHECKING(whether to build dumpcap)
1236 AC_ARG_ENABLE(dumpcap,
1237 AC_HELP_STRING( [--enable-dumpcap],
1238 [build dumpcap @<:@default=yes@:>@]),
1239 enable_dumpcap=$enableval,enable_dumpcap=yes)
1241 if test "x$enable_dumpcap" = "xyes" ; then
1242 if test "x$want_pcap" = "xno" ; then
1244 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1252 if test "x$enable_dumpcap" = "xyes" ; then
1253 dumpcap_bin="dumpcap\$(EXEEXT)"
1254 dumpcap_man="dumpcap.1"
1259 AC_SUBST(dumpcap_bin)
1260 AC_SUBST(dumpcap_man)
1262 # Enable/disable rawshark
1265 AC_MSG_CHECKING(whether to build rawshark)
1267 AC_ARG_ENABLE(rawshark,
1268 AC_HELP_STRING( [--enable-rawshark],
1269 [build rawshark @<:@default=yes@:>@]),
1270 rawshark=$enableval,enable_rawshark=yes)
1272 if test "x$enable_rawshark" = "xyes" ; then
1273 if test "x$want_pcap" = "xno" ; then
1275 AC_MSG_RESULT(pcap not available - disabling rawshark)
1283 if test "x$enable_rawshark" = "xyes" ; then
1284 rawshark_bin="rawshark\$(EXEEXT)"
1285 rawshark_man="rawshark.1"
1290 AC_SUBST(rawshark_bin)
1291 AC_SUBST(rawshark_man)
1293 dnl Use pcap-ng by default
1294 AC_ARG_ENABLE(pcap-ng-default,
1295 AC_HELP_STRING( [--enable-pcap-ng-default],
1296 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1297 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1298 if test x$enable_pcap_ng_default = xyes; then
1299 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1302 dnl pcap remote check
1303 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1305 AC_ARG_WITH(pcap-remote,
1306 AC_HELP_STRING([--with-pcap-remote],
1307 [use libpcap remote capturing (requires libpcap)]),
1309 if test $withval = no
1313 want_pcap_remote=yes
1318 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1322 AC_WIRESHARK_PCAP_REMOTE_CHECK
1326 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1329 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1330 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1332 if test "x$withval" = "xno"
1335 elif test "x$withval" = "xyes"
1344 # Use zlib if it's present, otherwise don't.
1346 want_zlib=ifavailable
1349 if test "x$want_zlib" = "xno" ; then
1353 AC_WIRESHARK_ZLIB_CHECK
1354 if test "x$want_zlib" = "xno" ; then
1355 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1357 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1358 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1364 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1367 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1368 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1370 if test $withval = no
1373 elif test $withval = yes
1382 # Use liblua by default
1384 want_lua=ifavailable
1387 if test "x$want_lua" = "xno" ; then
1391 AC_WIRESHARK_LIBLUA_CHECK
1392 if test "x$want_lua" = "xno" ; then
1393 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1396 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1400 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1402 AC_ARG_WITH(portaudio,
1403 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1404 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1406 if test $withval = no
1409 elif test $withval = yes
1414 portaudio_dir=$withval
1418 # Use libportaudio by default
1420 want_portaudio=ifavailable
1423 if test "x$want_portaudio" = "xno" ; then
1427 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1428 if test "x$want_portaudio" = "xno" ; then
1429 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1432 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1437 AC_HELP_STRING( [--enable-ipv6],
1438 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1439 enable_ipv6=$enableval,enable_ipv6=yes)
1441 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1442 if test "x$enable_ipv6" = "xno" ; then
1446 AC_WIRESHARK_IPV6_STACK
1450 dnl Check if dumpcap should be installed with filesystem capabilities
1451 AC_PATH_PROG(SETCAP, setcap)
1452 AC_ARG_ENABLE(setcap-install,
1453 AC_HELP_STRING( [--enable-setcap-install],
1454 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1455 enable_setcap_install=$enableval,enable_setcap_install=no)
1457 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1458 if test "x$enable_setcap_install" = "xno" ; then
1461 if test "x$SETCAP" = "x" ; then
1462 AC_MSG_RESULT(no. Setcap not found)
1463 elif test "x$enable_dumpcap" = "xno" ; then
1464 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1470 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1472 dnl Check if dumpcap should be installed setuid
1473 AC_ARG_ENABLE(setuid-install,
1474 AC_HELP_STRING( [--enable-setuid-install],
1475 [install dumpcap as setuid @<:@default=no@:>@]),
1476 enable_setuid_install=$enableval,enable_setuid_install=no)
1478 AC_MSG_CHECKING(whether to install dumpcap setuid)
1479 if test "x$enable_setuid_install" = "xno" ; then
1482 if test "x$enable_setcap_install" = "xyes" ; then
1483 enable_setuid_install=no
1484 AC_MSG_RESULT(no; using setcap instead)
1485 elif test "x$enable_dumpcap" = "xno" ; then
1486 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1492 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1493 AC_CHECK_FUNCS(setresuid setresgid)
1495 dnl ...but our Network Operations group is named "no"!
1497 AC_ARG_WITH(dumpcap-group,
1498 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1499 [restrict dumpcap to GROUP]),
1501 if test "x$withval" = "xyes"; then
1502 AC_MSG_ERROR([No dumpcap group specified.])
1503 elif test "x$withval" != "xno"; then
1504 if test "x$enable_dumpcap" = "xno" ; then
1505 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1507 AC_MSG_RESULT($withval)
1508 DUMPCAP_GROUP="$withval"
1511 AC_SUBST(DUMPCAP_GROUP)
1512 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1514 dnl libcap (not libpcap) check
1516 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1519 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1520 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1522 if test "x$withval" = "xno"; then
1524 elif test "x$withval" = "xyes"; then
1526 elif test -d "$withval"; then
1528 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1531 if test "x$with_libcap" = "xno" ; then
1535 AC_WIRESHARK_LIBCAP_CHECK
1537 AC_SUBST(LIBCAP_LIBS)
1539 dnl Checks for header files.
1540 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1541 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)
1542 AC_CHECK_HEADERS(netinet/in.h)
1543 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1547 AC_MSG_CHECKING(whether to use SSL library)
1550 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1551 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1553 if test "x$withval" = "xno"; then
1555 elif test "x$withval" = "xyes"; then
1557 elif test -d "$withval"; then
1559 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1564 if test "x$want_ssl" = "xyes"; then
1566 AC_CHECK_LIB(crypto,EVP_md5,
1571 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1579 AC_MSG_CHECKING(whether to use Kerberos library)
1582 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1583 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1585 if test $withval = no
1588 elif test $withval = yes
1597 # Use Kerberos library if available, otherwise don't.
1599 want_krb5=ifavailable
1602 if test "x$want_krb5" = "xno" ; then
1606 AC_WIRESHARK_KRB5_CHECK
1612 AC_MSG_CHECKING(whether to use the c-ares library if available)
1615 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1616 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1618 if test "x$withval" = "xno"; then
1620 elif test "x$withval" = "xyes"; then
1622 elif test -d "$withval"; then
1624 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1627 if test "x$want_c_ares" = "xno" ; then
1631 AC_WIRESHARK_C_ARES_CHECK
1633 AC_SUBST(C_ARES_LIBS)
1637 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1640 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1641 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1643 if test "x$withval" = "xno"; then
1645 elif test "x$withval" = "xyes"; then
1647 elif test -d "$withval"; then
1649 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1652 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1656 AC_WIRESHARK_ADNS_CHECK
1662 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1665 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1666 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1668 if test "x$withval" = "xno"; then
1670 elif test "x$withval" = "xyes"; then
1672 elif test -d "$withval"; then
1674 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1677 if test "x$want_geoip" = "xno"; then
1681 AC_WIRESHARK_GEOIP_CHECK
1683 AC_SUBST(GEOIP_LIBS)
1685 dnl Python devel Check
1686 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1689 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1690 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (EXPERIMENTAL)]),
1692 pythondir='${libdir}/wireshark/python/${VERSION}'
1693 if test "x$withval" = "xno"
1696 elif test "x$withval" = "xyes"
1701 pythondir="$withval"
1704 # By default (user didn't explicitly enable Python), don't enable
1708 #pythondir='${libdir}/wireshark/python/${VERSION}'
1710 if test "x$want_python" = "xno" ; then
1714 AC_WIRESHARK_PYTHON_CHECK
1716 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1720 # Define WS_VAR_IMPORT appropriately for declarations of external
1721 # variables exported from dynamically-linked libraries.
1723 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1726 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1727 # never return (just like Charlie on the MTA).
1729 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1730 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1731 # follow the function name, so we need two different flavors of
1734 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1736 AC_ARG_ENABLE(airpcap,
1737 AC_HELP_STRING( [--enable-airpcap],
1738 [use AirPcap in Wireshark @<:@default=no@:>@]),
1739 enable_airpcap=$enableval
1740 if test x$enable_airpcap != xno; then
1741 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1745 dnl Checks for typedefs, structures, and compiler characteristics.
1748 # Check how we can get the time zone abbreviation
1749 AC_WIRESHARK_TIMEZONE_ABBREV
1751 # We need to know whether "struct sockaddr" has an "sa_len" member
1752 # for get_interface_list().
1754 AC_WIRESHARK_STRUCT_SA_LEN
1756 # We must know our byte order
1759 # Checks whether "-traditional" is needed when using "ioctl".
1760 # XXX - do we need this?
1761 AC_PROG_GCC_TRADITIONAL
1764 AC_CHECK_FUNC(getopt,
1766 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1768 GETOPT_LO="wsgetopt.lo"
1770 if test "$ac_cv_func_getopt" = no ; then
1771 GETOPT_LO="wsgetopt.lo"
1773 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1776 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1777 STRNCASECMP_LO="strncasecmp.lo")
1778 if test "$ac_cv_func_strncasecmp" = no ; then
1779 STRNCASECMP_LO="strncasecmp.lo"
1781 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1782 AC_SUBST(STRNCASECMP_LO)
1784 AC_CHECK_FUNCS(mkstemp mkdtemp)
1786 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1788 if test "$have_inet_aton" = no; then
1789 INET_ATON_LO="inet_aton.lo"
1790 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1794 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1795 AC_SUBST(INET_ATON_LO)
1797 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1798 dnl check for pre-BIND82 inet_pton() bug.
1799 AC_MSG_CHECKING(for broken inet_pton)
1800 AC_TRY_RUN([#include <sys/types.h>
1801 #include <sys/socket.h>
1802 #include <netinet/in.h>
1803 #include <arpa/inet.h>
1808 /* this should return 0 (error) */
1809 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1813 }], [AC_MSG_RESULT(ok);
1814 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1815 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1816 have_inet_pton=no])],
1818 if test "$have_inet_pton" = no; then
1819 INET_PTON_LO="inet_pton.lo"
1823 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1824 AC_SUBST(INET_PTON_LO)
1826 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1827 AC_MSG_CHECKING([for inet_ntop prototype])
1828 AC_TRY_COMPILE([#include <stdio.h>
1829 #include <sys/types.h>
1830 #include <sys/socket.h>
1831 #include <netinet/in.h>
1832 #include <arpa/inet.h>
1834 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1836 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1837 [Define if inet_ntop() prototype exists])], [
1838 AC_TRY_COMPILE([#include <stdio.h>
1839 #include <sys/types.h>
1840 #include <sys/socket.h>
1841 #include <netinet/in.h>
1842 #include <arpa/inet.h>
1844 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1846 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1847 [Define if inet_ntop() prototype exists])], [
1848 AC_MSG_RESULT(no)])])
1850 INET_NTOP_LO="inet_ntop.lo"
1851 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1852 [Define if inet/v6defs.h needs to be included])])
1853 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1854 AC_SUBST(INET_NTOP_LO)
1856 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1857 [STRPTIME_LO="strptime.lo"
1858 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1860 if test "$ac_cv_func_strptime" = no ; then
1861 STRPTIME_LO="strptime.lo"
1863 AC_SUBST(STRPTIME_C)
1864 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1865 AC_SUBST(STRPTIME_LO)
1867 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1868 AC_CHECK_FUNCS(issetugid)
1869 AC_CHECK_FUNCS(mmap mprotect sysconf)
1870 AC_CHECK_FUNCS(strtoll)
1872 dnl blank for now, but will be used in future
1873 AC_SUBST(wireshark_SUBDIRS)
1876 dnl check whether plugins should be enabled and, if they should be,
1877 dnl check for plugins directory - stolen from Amanda's configure.in
1879 dnl we don't wish to expand ${libdir} yet
1880 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1881 AC_ARG_WITH(plugins,
1882 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1883 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1885 if test "x$withval" = "xno"; then
1887 elif test "x$have_plugins" = "xno"; then
1888 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1889 elif test "x$withval" != "xyes"; then
1890 plugindir="$withval"
1893 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1894 if test x$have_plugins = xyes
1896 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1899 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1902 # The plugin dissectors reside in ./plugins/PROTO/
1905 AC_SUBST(PLUGIN_LIBS)
1909 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1910 # (autoconf? automake? libtool?) - with the newer version(s), it's
1911 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1913 # With older version(s) of those tool(s), however, it's not just an
1914 # alias, and the configure scripts don't work without it.
1917 AC_SUBST(LIBTOOL_DEPS)
1919 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1920 if test x$enable_static = xyes -a x$have_plugins = xyes
1922 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1924 AC_SUBST(ENABLE_STATIC)
1926 dnl Save the cacheable configure results to config.cache before recursing
1929 sinclude(plugins/Custom.m4) dnl
1930 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1932 sinclude(asn1/Custom.m4) dnl
1933 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1935 AM_CONFIG_HEADER(config.h)
1940 _CUSTOM_ASN1_AC_OUTPUT_
1941 asn1/acp133/Makefile
1943 asn1/ansi_map/Makefile
1944 asn1/ansi_tcap/Makefile
1948 asn1/charging_ase/Makefile
1953 asn1/credssp/Makefile
1962 asn1/gprscdr/Makefile
1963 asn1/gsm_map/Makefile
1972 asn1/h450-ros/Makefile
1975 asn1/HI2Operations/Makefile
1979 asn1/kerberos/Makefile
1982 asn1/logotypecertextn/Makefile
1985 asn1/lte-rrc/Makefile
1988 asn1/mpeg-audio/Makefile
1989 asn1/mpeg-pes/Makefile
1991 asn1/ns_cert_exts/Makefile
1999 asn1/pkcs12/Makefile
2000 asn1/pkinit/Makefile
2001 asn1/pkixac/Makefile
2002 asn1/pkix1explicit/Makefile
2003 asn1/pkix1implicit/Makefile
2004 asn1/pkixproxy/Makefile
2005 asn1/pkixqualified/Makefile
2006 asn1/pkixtsp/Makefile
2009 asn1/q932-ros/Makefile
2020 asn1/sbc-ap/Makefile
2023 asn1/spnego/Makefile
2031 asn1/wlancertextn/Makefile
2033 asn1/x509af/Makefile
2034 asn1/x509ce/Makefile
2035 asn1/x509if/Makefile
2036 asn1/x509sat/Makefile
2043 epan/dfilter/Makefile
2044 epan/dissectors/Makefile
2045 epan/dissectors/dcerpc/Makefile
2046 epan/dissectors/pidl/Makefile
2047 epan/ftypes/Makefile
2049 epan/wspython/Makefile
2059 packaging/macosx/Info.plist
2060 packaging/macosx/Makefile
2061 packaging/nsis/Makefile
2062 packaging/rpm/Makefile
2063 packaging/rpm/SPECS/Makefile
2064 packaging/rpm/SPECS/wireshark.spec
2065 packaging/svr4/Makefile
2066 packaging/svr4/checkinstall
2067 packaging/svr4/pkginfo
2069 plugins/asn1/Makefile
2070 plugins/docsis/Makefile
2071 plugins/ethercat/Makefile
2072 plugins/giop/Makefile
2073 plugins/gryphon/Makefile
2074 plugins/irda/Makefile
2075 plugins/m2m/Makefile
2076 plugins/mate/Makefile
2077 plugins/opcua/Makefile
2078 plugins/profinet/Makefile
2079 plugins/stats_tree/Makefile
2080 plugins/unistim/Makefile
2081 plugins/wimax/Makefile
2082 plugins/wimaxasncp/Makefile
2084 tools/lemon/Makefile
2089 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2094 if test "x$have_qt" = "xyes"; then
2095 gui_lib_message=" (with Qt)"
2097 if test "x$have_gtk" = "xyes"; then
2098 if test "x$with_gtk3" = "xyes"; then
2099 gui_lib_message=" (with GTK+ 3"
2101 gui_lib_message=" (with GTK+ 2"
2103 if test "x$have_ige_mac" = "xyes"; then
2104 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2106 gui_lib_message="$gui_lib_message)"
2111 if test "x$enable_setcap_install" = "xyes" ; then
2112 setcap_message="yes"
2117 if test "x$enable_setuid_install" = "xyes" ; then
2118 setuid_message="yes"
2123 if test "x$DUMPCAP_GROUP" = "x" ; then
2124 dumpcap_group_message="(none)"
2126 dumpcap_group_message="$DUMPCAP_GROUP"
2129 if test "x$want_zlib" = "xno" ; then
2135 if test "x$want_lua" = "xyes" ; then
2141 if test "x$want_python" = "xno"; then
2144 python_message="yes"
2147 if test "x$want_portaudio" = "xyes" ; then
2148 portaudio_message="yes"
2150 portaudio_message="no"
2153 if test "x$want_ssl" = "xno" ; then
2159 if test "x$want_krb5" = "xno" ; then
2162 krb5_message="yes ($ac_krb5_version)"
2165 if test "x$have_good_c_ares" = "xyes" ; then
2166 c_ares_message="yes"
2171 if test "x$have_good_adns" = "xyes" ; then
2174 if test "x$have_good_c_ares" = "xyes" ; then
2175 adns_message="no (using c-ares instead)"
2181 if test "x$have_good_libcap" = "xyes" ; then
2182 libcap_message="yes"
2187 if test "x$have_good_geoip" = "xyes" ; then
2194 echo "The Wireshark package has been configured with the following options."
2195 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2196 echo " Build tshark : $enable_tshark"
2197 echo " Build capinfos : $enable_capinfos"
2198 echo " Build editcap : $enable_editcap"
2199 echo " Build dumpcap : $enable_dumpcap"
2200 echo " Build mergecap : $enable_mergecap"
2201 echo " Build text2pcap : $enable_text2pcap"
2202 echo " Build randpkt : $enable_randpkt"
2203 echo " Build dftest : $enable_dftest"
2204 echo " Build rawshark : $enable_rawshark"
2206 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2207 echo " Install dumpcap with capabilities : $setcap_message"
2208 echo " Install dumpcap setuid : $setuid_message"
2209 echo " Use dumpcap group : $dumpcap_group_message"
2210 echo " Use plugins : $have_plugins"
2211 echo " Use Lua library : $lua_message"
2212 echo " Use Python binding : $python_message"
2213 echo " Build rtp_player : $portaudio_message"
2214 echo " Build profile binaries : $enable_profile_build"
2215 echo " Use pcap library : $want_pcap"
2216 echo " Use zlib library : $zlib_message"
2217 echo " Use kerberos library : $krb5_message"
2218 echo " Use c-ares library : $c_ares_message"
2219 echo " Use GNU ADNS library : $adns_message"
2220 echo " Use SMI MIB library : $libsmi_message"
2221 echo " Use GNU crypto library : $gcrypt_message"
2222 echo " Use SSL crypto library : $ssl_message"
2223 echo " Use IPv6 name resolution : $enable_ipv6"
2224 echo " Use gnutls library : $tls_message"
2225 echo " Use POSIX capabilities library : $libcap_message"
2226 echo " Use GeoIP library : $geoip_message"