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.
181 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+.
183 AC_ARG_WITH([gnutls],
184 AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
185 [use GnuTLS library @<:@default=yes@:>@]),
186 with_gnutls="$withval", with_gnutls="yes")
187 if test "x$with_gnutls" = "xyes"; then
188 PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0 gnutls < 3],
190 echo "GnuTLS found, enabling SSL decryption"
191 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
195 echo "GnuTLS not found, disabling SSL decryption"
203 AC_ARG_WITH([gcrypt],
204 AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
205 [use gcrypt library @<:@default=yes@:>@]),
206 with_gcrypt="$withval", with_gcrypt="yes")
207 if test "x$with_gcrypt" = "xyes"; then
208 AM_PATH_LIBGCRYPT(1.1.92,
210 echo "libgcrypt found, enabling ipsec decryption"
211 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
215 if test x$libgcrypt_config_prefix != x ; then
216 AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
218 echo "libgcrypt not found, disabling ipsec decryption"
226 AC_HELP_STRING( [--with-qt=@<:@yes/no@:>@],
227 [use Qt instead of GTK+ @<:@default=no@:>@]),
228 with_qt="$withval", with_qt="no")
231 AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
232 [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
233 with_gtk3="$withval", with_gtk3="no")
236 # FIXME: currently the path argument to with-libsmi is being ignored
240 AC_PATH_PROG(XSLTPROC, xsltproc)
241 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
242 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
245 AC_PATH_PROG(XMLLINT, xmllint)
246 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
247 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
249 # Check for fop (translate .fo to e.g. pdf)
250 AC_PATH_PROG(FOP, fop)
251 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
252 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
255 # Look for something to convert HTML to text (for docbook/)
257 AC_PATH_PROG(ELINKS, elinks)
258 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
259 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
261 ## links: Fails as used in docbook/Makefile.am
262 ## (Rather than fixing things we'll just disable the use of links).
263 ##AC_PATH_PROG(LINKS, links)
264 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
265 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
267 AC_PATH_PROG(LYNX, lynx)
268 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
269 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
272 # Check for hhc (html help compiler)
273 AC_PATH_PROG(HHC, hhc.exe)
274 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
275 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
277 # Check for packaging utilities
278 # For now, we check to see if the various packaging utilites are in our
279 # path. I'm too lazy to write code to go hunt for them. - Gerald
282 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
283 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
284 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
286 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
287 -a x$HAVE_PKGTRANS = xyes ; then
288 HAVE_SVR4_PACKAGING=yes
290 HAVE_SVR4_PACKAGING=no
292 AC_SUBST(HAVE_SVR4_PACKAGING)
295 AC_WIRESHARK_RPM_CHECK
299 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
302 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
303 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
304 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
306 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
307 -a x$HAVE_BLESS = xyes ; then
308 HAVE_OSX_PACKAGING=yes
310 HAVE_OSX_PACKAGING=no
312 AC_SUBST(HAVE_OSX_PACKAGING)
315 # Try to add some additional gcc checks to CFLAGS
317 AC_ARG_ENABLE(extra-gcc-checks,
318 AC_HELP_STRING( [--enable-extra-gcc-checks],
319 [do additional -W checks in GCC @<:@default=no@:>@]),
321 wireshark_extra_gcc_flags=$enableval
322 if test $enableval != no
324 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
325 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
326 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
327 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
328 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
329 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
330 # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
331 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
332 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C)
333 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
334 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
335 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
336 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
337 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
338 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
339 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
340 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
341 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
342 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C)
343 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C)
345 # epan/dissectors/packet-ncp2222.inc blocks this one
348 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
350 # GLib blocks this for now.
352 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
354 # All the registration functions block these for now.
356 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes)
357 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
359 # epan/dissectors/packet-afs.c blocks this one for now.
361 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
363 # More cleanup needed for this on LP64.
365 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
368 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
369 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
370 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement, C)
371 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
372 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
373 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign, C)
374 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
375 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
376 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
377 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C)
378 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-error=unused-but-set-variable) ## for now
380 # Use the faster pre gcc 4.5 floating point precision if available;
381 # clang doesn't error out on -f options that it doesn't know about,
382 # it just warns and ignores them, so this check doesn't cause us
383 # to omit -fexcess-precision=fast, which produces a pile of
386 if test "x$CC" != "xclang" ; then
387 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
390 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
391 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
392 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
393 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
394 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
395 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
398 # If we're running GCC or clang, add '-D_U_="__attribute__((unused))"' to
399 # CPPFLAGS as well, so we can use _U_ to flag unused function arguments and
400 # not get warnings about them. Otherwise, add '-D_U_=""', so that _U_ used
401 # to flag an unused function argument will compile with non-GCC, non-clang
404 # XXX - other compilers?
406 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
407 CPPFLAGS="-D_U_=\"__attribute__((unused))\" $CPPFLAGS"
409 CPPFLAGS="-D_U_=\"\" $CPPFLAGS"
412 # If we're running GCC or CLang, always use FORTIFY_SOURCE=2
413 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
414 # Note: FORTIFY_SOURCE is only effective for gcc -O2 (and -O1 ?)
415 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
416 CPPFLAGS="-D_FORTIFY_SOURCE=2 $CPPFLAGS"
420 # If the compiler supports GCC-style flags, enable a barrier "stop on
422 # This barrier is set for a very large part of the code. However, it is
423 # typically not set for "generated" code (flex, ans2wrs, idl2wrs, ...)
425 warnings_as_errors_default="yes"
426 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
427 AC_ARG_ENABLE(warnings-as-errors,
428 AC_HELP_STRING( [--enable-warnings-as-errors],
429 [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]),
431 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
432 with_warnings_as_errors="yes"
435 with_warnings_as_errors="no"
439 if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
440 with_warnings_as_errors="yes"
443 with_warnings_as_errors="no"
447 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
450 # Add any platform-specific compiler flags needed.
452 AC_MSG_CHECKING(for platform-specific compiler flags)
453 if test "x$GCC" = "xyes" ; then
455 # GCC - do any platform-specific tweaking necessary.
459 # the X11 headers don't automatically include prototype info
460 # and a lot don't include the return type
461 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
462 CFLAGS="$CFLAGS -Wno-return-type"
463 CXXFLAGS="$CXXFLAGS -Wno-return-type"
464 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
468 # See comments above about Apple's lovely C compiler.
470 # NOTE: to AC_PROG_CC, "GCC" means "any compiler that
471 # defines __GNUC__"; clang defines __GNUC__, so that
472 # means we think clang is GCC.
474 # clang whines about -no-cpp-precomp being unused
475 # so we check whether this is really clang, and
476 # only add -no-cpp-precomp if it's not.
478 if test "x$CC" != "xclang" ; then
479 CFLAGS="-no-cpp-precomp $CFLAGS"
480 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
483 # Clang, clang, clang went the trolley....
485 AC_MSG_RESULT(none needed)
489 AC_MSG_RESULT(none needed)
494 # Not GCC - assume it's the vendor's compiler.
499 # HP's ANSI C compiler; flags suggested by Jost Martin.
500 # "-Ae" for ANSI C plus extensions such as "long long".
501 # "+O2", for optimization. XXX - works with "-g"?
503 # HP's ANSI C++ compiler doesn't support "-Ae", but
504 # does support "+O2", at least according to the
505 # documentation I can find online.
507 CFLAGS="-Ae +O2 $CFLAGS"
508 CXXFLAGS="+O2 $CFLAGS"
509 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
513 # It may be called "cc", but it's really a GCC derivative
514 # with a problematic special precompiler and precompiled
515 # headers; turn off the special precompiler, as some
516 # apparently-legal code won't compile with its precompiled
519 # On the other hand, if it's called "clang", it's not a
520 # GCC derivative, and it whines if you pass it
523 # XXX - is there any version of autoconf we support
524 # where it uses another way to decide if the compiler
527 if test "x$CC" != "xclang" ; then
528 CFLAGS="-no-cpp-precomp $CFLAGS"
529 AC_MSG_RESULT(Apple CC - added -no-cpp-precomp)
532 # Clang, clang, clang went the trolley....
534 AC_MSG_RESULT(none needed)
538 AC_MSG_RESULT(none needed)
544 # Add any platform-specific linker flags needed.
546 AC_MSG_CHECKING(for platform-specific linker flags)
550 # Add -Wl,-single_module to the LDFLAGS used with shared
551 # libraries, to fix some error that show up in some cases;
552 # some Apple documentation recommends it for most shared
555 LDFLAGS_SHAREDLIB="-Wl,-single_module"
557 # Add -Wl,-search_paths_first to make sure that if we search
558 # directories A and B, in that order, for a given library, a
559 # non-shared version in directory A, rather than a shared
560 # version in directory B, is chosen (so we can use
561 # --with-pcap=/usr/local to force all programs to be linked
562 # with a static version installed in /usr/local/lib rather than
563 # the system version in /usr/lib).
565 LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
566 AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
570 # Shared libraries in cygwin/Win32 must never contain
573 LDFLAGS="$LDFLAGS -no-undefined"
574 AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
577 AC_MSG_RESULT(none needed)
580 AC_SUBST(LDFLAGS_SHAREDLIB)
582 # Control silent compiling
583 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
586 # On OS X, if we find the headers for Core Foundation, Launch Services,
587 # and Core Services, add -framework options to link with Application
588 # Services (of which Launch Services is a subframework), Core Foundation
589 # (required by the Launch Services APIs), and Core Services, so we can
590 # use them to launch a Web browser from the Help menu and to use
591 # Gestalt() to get the Mac OS X version number.
596 AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
598 ac_coreservices_frameworks="-framework CoreServices"
599 ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
600 LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
603 # include <CoreFoundation/CFBase.h>
604 # include <CoreFoundation/CFString.h>
605 # include <CoreFoundation/CFURL.h>
606 # include <ApplicationServices/ApplicationServices.h>
607 # include <CoreServices/CoreServices.h>
610 CFStringRef url_CFString;
615 url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
616 url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
617 status = LSOpenCFURLRef(url_CFURL, NULL);
619 Gestalt(gestaltSystemVersion, &os_version);
621 ac_cv_can_use_osx_frameworks=yes,
622 ac_cv_can_use_osx_frameworks=no,
623 [echo $ac_n "cross compiling; assumed OK... $ac_c"])
624 if test "$ac_cv_can_use_osx_frameworks" = yes ; then
625 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
626 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
627 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
635 AC_SUBST(CORESERVICES_FRAMEWORKS)
636 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
639 # If using $prefix we add "$prefix/include" to the include search path
640 # and "$prefix/lib" to the library search path.
642 if test "x$prefix" != "x" ; then
643 AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
644 if test -d $prefix/include ; then
647 # Arrange that we search for header files in "$prefix/include", as
648 # various packages we use may have been installed under "$prefix/include".
650 CPPFLAGS="$CPPFLAGS -I$prefix/include"
653 # Arrange that we search for libraries in "$prefix/lib".
655 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
661 dnl Look in /usr/local for header files and libraries ?
662 dnl XXX FIXME don't include /usr/local if it is already in the system
663 dnl search path as this causes gcc 3.2 on Linux to complain about a change
664 dnl of the system search order for includes
665 AC_ARG_ENABLE(usr-local,
666 AC_HELP_STRING( [--enable-usr-local],
667 [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
668 ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
670 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
671 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
672 if test -d "/usr/local"; then
675 # Arrange that we search for header files in the source directory
676 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
677 # as various packages we use ("libpcap", "zlib", "adns")
678 # may have been installed under "/usr/local/include".
680 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
683 # Arrange that we search for libraries in "/usr/local/lib".
685 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
694 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
699 AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
700 if test x$LD_LIBRARY_PATH != x ; then
701 LIBS="$LIBS -R$LD_LIBRARY_PATH"
702 AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
704 AC_MSG_RESULT(no -- this may be a problem in a few seconds)
710 # Check for versions of "sed" inadequate to handle, in libtool, a list
711 # of object files as large as the list in Wireshark.
713 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
714 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
715 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
716 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
717 # is the only "sed" that comes with Solaris that can handle Wireshark.
719 # Add any checks here that are necessary for other OSes.
721 AC_WIRESHARK_GNU_SED_CHECK
722 if test "$HAVE_GNU_SED" = no ; then
725 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
727 /bin/sed|/usr/bin/sed|/usr/ucb/sed)
729 AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
744 # Enable/disable wireshark
746 AC_ARG_ENABLE(wireshark,
747 AC_HELP_STRING( [--enable-wireshark],
748 [build GTK+-based Wireshark @<:@default=yes, if GTK+ available@:>@]),
749 enable_wireshark=$enableval,enable_wireshark=yes)
751 AC_ARG_ENABLE(packet-editor,
752 AC_HELP_STRING( [--enable-packet-editor],
753 [add support for packet editor in Wireshark @<:@default=no@:>@]),
754 enable_packet_editor=$enableval,enable_packet_editor=no)
755 if test x$enable_packet_editor = xyes; then
756 AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
759 AC_ARG_ENABLE(profile-build,
760 AC_HELP_STRING( [--enable-profile-build],
761 [build profile-ready binaries @<:@default=no@:>@]),
762 enable_profile_build=$enableval,enable_profile_build=no)
763 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
764 AC_MSG_CHECKING(if profile builds must be generated)
765 if test "x$enable_profile_build" = "xyes" ; then
766 if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
768 CFLAGS=" -pg $CFLAGS"
769 CXXFLAGS=" -pg $CXXFLAGS"
772 echo "Building profile binaries currently only supported for GCC and clang."
778 # Create DATAFILE_DIR #define for config.h
779 datafiledir=$datadir/wireshark
781 test "x$prefix" = xNONE && prefix=$ac_default_prefix
782 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
783 # Ugly hack, but I don't see how this problem can be solved
784 # properly that DATAFILE_DIR had a value starting with
785 # "${prefix}/" instead of e.g. "/usr/local/"
786 eval eval echo "$datafiledir"
788 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
790 # Create DOC_DIR #define for config.h
792 test "x$prefix" = xNONE && prefix=$ac_default_prefix
793 test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
794 # Ugly hack, but I don't see how this problem can be solved
795 # properly that DOC_DIR had a value starting with
796 # "${prefix}/" instead of e.g. "/usr/local/"
797 eval eval echo "$docdir"
799 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
801 # GTK+ and Qt checks; we require GTK+ 2.12 or later, and, for now,
802 # don't require any particular version of Qt (except perhaps by
803 # implication, as older versions might not support pkgconfig).
805 # We only do those if we're going to be building Wireshark;
806 # otherwise, we don't have any GUI to build, so we don't use
809 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
810 # force all programs to be built with GTK+ or Qt.
812 if test "x$enable_wireshark" = "xyes"; then
813 if test "x$with_qt" = "xyes"; then
814 PKG_CHECK_MODULES([Qt], [QtCore QtGui],
816 CFLAGS="$CFLAGS $Qt_CFLAGS"
817 CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
819 # XXX - greasy hack to make ui/gtk/recent.c
822 CPPFLAGS="-DQT_GUI_LIB $CPPFLAGS"
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 AC_DEFINE(HAVE_GTK, 1,
846 [Define to 1 if compiling with GTK])
850 AM_PATH_GTK_2_0(2.12.0,
852 CFLAGS="$CFLAGS $GTK_CFLAGS"
853 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
855 AC_DEFINE(HAVE_GTK, 1,
856 [Define to 1 if compiling with GTK])
865 # GLib checks; we require GLib 2.14 or later, and require gmodule
866 # support, as we need that for dynamically loading plugins.
867 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
868 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
869 # superset of GLIB_CFLAGS. If we didn't find GTK+, it does add
870 # GLIB_CFLAGS to CFLAGS.
871 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
872 # set when generating the Makefile, so we can make programs that require
873 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
874 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
875 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
876 # programs to be built with GLib.
878 if test "$have_gtk" = "no" ; then
880 # We don't have GTK+.
882 if test "$have_qt" = "yes" ; then
884 # However, we do have Qt, and thus will be building
885 # Wireshark (if the user had explicitly disabled
886 # Wireshark, we wouldn't have looked for Qt, so we
887 # wouldn't think we had it, and thus wouldn't be here).
889 wireshark_bin="wireshark\$(EXEEXT)"
890 wireshark_man="wireshark.1"
891 wireshark_SUBDIRS="codecs ui/qt"
894 # We don't have Qt, either, which means we have no UI
897 # If they didn't explicitly say "--disable-wireshark",
898 # fail (so that, unless they explicitly indicated that
899 # they don't want Wireshark, we stop so they know they
900 # won't be getting Wireshark unless they fix the GTK+/Qt
903 if test "x$enable_wireshark" = "xyes"; then
904 if test "x$with_gtk3" = "xyes"; then
905 AC_MSG_ERROR([GTK+ 3.0 or later isn't available, so Wireshark can't be compiled])
907 AC_MSG_ERROR([Neither Qt nor GTK+ 2.12 or later are available, so Wireshark can't be compiled])
914 AM_PATH_GLIB_2_0(2.14.0,
916 CFLAGS="$CFLAGS $GLIB_CFLAGS"
917 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
918 ], AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
921 # We have GTK+, and thus will be building Wireshark (if the user
922 # had explicitly disabled Wireshark, we wouldn't have looked for
923 # GTK+, so we wouldn't think we had it, and thus wouldn't be here).
925 wireshark_bin="wireshark\$(EXEEXT)"
926 wireshark_man="wireshark.1"
927 wireshark_SUBDIRS="codecs ui/gtk"
928 # Don't use GLIB_CFLAGS
929 AM_PATH_GLIB_2_0(2.14.0, , AC_MSG_ERROR(GLib 2.14 or later distribution not found.), gthread gmodule)
931 CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
932 ## Define GTK_DISABLE_DEPRECATED only if GTK lt 3.2
933 ## GTK 3.2 deprecates GtkVBox & GtkHBox which are currently used extensively by Wireshark.
934 if test $gtk_config_major_version -eq 2 -o $gtk_config_minor_version -lt 2; then
935 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
937 # CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
938 if test $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -ge 20; then
939 # Enable GSEAL when building with GTK > 2.20 and < 3.0
940 # (Versions prior to 2.22 lacked some necessary accessors.)
941 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
945 # Error out if a glib header other than a "top level" header
946 # (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
948 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
950 # Error out on the usage of deprecated glib functions
951 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
954 # Check whether GLib modules are supported, to determine whether we
955 # can support plugins.
957 AC_MSG_CHECKING(whether GLib supports loadable modules)
958 ac_save_CFLAGS="$CFLAGS"
960 CFLAGS="$CFLAGS $GLIB_CFLAGS"
961 LIBS="$GLIB_LIBS $LIBS"
971 if (g_module_supported())
972 return 0; /* success */
974 return 1; /* failure */
976 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
977 [echo $ac_n "cross compiling; assumed OK... $ac_c"
978 ac_cv_glib_supports_modules=yes])
979 CFLAGS="$ac_save_CFLAGS"
981 if test "$ac_cv_glib_supports_modules" = yes ; then
990 # If we have <dlfcn.h>, check whether we can use dladdr to find a
991 # filename (hopefully, a full pathname, but no guarantees) for
994 if test "$ac_cv_header_dlfcn_h" = "yes"
996 AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
997 ac_save_CFLAGS="$CFLAGS"
999 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1000 LIBS="$GLIB_LIBS $LIBS"
1002 #define _GNU_SOURCE /* required on Linux, sigh */
1010 if (!dladdr((void *)main, &info))
1011 return 1; /* failure */
1012 return 0; /* assume success */
1014 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
1015 [echo $ac_n "cross compiling; assumed OK... $ac_c"
1016 ac_cv_dladdr_finds_executable_path=yes])
1017 CFLAGS="$ac_save_CFLAGS"
1018 LIBS="$ac_save_LIBS"
1019 if test x$ac_cv_dladdr_finds_executable_path = xyes
1021 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
1023 AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
1026 if test "x$have_gtk" = "xyes"
1029 # We have GTK+; do we want the OS X integration functions and,
1030 # if so, do we have them and, if so, which versions do we have,
1031 # the old Carbon-based ones or the new Cocoa-based ones?
1033 AC_MSG_CHECKING(whether to use OS X integration functions)
1035 AC_ARG_WITH(osx-integration,
1036 AC_HELP_STRING( [--with-osx-integration],
1037 [use OS X integration functions @<:@default=yes, if available@:>@]),
1039 if test $withval = no
1041 want_osx_integration=no
1043 want_osx_integration=yes
1046 want_osx_integration=yes
1048 if test "x$want_osx_integration" = "xno"; then
1052 AC_WIRESHARK_OSX_INTEGRATION_CHECK
1056 AC_SUBST(wireshark_bin)
1057 AC_SUBST(wireshark_man)
1060 # Enable/disable tshark
1062 AC_ARG_ENABLE(tshark,
1063 AC_HELP_STRING( [--enable-tshark],
1064 [build TShark @<:@default=yes@:>@]),
1065 tshark=$enableval,enable_tshark=yes)
1067 if test "x$enable_tshark" = "xyes" ; then
1068 tshark_bin="tshark\$(EXEEXT)"
1069 tshark_man="tshark.1"
1070 wiresharkfilter_man="wireshark-filter.4"
1075 AC_SUBST(tshark_bin)
1076 AC_SUBST(tshark_man)
1077 AC_SUBST(wiresharkfilter_man)
1081 # Enable/disable editcap
1083 AC_ARG_ENABLE(editcap,
1084 AC_HELP_STRING( [--enable-editcap],
1085 [build editcap @<:@default=yes@:>@]),
1086 enable_editcap=$enableval,enable_editcap=yes)
1088 if test "x$enable_editcap" = "xyes" ; then
1089 editcap_bin="editcap\$(EXEEXT)"
1090 editcap_man="editcap.1"
1095 AC_SUBST(editcap_bin)
1096 AC_SUBST(editcap_man)
1098 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1101 # Enable/disable capinfos
1103 AC_ARG_ENABLE(capinfos,
1104 AC_HELP_STRING( [--enable-capinfos],
1105 [build capinfos @<:@default=yes@:>@]),
1106 enable_capinfos=$enableval,enable_capinfos=yes)
1108 if test "x$enable_capinfos" = "xyes" ; then
1109 capinfos_bin="capinfos\$(EXEEXT)"
1110 capinfos_man="capinfos.1"
1115 AC_SUBST(capinfos_bin)
1116 AC_SUBST(capinfos_man)
1119 # Enable/disable mergecap
1121 AC_ARG_ENABLE(mergecap,
1122 AC_HELP_STRING( [--enable-mergecap],
1123 [build mergecap @<:@default=yes@:>@]),
1124 enable_mergecap=$enableval,enable_mergecap=yes)
1126 if test "x$enable_mergecap" = "xyes" ; then
1127 mergecap_bin="mergecap\$(EXEEXT)"
1128 mergecap_man="mergecap.1"
1133 AC_SUBST(mergecap_bin)
1134 AC_SUBST(mergecap_man)
1137 # Enable/disable text2pcap
1139 AC_ARG_ENABLE(text2pcap,
1140 AC_HELP_STRING( [--enable-text2pcap],
1141 [build text2pcap @<:@default=yes@:>@]),
1142 text2pcap=$enableval,enable_text2pcap=yes)
1144 if test "x$enable_text2pcap" = "xyes" ; then
1145 text2pcap_bin="text2pcap\$(EXEEXT)"
1146 text2pcap_man="text2pcap.1"
1151 AC_SUBST(text2pcap_bin)
1152 AC_SUBST(text2pcap_man)
1155 # Enable/disable dftest
1157 AC_ARG_ENABLE(dftest,
1158 AC_HELP_STRING( [--enable-dftest],
1159 [build dftest @<:@default=yes@:>@]),
1160 enable_dftest=$enableval,enable_dftest=yes)
1162 if test "x$enable_dftest" = "xyes" ; then
1163 dftest_bin="dftest\$(EXEEXT)"
1164 dftest_man="dftest.1"
1169 AC_SUBST(dftest_bin)
1170 AC_SUBST(dftest_man)
1173 # Enable/disable randpkt
1175 AC_ARG_ENABLE(randpkt,
1176 AC_HELP_STRING( [--enable-randpkt],
1177 [build randpkt @<:@default=yes@:>@]),
1178 enable_randpkt=$enableval,enable_randpkt=yes)
1180 if test "x$enable_randpkt" = "xyes" ; then
1181 randpkt_bin="randpkt\$(EXEEXT)"
1182 randpkt_man="randpkt.1"
1187 AC_SUBST(randpkt_bin)
1188 AC_SUBST(randpkt_man)
1192 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1193 dnl "gethostbyname()".
1194 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1196 dnl Checks for "connect()", used as a proxy for "socket()" - and
1197 dnl "-lsocket", if we need it to get "connect()".
1198 AC_WIRESHARK_SOCKET_LIB_CHECK
1201 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1204 AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1205 [use libpcap for packet capturing @<:@default=yes@:>@]),
1207 if test $withval = no
1210 elif test $withval = yes
1221 if test "x$want_pcap" = "xno" ; then
1225 AC_WIRESHARK_PCAP_CHECK
1229 dnl Check for airpcap
1230 AC_MSG_CHECKING(whether to include airpcap support)
1231 AC_ARG_ENABLE(airpcap,
1232 AC_HELP_STRING( [--enable-airpcap],
1233 [use AirPcap in Wireshark @<:@default=yes@:>@]),
1234 enable_airpcap=$enableval, enable_airpcap=yes)
1236 if test x$enable_airpcap = xyes; then
1237 if test "x$want_pcap" = "xno" ; then
1239 AC_MSG_RESULT(pcap not available - disabling airpcap)
1242 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1250 AC_MSG_CHECKING(whether to build dumpcap)
1252 AC_ARG_ENABLE(dumpcap,
1253 AC_HELP_STRING( [--enable-dumpcap],
1254 [build dumpcap @<:@default=yes@:>@]),
1255 enable_dumpcap=$enableval,enable_dumpcap=yes)
1257 if test "x$enable_dumpcap" = "xyes" ; then
1258 if test "x$want_pcap" = "xno" ; then
1260 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1268 if test "x$enable_dumpcap" = "xyes" ; then
1269 dumpcap_bin="dumpcap\$(EXEEXT)"
1270 dumpcap_man="dumpcap.1"
1275 AC_SUBST(dumpcap_bin)
1276 AC_SUBST(dumpcap_man)
1278 # Enable/disable rawshark
1281 AC_MSG_CHECKING(whether to build rawshark)
1283 AC_ARG_ENABLE(rawshark,
1284 AC_HELP_STRING( [--enable-rawshark],
1285 [build rawshark @<:@default=yes@:>@]),
1286 rawshark=$enableval,enable_rawshark=yes)
1288 if test "x$enable_rawshark" = "xyes" ; then
1289 if test "x$want_pcap" = "xno" ; then
1291 AC_MSG_RESULT(pcap not available - disabling rawshark)
1299 if test "x$enable_rawshark" = "xyes" ; then
1300 rawshark_bin="rawshark\$(EXEEXT)"
1301 rawshark_man="rawshark.1"
1306 AC_SUBST(rawshark_bin)
1307 AC_SUBST(rawshark_man)
1309 dnl Use pcap-ng by default
1310 AC_ARG_ENABLE(pcap-ng-default,
1311 AC_HELP_STRING( [--enable-pcap-ng-default],
1312 [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1313 enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1314 if test x$enable_pcap_ng_default = xyes; then
1315 AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1318 dnl pcap remote check
1319 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1321 AC_ARG_WITH(pcap-remote,
1322 AC_HELP_STRING([--with-pcap-remote],
1323 [use libpcap remote capturing (requires libpcap)]),
1325 if test $withval = no
1329 want_pcap_remote=yes
1334 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1338 AC_WIRESHARK_PCAP_REMOTE_CHECK
1342 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1345 AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1346 [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1348 if test "x$withval" = "xno"
1351 elif test "x$withval" = "xyes"
1360 # Use zlib if it's present, otherwise don't.
1362 want_zlib=ifavailable
1365 if test "x$want_zlib" = "xno" ; then
1369 AC_WIRESHARK_ZLIB_CHECK
1370 if test "x$want_zlib" = "xno" ; then
1371 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1373 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1374 AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1380 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
1383 AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1384 [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1386 if test $withval = no
1389 elif test $withval = yes
1398 # Use liblua by default
1400 want_lua=ifavailable
1403 if test "x$want_lua" = "xno" ; then
1407 AC_WIRESHARK_LIBLUA_CHECK
1408 if test "x$want_lua" = "xno" ; then
1409 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1412 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1416 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1418 AC_ARG_WITH(portaudio,
1419 AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1420 [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
1422 if test $withval = no
1425 elif test $withval = yes
1430 portaudio_dir=$withval
1434 # Use libportaudio by default
1436 want_portaudio=ifavailable
1439 if test "x$want_portaudio" = "xno" ; then
1443 AC_WIRESHARK_LIBPORTAUDIO_CHECK
1444 if test "x$want_portaudio" = "xno" ; then
1445 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1448 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1453 AC_HELP_STRING( [--enable-ipv6],
1454 [use IPv6 name resolution, if available @<:@default=yes@:>@]),
1455 enable_ipv6=$enableval,enable_ipv6=yes)
1457 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1458 if test "x$enable_ipv6" = "xno" ; then
1462 AC_WIRESHARK_IPV6_STACK
1466 dnl Check if dumpcap should be installed with filesystem capabilities
1467 AC_PATH_PROG(SETCAP, setcap)
1468 AC_ARG_ENABLE(setcap-install,
1469 AC_HELP_STRING( [--enable-setcap-install],
1470 [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1471 enable_setcap_install=$enableval,enable_setcap_install=no)
1473 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1474 if test "x$enable_setcap_install" = "xno" ; then
1477 if test "x$SETCAP" = "x" ; then
1478 AC_MSG_RESULT(no. Setcap not found)
1479 elif test "x$enable_dumpcap" = "xno" ; then
1480 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1486 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1488 dnl Check if dumpcap should be installed setuid
1489 AC_ARG_ENABLE(setuid-install,
1490 AC_HELP_STRING( [--enable-setuid-install],
1491 [install dumpcap as setuid @<:@default=no@:>@]),
1492 enable_setuid_install=$enableval,enable_setuid_install=no)
1494 AC_MSG_CHECKING(whether to install dumpcap setuid)
1495 if test "x$enable_setuid_install" = "xno" ; then
1498 if test "x$enable_setcap_install" = "xyes" ; then
1499 enable_setuid_install=no
1500 AC_MSG_RESULT(no; using setcap instead)
1501 elif test "x$enable_dumpcap" = "xno" ; then
1502 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1508 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1509 AC_CHECK_FUNCS(setresuid setresgid)
1511 dnl ...but our Network Operations group is named "no"!
1513 AC_ARG_WITH(dumpcap-group,
1514 AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1515 [restrict dumpcap to GROUP]),
1517 if test "x$withval" = "xyes"; then
1518 AC_MSG_ERROR([No dumpcap group specified.])
1519 elif test "x$withval" != "xno"; then
1520 if test "x$enable_dumpcap" = "xno" ; then
1521 AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
1523 AC_MSG_RESULT($withval)
1524 DUMPCAP_GROUP="$withval"
1527 AC_SUBST(DUMPCAP_GROUP)
1528 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1530 dnl libcap (not libpcap) check
1532 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1535 AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1536 [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
1538 if test "x$withval" = "xno"; then
1540 elif test "x$withval" = "xyes"; then
1542 elif test -d "$withval"; then
1544 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1547 if test "x$with_libcap" = "xno" ; then
1551 AC_WIRESHARK_LIBCAP_CHECK
1553 AC_SUBST(LIBCAP_LIBS)
1555 dnl Checks for header files.
1556 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1557 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)
1558 AC_CHECK_HEADERS(netinet/in.h)
1559 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1563 AC_MSG_CHECKING(whether to use SSL library)
1566 AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1567 [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
1569 if test "x$withval" = "xno"; then
1571 elif test "x$withval" = "xyes"; then
1573 elif test -d "$withval"; then
1575 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1580 if test "x$want_ssl" = "xyes"; then
1582 AC_CHECK_LIB(crypto,EVP_md5,
1587 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1595 AC_MSG_CHECKING(whether to use Kerberos library)
1598 AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1599 [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
1601 if test $withval = no
1604 elif test $withval = yes
1613 # Use Kerberos library if available, otherwise don't.
1615 want_krb5=ifavailable
1618 if test "x$want_krb5" = "xno" ; then
1622 AC_WIRESHARK_KRB5_CHECK
1628 AC_MSG_CHECKING(whether to use the c-ares library if available)
1631 AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1632 [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
1634 if test "x$withval" = "xno"; then
1636 elif test "x$withval" = "xyes"; then
1638 elif test -d "$withval"; then
1640 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1643 if test "x$want_c_ares" = "xno" ; then
1647 AC_WIRESHARK_C_ARES_CHECK
1649 AC_SUBST(C_ARES_LIBS)
1653 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1656 AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1657 [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1659 if test "x$withval" = "xno"; then
1661 elif test "x$withval" = "xyes"; then
1663 elif test -d "$withval"; then
1665 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1668 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1672 AC_WIRESHARK_ADNS_CHECK
1678 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1681 AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1682 [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
1684 if test "x$withval" = "xno"; then
1686 elif test "x$withval" = "xyes"; then
1688 elif test -d "$withval"; then
1690 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1693 if test "x$want_geoip" = "xno"; then
1697 AC_WIRESHARK_GEOIP_CHECK
1699 AC_SUBST(GEOIP_LIBS)
1701 dnl Python devel Check
1702 AC_MSG_CHECKING(whether to use the Python interpreter for scripting)
1705 AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1706 [use Python interpreter (installed in DIR, if supplied) @<:@default=no@:>@ (BROKEN/UNSTABLE)]),
1708 pythondir='${libdir}/wireshark/python/${VERSION}'
1709 if test "x$withval" = "xno"
1712 elif test "x$withval" = "xyes"
1717 pythondir="$withval"
1720 # By default (user didn't explicitly enable Python), don't enable
1724 #pythondir='${libdir}/wireshark/python/${VERSION}'
1726 if test "x$want_python" = "xno" ; then
1730 AC_WIRESHARK_PYTHON_CHECK
1732 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python != xno)
1736 # Define WS_VAR_IMPORT appropriately for declarations of external
1737 # variables exported from dynamically-linked libraries.
1739 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1742 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1743 # never return (just like Charlie on the MTA).
1745 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1746 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1747 # follow the function name, so we need two different flavors of
1750 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1752 dnl Checks for typedefs, structures, and compiler characteristics.
1755 # Check how we can get the time zone abbreviation
1756 AC_WIRESHARK_TIMEZONE_ABBREV
1758 # We need to know whether "struct sockaddr" has an "sa_len" member
1759 # for get_interface_list().
1761 AC_WIRESHARK_STRUCT_SA_LEN
1763 # We must know our byte order
1766 # Checks whether "-traditional" is needed when using "ioctl".
1767 # XXX - do we need this?
1768 AC_PROG_GCC_TRADITIONAL
1771 AC_CHECK_FUNC(getopt,
1773 AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
1775 GETOPT_LO="wsgetopt.lo"
1777 if test "$ac_cv_func_getopt" = no ; then
1778 GETOPT_LO="wsgetopt.lo"
1780 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1783 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1784 STRNCASECMP_LO="strncasecmp.lo")
1785 if test "$ac_cv_func_strncasecmp" = no ; then
1786 STRNCASECMP_LO="strncasecmp.lo"
1788 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1789 AC_SUBST(STRNCASECMP_LO)
1791 AC_CHECK_FUNCS(mkstemp mkdtemp)
1793 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1795 if test "$have_inet_aton" = no; then
1796 INET_ATON_LO="inet_aton.lo"
1797 AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1801 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1802 AC_SUBST(INET_ATON_LO)
1804 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1805 dnl check for pre-BIND82 inet_pton() bug.
1806 AC_MSG_CHECKING(for broken inet_pton)
1807 AC_TRY_RUN([#include <sys/types.h>
1808 #include <sys/socket.h>
1809 #include <netinet/in.h>
1810 #include <arpa/inet.h>
1815 /* this should return 0 (error) */
1816 return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1820 }], [AC_MSG_RESULT(ok);
1821 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1822 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1823 have_inet_pton=no])],
1825 if test "$have_inet_pton" = no; then
1826 INET_PTON_LO="inet_pton.lo"
1830 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1831 AC_SUBST(INET_PTON_LO)
1833 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1834 AC_MSG_CHECKING([for inet_ntop prototype])
1835 AC_TRY_COMPILE([#include <stdio.h>
1836 #include <sys/types.h>
1837 #include <sys/socket.h>
1838 #include <netinet/in.h>
1839 #include <arpa/inet.h>
1841 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1843 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1844 [Define if inet_ntop() prototype exists])], [
1845 AC_TRY_COMPILE([#include <stdio.h>
1846 #include <sys/types.h>
1847 #include <sys/socket.h>
1848 #include <netinet/in.h>
1849 #include <arpa/inet.h>
1851 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1853 AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1854 [Define if inet_ntop() prototype exists])], [
1855 AC_MSG_RESULT(no)])])
1857 INET_NTOP_LO="inet_ntop.lo"
1858 AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1859 [Define if inet/v6defs.h needs to be included])])
1860 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1861 AC_SUBST(INET_NTOP_LO)
1863 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1864 [STRPTIME_LO="strptime.lo"
1865 AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1867 if test "$ac_cv_func_strptime" = no ; then
1868 STRPTIME_LO="strptime.lo"
1870 AC_SUBST(STRPTIME_C)
1871 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1872 AC_SUBST(STRPTIME_LO)
1874 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1875 AC_CHECK_FUNCS(issetugid)
1876 AC_CHECK_FUNCS(mmap mprotect sysconf)
1877 AC_CHECK_FUNCS(strtoll)
1879 dnl blank for now, but will be used in future
1880 AC_SUBST(wireshark_SUBDIRS)
1883 dnl check whether plugins should be enabled and, if they should be,
1884 dnl check for plugins directory - stolen from Amanda's configure.in
1886 dnl we don't wish to expand ${libdir} yet
1887 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1888 AC_ARG_WITH(plugins,
1889 AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1890 [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
1892 if test "x$withval" = "xno"; then
1894 elif test "x$have_plugins" = "xno"; then
1895 AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1896 elif test "x$withval" != "xyes"; then
1897 plugindir="$withval"
1900 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1901 if test x$have_plugins = xyes
1903 AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1906 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1909 # The plugin dissectors reside in ./plugins/PROTO/
1912 AC_SUBST(PLUGIN_LIBS)
1916 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1917 # (autoconf? automake? libtool?) - with the newer version(s), it's
1918 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1920 # With older version(s) of those tool(s), however, it's not just an
1921 # alias, and the configure scripts don't work without it.
1924 AC_SUBST(LIBTOOL_DEPS)
1926 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1927 if test x$enable_static = xyes -a x$have_plugins = xyes
1929 AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1931 AC_SUBST(ENABLE_STATIC)
1933 dnl Save the cacheable configure results to config.cache before recursing
1936 sinclude(plugins/Custom.m4) dnl
1937 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1939 sinclude(asn1/Custom.m4) dnl
1940 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
1942 AM_CONFIG_HEADER(config.h)
1947 _CUSTOM_ASN1_AC_OUTPUT_
1948 asn1/acp133/Makefile
1950 asn1/ansi_map/Makefile
1951 asn1/ansi_tcap/Makefile
1955 asn1/charging_ase/Makefile
1960 asn1/credssp/Makefile
1969 asn1/gprscdr/Makefile
1970 asn1/gsm_map/Makefile
1979 asn1/h450-ros/Makefile
1982 asn1/HI2Operations/Makefile
1986 asn1/kerberos/Makefile
1989 asn1/logotypecertextn/Makefile
1992 asn1/lte-rrc/Makefile
1995 asn1/mpeg-audio/Makefile
1996 asn1/mpeg-pes/Makefile
1998 asn1/ns_cert_exts/Makefile
2006 asn1/pkcs12/Makefile
2007 asn1/pkinit/Makefile
2008 asn1/pkixac/Makefile
2009 asn1/pkix1explicit/Makefile
2010 asn1/pkix1implicit/Makefile
2011 asn1/pkixproxy/Makefile
2012 asn1/pkixqualified/Makefile
2013 asn1/pkixtsp/Makefile
2016 asn1/q932-ros/Makefile
2027 asn1/sbc-ap/Makefile
2030 asn1/spnego/Makefile
2038 asn1/wlancertextn/Makefile
2040 asn1/x509af/Makefile
2041 asn1/x509ce/Makefile
2042 asn1/x509if/Makefile
2043 asn1/x509sat/Makefile
2050 epan/dfilter/Makefile
2051 epan/dissectors/Makefile
2052 epan/dissectors/dcerpc/Makefile
2053 epan/dissectors/pidl/Makefile
2054 epan/ftypes/Makefile
2056 epan/wspython/Makefile
2067 packaging/macosx/Info.plist
2068 packaging/macosx/Makefile
2069 packaging/nsis/Makefile
2070 packaging/rpm/Makefile
2071 packaging/rpm/SPECS/Makefile
2072 packaging/rpm/SPECS/wireshark.spec
2073 packaging/svr4/Makefile
2074 packaging/svr4/checkinstall
2075 packaging/svr4/pkginfo
2077 plugins/asn1/Makefile
2078 plugins/docsis/Makefile
2079 plugins/ethercat/Makefile
2080 plugins/giop/Makefile
2081 plugins/gryphon/Makefile
2082 plugins/irda/Makefile
2083 plugins/m2m/Makefile
2084 plugins/mate/Makefile
2085 plugins/opcua/Makefile
2086 plugins/profinet/Makefile
2087 plugins/stats_tree/Makefile
2088 plugins/unistim/Makefile
2089 plugins/wimax/Makefile
2090 plugins/wimaxasncp/Makefile
2092 tools/lemon/Makefile
2097 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2102 if test "x$have_qt" = "xyes"; then
2103 gui_lib_message=" (with Qt)"
2105 if test "x$have_gtk" = "xyes"; then
2106 if test "x$with_gtk3" = "xyes"; then
2107 gui_lib_message=" (with GTK+ 3"
2109 gui_lib_message=" (with GTK+ 2"
2111 if test "x$have_ige_mac" = "xyes"; then
2112 gui_lib_message="$gui_lib_message and Mac OS X integration)"
2114 gui_lib_message="$gui_lib_message)"
2119 if test "x$enable_setcap_install" = "xyes" ; then
2120 setcap_message="yes"
2125 if test "x$enable_setuid_install" = "xyes" ; then
2126 setuid_message="yes"
2131 if test "x$DUMPCAP_GROUP" = "x" ; then
2132 dumpcap_group_message="(none)"
2134 dumpcap_group_message="$DUMPCAP_GROUP"
2137 if test "x$want_zlib" = "xno" ; then
2143 if test "x$want_lua" = "xyes" ; then
2149 if test "x$want_python" = "xno"; then
2152 python_message="yes"
2155 if test "x$want_portaudio" = "xyes" ; then
2156 portaudio_message="yes"
2158 portaudio_message="no"
2161 if test "x$want_ssl" = "xno" ; then
2167 if test "x$want_krb5" = "xno" ; then
2170 krb5_message="yes ($ac_krb5_version)"
2173 if test "x$have_good_c_ares" = "xyes" ; then
2174 c_ares_message="yes"
2179 if test "x$have_good_adns" = "xyes" ; then
2182 if test "x$have_good_c_ares" = "xyes" ; then
2183 adns_message="no (using c-ares instead)"
2189 if test "x$have_good_libcap" = "xyes" ; then
2190 libcap_message="yes"
2195 if test "x$have_good_geoip" = "xyes" ; then
2202 echo "The Wireshark package has been configured with the following options."
2203 echo " Build wireshark : $enable_wireshark""$gui_lib_message"
2204 echo " Build tshark : $enable_tshark"
2205 echo " Build capinfos : $enable_capinfos"
2206 echo " Build editcap : $enable_editcap"
2207 echo " Build dumpcap : $enable_dumpcap"
2208 echo " Build mergecap : $enable_mergecap"
2209 echo " Build text2pcap : $enable_text2pcap"
2210 echo " Build randpkt : $enable_randpkt"
2211 echo " Build dftest : $enable_dftest"
2212 echo " Build rawshark : $enable_rawshark"
2214 echo " Save files as pcap-ng by default : $enable_pcap_ng_default"
2215 echo " Install dumpcap with capabilities : $setcap_message"
2216 echo " Install dumpcap setuid : $setuid_message"
2217 echo " Use dumpcap group : $dumpcap_group_message"
2218 echo " Use plugins : $have_plugins"
2219 echo " Use Lua library : $lua_message"
2220 echo " Use Python binding : $python_message"
2221 echo " Build rtp_player : $portaudio_message"
2222 echo " Build profile binaries : $enable_profile_build"
2223 echo " Use pcap library : $want_pcap"
2224 echo " Use zlib library : $zlib_message"
2225 echo " Use kerberos library : $krb5_message"
2226 echo " Use c-ares library : $c_ares_message"
2227 echo " Use GNU ADNS library : $adns_message"
2228 echo " Use SMI MIB library : $libsmi_message"
2229 echo " Use GNU crypto library : $gcrypt_message"
2230 echo " Use SSL crypto library : $ssl_message"
2231 echo " Use IPv6 name resolution : $enable_ipv6"
2232 echo " Use gnutls library : $tls_message"
2233 echo " Use POSIX capabilities library : $libcap_message"
2234 echo " Use GeoIP library : $geoip_message"