extcap: add udpdump.
[metze/wireshark/wip.git] / configure.ac
1 #
2 # Autoconf script for Wireshark
3 #
4
5 #
6 # Define variables for the components of the Wireshark version number.
7 #
8 m4_define([version_major], [2])
9 m4_define([version_minor], [3])
10 m4_define([version_micro], [0])
11 dnl Updated by make-version.pl
12 m4_define([version_extra], [])
13 m4_define([version_micro_extra], m4_join([], version_micro, version_extra))
14
15 AC_INIT(Wireshark, [version_major.version_minor.version_micro_extra], http://bugs.wireshark.org/, , http://www.wireshark.org/)
16 CONFIG_ARGS="$*"
17 AC_SUBST(CONFIG_ARGS)
18
19 # Minimum autoconf version we require.
20 AC_PREREQ(2.64)
21 # Variable expansion doesn't work in AC_PREREQ()
22 AC_MIN_VERSION=2.64
23 AC_SUBST(AC_MIN_VERSION)
24
25 dnl Make sure to keep ACLOCAL_AMFLAGS in Makefile.am and AC_CONFIG_MACRO_DIRS
26 dnl in configure.ac in sync, otherwise there will be an error running autogen.sh.
27 m4_ifdef([AC_CONFIG_MACRO_DIRS],[AC_CONFIG_MACRO_DIRS([m4])])
28
29 dnl Check for CPU / vendor / OS
30 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
31 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
32 dnl needs.  Using `AC_CANONICAL_TARGET' is enough to run the two other
33 dnl macros.
34 dnl
35 dnl As nothing in the Wireshark is itself a build tool (we are not,
36 dnl for example, a compiler that generates machine code), we probably
37 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
38 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
39 dnl AC_CANONICAL_HOST - instead.  Note that we do have tools, such as
40 dnl lemon, that need to be built for the build machine, not for the
41 dnl host machine, so we might need both.
42 dnl
43 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
44
45 dnl AC_CANONICAL_BUILD
46 dnl AC_CANONICAL_HOST
47 AC_CANONICAL_TARGET
48
49 AM_INIT_AUTOMAKE([1.11 tar-ustar dist-xz no-dist-gzip subdir-objects])
50
51 # Enable silent builds by default. Verbose builds can be enabled with "./configure
52 # --enable-silent-rules ..." or "make V=1 ..."
53 AM_SILENT_RULES([yes])
54
55 # Make Wireshark's version available in config.h
56 AC_DEFINE(VERSION_MAJOR, version_major, [Wireshark's major version])
57 AC_DEFINE(VERSION_MINOR, version_minor, [Wireshark's minor version])
58 AC_DEFINE(VERSION_MICRO, version_micro, [Wireshark's micro version])
59
60 AC_DEFINE_UNQUOTED(VERSION_FLAVOR,
61         ["${WIRESHARK_VERSION_FLAVOR:-"Development Build"}"], [Wireshark's package flavor])
62
63 LT_PREREQ([2.2.2])
64 LT_INIT([disable-static dlopen])
65 AC_SUBST([LIBTOOL_DEPS])
66
67 AC_CONFIG_LIBOBJ_DIR([wsutil])
68
69 #
70 # Checks for programs used in the main build process.
71 #
72 # See doc/README.developer for allowed C99 features
73 #
74 AC_PROG_CC_C99
75 if test "$ac_cv_prog_cc_c99" = "no"
76 then
77         AC_MSG_ERROR([The C compiler does not support C99])
78 fi
79 AC_PROG_CPP
80
81 AC_PROG_CXX
82 if test ! -z "$CXX"; then
83         #
84         # OK, we found something AC_LANG_CXX thinks is a C++ compiler,
85         # but is it one?
86         #
87         # Some UN*Xes have, by default, a case-insensitive file
88         # system, and AC_PROG_CXX looks for, among other things,
89         # "CC" as a C++ compiler, and, if you have a case-insensitive
90         # file system and a C compiler named "cc" (both true, by
91         # default, on OS X), AC_PROG_CXX may end up thinking it's
92         # the C++ compiler.
93         #
94         # So we check by feeding the purported C++ compiler a
95         # program using C++ features (iostream).
96         #
97         AC_MSG_CHECKING(whether $CXX is a C++ compiler)
98         AC_LANG_PUSH([C++])
99         AC_LINK_IFELSE([AC_LANG_PROGRAM(
100         [
101 #include <iostream>
102         ],
103         [
104         std::cout << "Hello World! ";
105         return 0;
106         ])],
107                 [AC_MSG_RESULT(yes)],
108                 [
109                         AC_MSG_RESULT(no)
110                         CXX=""
111                 ])
112         AC_LANG_POP([C++])
113 fi
114
115 # Qt 5.7 or later requires C++11
116 AS_IF([test -n "$CXX"],
117         [AX_CXX_COMPILE_STDCXX([11], [noext], [optional])])
118
119 # Set CC_FOR_BUILD (the *local* gcc to use for building e.g. lemon)
120 if test "x$cross_compiling" = xno -a -z "$CC_FOR_BUILD"; then
121         CC_FOR_BUILD="$CC"
122 fi
123 AX_PROG_CC_FOR_BUILD
124
125 #
126 # Check for versions of "sed" inadequate to handle, in libtool, a list
127 # of object files as large as the list in Wireshark.
128 #
129 AC_PROG_SED
130
131 AC_PROG_LN_S
132 AC_PROG_MKDIR_P
133
134 AC_PATH_PROG(PERL, perl)
135
136 # Check for Python.
137 AC_PATH_PROGS(PYTHON, python python3)
138 if test ! -z "$PYTHON"; then
139         #
140         # OK, we found Python; is it Python 2.5 or later?
141         # Note: we don't use named components for sys.version_info to get
142         # the major version number, as named components for version_info
143         # were apparently introduced in Python 2.7.
144         #
145         AC_MSG_CHECKING([whether $PYTHON is Python 2.5 or later])
146         python_major_version=`$PYTHON -c 'import sys; print (sys.version_info[[0]])'`
147         python_minor_version=`$PYTHON -c 'import sys; print (sys.version_info[[1]])'`
148         if test "$python_major_version" -eq 2 -a "$python_minor_version" -lt 5 ; then
149                 AC_MSG_RESULT(no)
150                 AC_MSG_WARN([Building with Python $python_major_version.$python_minor_version may not work])
151         else
152                 AC_MSG_RESULT(yes)
153         fi
154 else
155         AC_MSG_ERROR(I couldn't find python; make sure it's installed and in your path)
156 fi
157
158 dnl
159 dnl Check for yacc/lex. Distribution tarballs include generated source,
160 dnl in which case these tools are not a mandatory requirement to build.
161 dnl
162 AC_PROG_YACC
163 AS_IF([test "x$YACC" = xyacc], [AS_UNSET(YACC)])
164 AS_IF([test -z "$YACC" -a ! -f $srcdir/wiretap/ascend.c],
165         [AC_MSG_ERROR([I couldn't find bison or byacc; make sure it's installed and in your path])])
166 AM_MISSING_PROG(YACC, bison)
167 AC_PROG_LEX
168 AS_IF([test "x$LEX" != xflex], [AS_UNSET(LEX)])
169 AS_IF([test -z "$LEX" -a ! -f $srcdir/wiretap/ascend_scanner.c],
170         [AC_MSG_ERROR([I couldn't find flex; make sure it's installed and in your path])])
171 AM_MISSING_PROG(LEX, flex)
172
173 AC_PATH_PROG(POD2MAN, pod2man)
174 if test "x$POD2MAN" = x
175 then
176         #
177         # The alternative is not to build the man pages....
178         #
179         AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
180 fi
181 AC_PATH_PROG(POD2HTML, pod2html)
182 if test "x$POD2HTML" = x
183 then
184         #
185         # The alternative is not to build the HTML man pages....
186         #
187         AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
188 fi
189
190 #
191 # Set "ac_supports_gcc_flags" if the compiler is known to support GCC-style
192 # flags such as -pedantic, -W warning flags and -f feature flags.  Currently,
193 # we assume GCC and clang do; other compilers should be added here.
194 #
195 # This is done to avoid getting tripped up by compilers that support
196 # those flags but give them a different meaning.
197 #
198 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
199         ac_supports_gcc_flags=yes
200 fi
201
202 # Check for doxygen
203 AC_PATH_PROG(DOXYGEN, doxygen)
204 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
205 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
206
207 #
208 # Check for pkg-config and set PKG_CONFIG accordingly.
209 #
210 # This is referenced via AC_REQUIRE([PKG_PROG_PKG_CONFIG] in some macros
211 # like PKG_CHECK_MODULES. If the first call to such a macro is under an
212 # "if" statement, it's safer to call PKG_PROG_PKG_CONFIG directly, see
213 # the comments in acolocal.m4
214 #
215 # We want version 0.7 or better.  (XXX - explain why. Is that just
216 # because our Qt tests were originally based on AM_PATH_GTK, and *it*
217 # requires 0.7 or better?)
218 #
219 PKG_PROG_PKG_CONFIG(0.7)
220 if test -z "$PKG_CONFIG"; then
221         AC_MSG_ERROR(I couldn't find pkg-config; make sure it's installed and in your path)
222 fi
223
224 #
225 # Add configure argument to select OSX deployment target.
226 #
227 AC_WIRESHARK_OSX_DEPLOY_TARGET
228
229 #
230 # Try to arrange for large file support.
231 #
232 AC_SYS_LARGEFILE
233
234 #
235 # Check if we need to link with libm
236 #
237 AC_SEARCH_LIBS([cos], [m])
238
239 #
240 # Check for C99 math functions.
241 #
242 AC_CHECK_FUNCS([floorl lrint])
243
244 #
245 # Check if we need to link with -lnsl and -lsocket
246 #
247 AX_LIB_SOCKET_NSL
248
249 #
250 # GUI toolkit options
251 #
252 AC_ARG_WITH([qt],
253   AC_HELP_STRING( [--with-qt=@<:@yes/no/4/5@:>@],
254                   [use Qt @<:@default=yes, if available@:>@]),
255   with_qt="$withval", with_qt="unspecified")
256
257 AC_ARG_WITH([gtk],
258   AC_HELP_STRING( [--with-gtk=@<:@yes/no/2/3@:>@],
259         [use GTK+ @<:@default=yes, if available@:>@]),
260         AS_CASE([$withval],
261           [yes], [with_gtk="3 2 fail"],
262           [no],  [with_gtk="no"],
263           [3],   [with_gtk="3 fail3"],
264           [2],   [with_gtk="2 fail2"],
265           [AC_MSG_ERROR([--with-gtk must be one of yes/no/2/3])]),
266         with_gtk="3 2")
267
268 # GnuTLS
269 # Version 3.0 switched from LGPLv2.1+ to LGPLv3+, then switched back to
270 # LGPLv2.1+ in version 3.1.10.
271 # GnuTLS depends on GMP which switched from LGPLv2.1+ to LGPLv3+ in
272 # version 4.2.2, the switched to LGPLv3+ / GPLv2+ in version 6.0.0.
273
274 tls_message="no"
275 want_gnutls="if_available"
276 AC_ARG_WITH([gnutls],
277   AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
278                   [use GnuTLS library @<:@default=yes, if available@:>@]),
279   [ with_gnutls="$withval"; want_gnutls="yes" ], with_gnutls="yes")
280
281 if test "x$with_gnutls" = "xyes"; then
282   have_license_compatible_gnutls="no"
283   PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 3.1.10 ],
284     [ have_license_compatible_gnutls="yes" ], [ echo "GnuTLS >= 3.1.10 not found " ]
285   )
286
287   if test "x$have_license_compatible_gnutls" != "xyes"; then
288     PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 2.12.0 gnutls < 3],
289       [ have_license_compatible_gnutls="yes" ] , [ echo "GnuTLS >= 2.12.0, < 3.0 not found " ]
290     )
291   fi
292
293   if test "x$have_license_compatible_gnutls" != "xyes"; then
294     if test "x$want_gnutls" = "xyes"; then
295       AC_MSG_ERROR([GnuTLS crypto library was requested, but is not available])
296     else
297       AS_ECHO(["GnuTLS with compatible license not found, disabling SSL decryption"])
298     fi
299   else
300     AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use GnuTLS library])
301     tls_message="yes"
302   fi
303 fi
304
305 # libgrypt
306 gcrypt_message="no"
307 want_gcrypt="if_available"
308 AC_ARG_WITH([gcrypt],
309   AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
310                   [use gcrypt library @<:@default=yes, if available@:>@]),
311   [ with_gcrypt="$withval"; want_gcrypt="yes" ], with_gcrypt="yes")
312
313 if test "x$with_gcrypt" = "xyes"; then
314   AM_PATH_LIBGCRYPT(1.4.2,
315         [
316                 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
317                 gcrypt_message="yes"
318         ]
319         , [
320                 if test x$libgcrypt_config_prefix != x ; then
321                         AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
322                 else
323                         AS_ECHO(["libgcrypt not found, disabling decryption for ipsec, ssl, etc."])
324                         gcrypt_message="no"
325                 fi
326
327                 # Error out if the user explicitly requested gcrypt
328                 if test "x$want_gcrypt" = "xyes"; then
329                     AC_MSG_ERROR([libgcrypt library was requested, but is not available])
330                 fi
331         ]
332   )
333 fi
334
335 AC_ARG_WITH(libnl,
336   AC_HELP_STRING([--with-libnl@<:@=VERSION@:>@],
337                  [use libnl (force version VERSION, if supplied) @<:@default: yes, if available@:>@]),
338 [
339         if test "x$withval" = "xno"
340         then
341                 want_libnl=no
342         elif test "x$withval" = "xyes"
343         then
344                 want_libnl=yes
345                 libnl_version=any
346         elif test "x$withval" = "x1"
347         then
348                 want_libnl=yes
349                 libnl_version=1
350         elif test "x$withval" = "x2"
351         then
352                 want_libnl=yes
353                 libnl_version=2
354         elif test "x$withval" = "x3"
355         then
356                 want_libnl=yes
357                 libnl_version=3
358         else
359                 AC_MSG_ERROR(["$withval" is not a valid argument to --with-libnl])
360         fi
361 ],[
362         #
363         # Use libnl if it's present, otherwise don't.
364         #
365         want_libnl=ifavailable
366         libnl_version=any
367 ])
368 #
369 # Libnl is Linux-specific.
370 #
371 libnl_message="no"
372 case "$host_os" in
373 linux*)
374         AC_MSG_CHECKING(whether to use libnl for various network interface purposes)
375
376         if test x$want_libnl = "xno"; then
377                 AC_MSG_RESULT(no)
378         else
379                 AC_MSG_RESULT(yes)
380                 #
381                 # Test for specific libnl versions only if no version
382                 # was specified by the user or if the version in question
383                 # was requested by the user.
384                 #
385                 if test x$libnl_version = "xany" -o x$libnl_version = "x3"; then
386                         PKG_CHECK_EXISTS([libnl-3.0 libnl-route-3.0 libnl-genl-3.0], [have_libnl3=yes], [have_libnl3=no])
387                 fi
388                 if test x$libnl_version = "xany" -o x$libnl_version = "x2"; then
389                         PKG_CHECK_EXISTS([libnl-2.0], [have_libnl2=yes], [have_libnl2=no])
390                 fi
391                 if test x$libnl_version = "xany" -o x$libnl_version = "x1"; then
392                         PKG_CHECK_EXISTS([libnl-1], [have_libnl1=yes], [have_libnl1=no])
393                 fi
394                 if (test "${have_libnl3}" = "yes"); then
395                         PKG_WIRESHARK_CHECK_SYSTEM_MODULES([LIBNL], [libnl-3.0 libnl-route-3.0 libnl-genl-3.0])
396                         AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
397                         AC_DEFINE(HAVE_LIBNL3, 1, [libnl version 3])
398                         libnl_message="yes (v3)"
399                 elif (test "${have_libnl2}" = "yes"); then
400                         PKG_WIRESHARK_CHECK_SYSTEM_MODULES([LIBNL], [libnl-2.0])
401                         AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
402                         AC_DEFINE(HAVE_LIBNL2, 1, [libnl version 2])
403                         libnl_message="yes (v2)"
404                 elif (test "${have_libnl1}" = "yes"); then
405                         PKG_WIRESHARK_CHECK_SYSTEM_MODULES([LIBNL], [libnl-1])
406                         AC_DEFINE(HAVE_LIBNL, 1, [Enable libnl support])
407                         AC_DEFINE(HAVE_LIBNL1, 1, [libnl version 1])
408                         libnl_message="yes (v1)"
409                 else
410                         if test x$want_libnl = "xyes"; then
411                                 case "$libnl_version" in
412
413                                 any)
414                                         AC_MSG_ERROR("I couldn't find libnl even though you manually enabled it.")
415                                         ;;
416
417                                 *)
418                                         AC_MSG_ERROR("I couldn't find libnl version $libnl_version even though you manually enabled it.")
419                                         ;;
420                                 esac
421                         fi
422                 fi
423         fi
424
425         AC_MSG_CHECKING([if nl80211.h is new enough])
426           AC_TRY_COMPILE([#include <linux/nl80211.h>],
427             [int x = NL80211_FREQUENCY_ATTR_MAX_TX_POWER;
428              x |= NL80211_ATTR_SUPPORTED_IFTYPES;
429              x |= NL80211_ATTR_SUPPORTED_COMMANDS;
430              x |= NL80211_ATTR_WIPHY_FREQ;
431              x |= NL80211_CHAN_NO_HT;
432              (void)x;],
433             [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211, 1, [nl80211.h is new enough])],
434             [AC_MSG_RESULT(no)])
435
436         AC_MSG_CHECKING([for NL80211_SET_CHANNEL])
437           AC_TRY_COMPILE([#include <linux/nl80211.h>],
438             [enum nl80211_commands x = NL80211_CMD_SET_CHANNEL;],
439             [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_CMD_SET_CHANNEL, 1, [SET_CHANNEL is supported])],
440             [AC_MSG_RESULT(no)])
441
442         AC_MSG_CHECKING([for NL80211_SPLIT_WIPHY_DUMP])
443           AC_TRY_COMPILE([#include <linux/nl80211.h>],
444             [enum nl80211_protocol_features x = NL80211_PROTOCOL_FEATURE_SPLIT_WIPHY_DUMP;],
445             [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_SPLIT_WIPHY_DUMP, 1, [SPLIT_WIPHY_DUMP is supported])],
446             [AC_MSG_RESULT(no)])
447
448         AC_MSG_CHECKING([for NL80211_VHT_CAPABILITY])
449           AC_TRY_COMPILE([#include <linux/nl80211.h>],
450             [enum nl80211_attrs x = NL80211_ATTR_VHT_CAPABILITY;],
451             [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_NL80211_VHT_CAPABILITY, 1, [VHT_CAPABILITY is supported])],
452             [AC_MSG_RESULT(no)])
453         ;;
454
455 *)
456         if test x$want_libnl != "xno" -a x$want_libnl != "xifavailable"; then
457                 AC_MSG_WARN([libnl is Linux-specific, ignoring --with-libnl])
458         fi
459 esac
460
461 # libsmi
462 # FIXME: currently the path argument to with-libsmi is being ignored
463 AX_LIBSMI
464
465 #
466 # Check for programs used when building DocBook documentation.
467 #
468 AC_CHECK_PROGS(XSLTPROC, xsltproc, xsltproc)
469 AC_CHECK_PROGS(A2X, a2x, a2x)
470 AC_CHECK_PROGS(FOP, fop, fop)
471
472 # HTML to text processor
473 AC_MSG_CHECKING([for an HTML to text processor])
474 AS_IF([w3m -version >&AS_MESSAGE_LOG_FD 2>&1], [have_a2x_text=w3m],
475         [lynx -version >&AS_MESSAGE_LOG_FD 2>&1], [have_a2x_text=lynx],
476         [have_a2x_text=no])
477 AC_MSG_RESULT([$have_a2x_text])
478 AM_CONDITIONAL(HAVE_A2X_TEXT, [test "x$have_a2x_text" != xno])
479 AS_IF([test $have_a2x_text = lynx], [A2X_LYNX="--lynx"])
480 AC_SUBST(A2X_LYNX)
481
482 # Check for packaging utilities
483 # For now, we check to see if the various packaging utilites are in our
484 # path.  I'm too lazy to write code to go hunt for them.  -  Gerald
485
486 #
487 # Source packages.
488 # (Lets you install the desktop files.)
489 #
490 AC_PATH_PROG(DESKTOP_FILE_INSTALL, desktop-file-install)
491
492 # SVR4/Solaris
493 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
494 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
495 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
496
497 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
498      -a x$HAVE_PKGTRANS = xyes ; then
499   HAVE_SVR4_PACKAGING=yes
500 else
501   HAVE_SVR4_PACKAGING=no
502 fi
503 AC_SUBST(HAVE_SVR4_PACKAGING)
504
505 # RPM
506 #
507 # Looks for the rpmbuild program, and checks to see if we can redefine "_topdir".
508 #
509 AC_CHECK_PROGS(RPMBUILD, [rpmbuild], [false])
510 if test "x$RPMBUILD" != "xfalse" ; then
511         AC_MSG_CHECKING([to see if we can redefine _topdir])
512         rpm --define '_topdir /tmp' > /dev/null 2>&1
513         if test $? -eq 0 ; then
514                 AC_MSG_RESULT(yes)
515                 have_rpm=yes
516         else
517                 AC_MSG_RESULT([no, you'll have to build packages manually])
518                 have_rpm=no
519         fi
520 fi
521 AM_CONDITIONAL(HAVE_RPM, [test "x$have_rpm" = xyes])
522
523 # Debian
524 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
525
526 # OS X
527 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
528 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
529 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
530
531 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
532      -a x$HAVE_BLESS = xyes ; then
533   HAVE_OSX_PACKAGING=yes
534 else
535   HAVE_OSX_PACKAGING=no
536 fi
537 AC_SUBST(HAVE_OSX_PACKAGING)
538
539 #
540 # Use this as a proxy for "is this OS X" (just in case somebody actually
541 # built and installed Darwin as an OS, perhaps with some X11-based GUI,
542 # don't look for Darwin).
543 #
544 AC_CHECK_PROG(have_sw_vers, sw_vers, "yes", "no")
545 AM_CONDITIONAL(NOT_OS_X, test "x$have_sw_vers" = "xno")
546
547 #
548 # Check compiler vendor. For GCC this will be 'gnu' and for Clang 'clang'.
549 #
550 AX_COMPILER_VENDOR
551 if test "x$CXX" != "x" ; then
552         AC_LANG_PUSH(C++)
553         AX_COMPILER_VENDOR
554         AC_LANG_POP
555 fi
556
557 #
558 # Some compilers have to be told to fail when passed an unknown -W flag;
559 # make sure we do that.
560 #
561 AC_WIRESHARK_CHECK_UNKNOWN_WARNING_OPTION_ERROR
562
563 #
564 # Some C++ compilers have to be told to fail when passed a -W flag that
565 # they don't think should apply to C++; make sure we do that.
566 #
567 AC_WIRESHARK_CHECK_NON_CXX_WARNING_OPTION_ERROR
568
569 #
570 # The following are for C and C++
571 #
572 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wall)
573 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wextra)
574 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wendif-labels)
575 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpointer-arith)
576 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wformat-security)
577 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fwrapv)
578 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-strict-overflow)
579 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fno-delete-null-pointer-checks)
580 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wvla)
581 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Waddress)
582 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wattributes)
583 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdiv-by-zero)
584 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wignored-qualifiers)
585 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpragmas)
586 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-overlength-strings)
587 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-long-long)
588 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wheader-guard)
589
590 #
591 # The following are C only, not C++
592 #
593 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wc++-compat, C)
594 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdeclaration-after-statement, C)
595 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunused-const-variable, C)
596
597 #
598 # XXX - OK for C++?
599 #
600 # Make sure -Wshadow doesn't complain about variables in function and
601 # function pointer declarations shadowing other variables; if not, don't
602 # turn it on, as some versions of GCC (including the one in at least
603 # some Xcode versions that came with Mac OS X 10.5) complain about
604 # that.
605 #
606 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshadow, C,
607   [
608 extern int bar(int a);
609 extern int foo(int);
610
611 int
612 foo(int a)
613 {
614         int (*fptr)(int a) = bar;
615
616         return fptr(a) * 2;
617 }
618   ],
619   [warns about variables in function declarations shadowing other variables])
620
621 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-pointer-sign, C)
622 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wold-style-definition, C)
623 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wstrict-prototypes, C)
624
625 # Unfortunately some versions of gcc generate logical-op warnings when strchr()
626 # is given a constant string.
627 # gcc versions 4.3.2 and 4.4.5 are known to have the problem.
628 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wlogical-op, C,
629   [
630 #include <string.h>
631
632 int foo(const char *, int);
633 int bar(void);
634
635 int
636 foo(const char *sep, int c)
637 {
638         if (strchr (sep, c) != NULL)
639                 return 1;
640         else
641                 return 0;
642 }
643
644 int
645 bar(void)
646 {
647         return foo("<", 'a');
648 }
649   ],
650   [generates warnings from strchr()])
651
652 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wjump-misses-init, C)
653 # The Qt headers generate a ton of shortening errors on 64-bit systems
654 # so only enable this for C for now.
655 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wshorten-64-to-32, C)
656
657 # Clang only. Avoid "argument unused during compilation" warnings
658 # (for example, when getting the -gsplit-dwarf option or
659 # when combining -fwrapv with -fno-strict-overflow)
660 if test x"$ax_cv_c_compiler_vendor" = xclang; then
661         AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Qunused-arguments, C)
662 fi
663 if test x"$ax_cv_cxx_compiler_vendor" = xclang; then
664         AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Qunused-arguments, CXX)
665 fi
666
667 #
668 # Use the faster pre gcc 4.5 floating point precision if available.
669 #
670 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fexcess-precision=fast)
671
672 #
673 # Try to have the compiler default to hiding symbols, so that only
674 # symbols explicitly exported with WS_DLL_PUBLIC will be visible
675 # outside (shared) libraries; that way, more UN*X builds will catch
676 # failures to export symbols, rather than having that fail only on
677 # Windows.
678 #
679 # GCC and GCC-compatible compilers
680 #
681 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fvisibility=hidden)
682 if test "x$can_add_to_cflags" = "xno"
683 then
684         #
685         # Sun^WOracle C.
686         #
687         AC_WIRESHARK_COMPILER_FLAGS_CHECK(-xldscope=hidden)
688         if test "x$can_add_to_cflags" = "xno"
689         then
690                 # TODO add other ways of hiding symbols
691                 AC_MSG_WARN(Compiler will export all symbols from shared libraries)
692         fi
693 fi
694
695 #
696 # Try to add some additional checks to CFLAGS.
697 # These are not enabled by default, because the warnings they produce
698 # are very hard or impossible to eliminate.
699 #
700 AC_ARG_ENABLE(extra-compiler-warnings,
701   AC_HELP_STRING( [--enable-extra-compiler-warnings],
702                   [do additional compiler warnings @<:@default=no@:>@]),
703 [
704         wireshark_extra_flags=$enableval
705         if test $enableval != no
706         then
707                 #
708                 # The following are for C and C++
709                 #
710                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wpedantic)
711                 #
712                 # As we use variadic macros, we don't want warnings
713                 # about them, even with -Wpedantic.
714                 #
715                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wno-variadic-macros)
716                 #
717                 # Various code blocks this one.
718                 #
719                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Woverflow)
720                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
721                 #
722                 # Due to various places where APIs we don't control
723                 # require us to cast away constness, we can probably
724                 # never enable this one with -Werror.
725                 #
726                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-qual)
727                 #
728                 # Some generated ASN.1 dissectors block this one;
729                 # multiple function declarations for the same
730                 # function are being generated.
731                 #
732                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wredundant-decls)
733                 #
734                 # Some loops are safe, but it's hard to convince the
735                 # compiler of that.
736                 #
737                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunsafe-loop-optimizations)
738                 #
739                 # All the registration functions block these for now.
740                 #
741                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-prototypes)
742                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wmissing-declarations)
743                 #
744                 # A bunch of "that might not work on SPARC" code blocks
745                 # this one for now.
746                 #
747                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-align)
748                 #
749                 # Works only with Clang
750                 #
751                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunreachable-code)
752                 #
753                 # Works only with Clang but generates a lot of warnings
754                 # (about glib library not using Doxygen)
755                 #
756                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdocumentation)
757
758                 #
759                 # The following are C only, not C++
760                 #
761                 # Due to various places where APIs we don't control
762                 # require us to cast away constness, we can probably
763                 # never enable this one with -Werror.
764                 #
765                 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wbad-function-cast, C)
766         fi
767 ])
768
769 # Try to add ASAN address analyze.
770 # Only needed for analyse
771 #
772 AC_ARG_ENABLE(asan,
773   AC_HELP_STRING( [--enable-asan],
774                   [Enable AddressSanitizer (ASAN) for debugging (degrades performance)@<:@default=no@:>@]),
775 [
776         #
777         # With Clang >= 3.5 Leak detection is enable by default
778         # and no yet all leak is fixed...
779         # use ASAN_OPTIONS=detect_leaks=0 to disable detect_leaks
780         #
781         # XXX shouldn't this also be added to LDFLAGS?
782         AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fsanitize=address)
783
784 ])
785
786 # Add check hf conflict..
787 #
788 AC_ARG_ENABLE(checkhf-conflict,
789   AC_HELP_STRING( [--enable-checkhf-conflict],
790                   [Enable hf conflict check for debugging (start-up may be slower)@<:@default=no@:>@]),
791 [
792         AC_DEFINE(ENABLE_CHECK_FILTER, 1, [Enable hf conflict check])
793 ])
794
795 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
796 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
797 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
798 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
799 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
800 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
801
802 #
803 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
804 # so that we can build dumpcap PIE - it may run with elevated
805 # privileges, and using PIE means the OS can run it at random locations
806 # in the address space to make attacks more difficult.
807 #
808
809 WS_CFLAGS_saved="$WS_CFLAGS"
810 WS_LDFLAGS_saved="$WS_LDFLAGS"
811 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE, C)
812 if test "x$can_add_to_cflags" = "xyes"
813 then
814         AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
815         if test "x$can_add_to_ldflags" = "xyes"
816         then
817                 # We can use PIE
818                 PIE_CFLAGS="-fPIE"
819                 PIE_LDFLAGS="-pie"
820         fi
821 fi
822 WS_CFLAGS="$WS_CFLAGS_saved"
823 WS_LDFLAGS="$WS_LDFLAGS_saved"
824 AC_SUBST(PIE_CFLAGS)
825 AC_SUBST(PIE_LDFLAGS)
826
827 WS_CFLAGS_saved="$WS_CFLAGS"
828 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-msse4.2, C)
829 if test "x$can_add_to_cflags" = "xyes"
830 then
831         #
832         # The compiler supports -msse4.2; use that to enable SSE 4.2.
833         #
834         # We only want to apply -msse4.2 to
835         # wsutil/ws_mempbrk_sse42.c, as the SSE4.2 code there
836         # is run only if the hardware supports it, but other
837         # code would do no such checks.
838         #
839         ac_sse4_2_flag=-msse4.2
840 else
841         #
842         # Try -xarch=sse4_2; that's the flag for Sun's compiler.
843         #
844         AC_WIRESHARK_COMPILER_FLAGS_CHECK(-xarch=sse4_2, C)
845         if test "x$can_add_to_cflags" = "xyes"
846         then
847                 #
848                 # The compiler supports -xarch=sse4_2; use that to
849                 # enable SSE 4.2.
850                 ac_sse4_2_flag=-xarch=sse4_2
851         fi
852 fi
853 WS_CFLAGS="$WS_CFLAGS_saved"
854
855 if test "x$ac_sse4_2_flag" != x; then
856         #
857         # OK, we have a compiler flag to enable SSE 4.2.
858         #
859         # Make sure we have the necessary headers for the SSE4.2 intrinsics
860         # and that we can use them.
861         #
862         # First, check whether we have emmintrin.h and can use it
863         # *without* the SSE 4.2 flag.
864         #
865         AC_MSG_CHECKING([whether there is emmintrin.h header and we can use it])
866         AC_TRY_COMPILE(
867                 [#include <emmintrin.h>],
868                 [return 0;],
869                 [
870                         emmintrin_h_works=yes
871                         AC_MSG_RESULT([yes])
872                 ],
873                 [
874                         emmintrin_h_works=no
875                         AC_MSG_RESULT([no])
876                 ]
877         )
878
879         #
880         # OK, if that works, see whether we have nmmintrin.h and
881         # can use it *with* the SSE 4.2 flag.
882         #
883         if test "x$emmintrin_h_works" = "xyes"; then
884                 #
885                 # Add the SSE4.2 flags to the beginning of CFLAGS,
886                 # in case the user explicitly specified -mno-sse4.2
887                 # (or in case Gentoo's build tools did so); if they
888                 # did so, we only want this to work if we can use
889                 # the #pragma to override that for ws_mempbrk_sse42.c,
890                 # and putting it at the beginning means that the
891                 # CFLAGS setting in the environment will come later
892                 # and override it.
893                 #
894                 AC_MSG_CHECKING([whether there is nmmintrin.h header and we can use it])
895                 saved_CFLAGS="$CFLAGS"
896                 CFLAGS="$ac_sse4_2_flag $WS_CFLAGS $CFLAGS"
897                 AC_TRY_COMPILE(
898                         [#include <nmmintrin.h>],
899                         [return 0;],
900                         [
901                                 have_sse42=yes
902                                 AC_DEFINE(HAVE_SSE4_2, 1, [Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
903                                 CFLAGS_SSE42="$ac_sse4_2_flag"
904                                 AC_MSG_RESULT([yes])
905                         ],
906                         [
907                                 have_sse42=no
908                                 AC_MSG_RESULT([no])
909                         ]
910                 )
911                 CFLAGS="$saved_CFLAGS"
912         else
913                 have_sse42=no
914         fi
915 else
916         have_sse42=no
917 fi
918 dnl build libwsutil_sse42 only if there is SSE4.2
919 AM_CONDITIONAL(SSE42_SUPPORTED, test "x$have_sse42" = "xyes")
920 AC_SUBST(CFLAGS_SSE42)
921
922 #
923 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
924 # so we can use _U_ to flag unused function parameters and not get warnings
925 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
926 # to flag an unused function parameters will compile with other compilers.
927 #
928 # XXX - similar hints for other compilers?
929 #
930 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
931   AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
932   AC_DEFINE(WS_NORETURN, __attribute((noreturn)), [Hint to the compiler that a function never returns])
933 else
934   AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
935   AC_DEFINE(WS_NORETURN, , [Hint to the compiler that a function never returns])
936 fi
937
938 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
939 #  (only if the GCC 'optimization level' > 0).
940 #
941 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
942 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
943 #
944 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
945 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
946
947 #
948 # If the compiler supports GCC-style flags, enable a barrier "stop on
949 # warning".
950 # This barrier is set for a very large part of the code. However, it is
951 # typically not set for "generated" code  (flex, ans2wrs, idl2wrs, ...)
952 #
953 warnings_as_errors_default="yes"
954 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
955 AC_ARG_ENABLE(warnings-as-errors,
956   AC_HELP_STRING( [--enable-warnings-as-errors],
957                   [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra compiler warnings are enabled@:>@]),
958 [
959   if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
960     with_warnings_as_errors="yes"
961     AC_MSG_RESULT(yes)
962   else
963     with_warnings_as_errors="no"
964     AC_MSG_RESULT(no)
965   fi
966 ],
967 [
968   if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
969     with_warnings_as_errors="yes"
970     AC_MSG_RESULT(yes)
971   else
972     with_warnings_as_errors="no"
973     AC_MSG_RESULT(no)
974   fi
975 ])
976
977 AS_IF([test "x$with_warnings_as_errors" = "xyes"], [WERROR="-Werror"], [WERROR=""])
978 AC_SUBST(WERROR)
979 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, [test "x$with_warnings_as_errors" = "xyes"])
980
981 #
982 # Add any platform-specific compiler flags needed.
983 #
984 AC_MSG_CHECKING(for platform-specific compiler flags)
985 if test "x$GCC" = "xyes" ; then
986         #
987         # GCC - do any platform-specific tweaking necessary.
988         #
989         case "$host_os" in
990         solaris*)
991                 # the X11 headers don't automatically include prototype info
992                 # and a lot don't include the return type
993                 WS_CPPFLAGS="$WS_CPPFLAGS -DFUNCPROTO=15"
994                 WS_CFLAGS="$WS_CFLAGS -Wno-return-type"
995                 WS_CXXFLAGS="$WS_CXXFLAGS -Wno-return-type"
996                 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
997                 ;;
998         *)
999                 AC_MSG_RESULT(none needed)
1000                 ;;
1001         esac
1002 else
1003         #
1004         # Not GCC - assume it's the vendor's compiler.
1005         #
1006         case "$host_os" in
1007         hpux*)
1008                 #
1009                 # AC_PROG_CC_STDC should already have added whatever
1010                 # flags are necessary for ISO C - C99 if available,
1011                 # otherwise C89 - with extensions.
1012                 #
1013                 # Add +O2, for optimization, as suggested by Jost Martin.
1014                 # XXX - works with "-g"?
1015                 #
1016                 # +O2 is supported both by the C and C++ compiler.
1017                 #
1018                 WS_CFLAGS="+O2 $WS_CFLAGS"
1019                 if test "$CC" = "$CC_FOR_BUILD"; then
1020                         #
1021                         # We're building the build tools with the same
1022                         # compiler as the one with which we're building
1023                         # Wireshark, so add the flags to the flags for
1024                         # that compiler as well.
1025                         #
1026                         CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
1027                 fi
1028                 WS_CXXFLAGS="+O2 $WS_CXXFLAGS"
1029                 AC_MSG_RESULT(HP C/C++ compiler - added +O2)
1030                 ;;
1031         solaris*)
1032                 #
1033                 # Crank up the warning level.
1034                 #
1035                 WS_CFLAGS="$WS_CFLAGS -v"
1036                 WS_CXXFLAGS="$WS_CXXFLAGS +w2"
1037                 ;;
1038         *)
1039                 AC_MSG_RESULT(none needed)
1040                 ;;
1041         esac
1042 fi
1043
1044 #
1045 # Add any platform-specific linker flags needed.
1046 #
1047 AC_MSG_CHECKING(for platform-specific linker flags)
1048 case "$host_os" in
1049 darwin*)
1050         #
1051         # Add -Wl,-single_module to the LDFLAGS used with shared
1052         # libraries, to fix some error that show up in some cases;
1053         # some Apple documentation recommends it for most shared
1054         # libraries.
1055         #
1056         LDFLAGS_SHAREDLIB="-Wl,-single_module"
1057         #
1058         # Add -Wl,-headerpad_max_install_names to the LDFLAGS, as
1059         # code-signing issues is running out of padding space.
1060         #
1061         # Add -Wl,-search_paths_first to make sure that if we search
1062         # directories A and B, in that order, for a given library, a
1063         # non-shared version in directory A, rather than a shared
1064         # version in directory B, is chosen (so we can use
1065         # --with-pcap=/usr/local to force all programs to be linked
1066         # with a static version installed in /usr/local/lib rather than
1067         # the system version in /usr/lib).
1068         #
1069         WS_LDFLAGS="-Wl,-headerpad_max_install_names -Wl,-search_paths_first $WS_LDFLAGS"
1070         AC_MSG_RESULT([Apple linker - added -Wl,-single_module to shared library linker flags and -Wl,-headerpad_max_install_names -Wl,-search_paths_first and -Wl,-headerpad_max_install_names to all linker flags])
1071         ;;
1072 cygwin*)
1073         #
1074         # Shared libraries in cygwin/Win32 must never contain
1075         # undefined symbols.
1076         #
1077         WS_LDFLAGS="$WS_LDFLAGS -no-undefined"
1078         AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
1079         ;;
1080 *)
1081         AC_MSG_RESULT(none needed)
1082         ;;
1083 esac
1084 AC_SUBST(LDFLAGS_SHAREDLIB)
1085
1086 #
1087 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
1088 # "just Darwin" (as we don't currently support iOS, and as I don't
1089 # think you can build and run "just Darwin" as an OS for PCs), we
1090 # arrange to build some programs with Application Services so they
1091 # can launch Web browsers and Finder windows, arrange to build some
1092 # programs with System Configuration so they can get "friendly names"
1093 # and other information about interfaces, and build any programs that
1094 # use either of those frameworks or that report version information
1095 # with Core Foundation as the frameworks in question use it and as we
1096 # get version information from plists and thus need Core Foundation
1097 # to process those plists.
1098 #
1099 have_os_x_frameworks=no
1100 case "$host_os" in
1101 darwin*)
1102         have_os_x_frameworks=yes
1103         AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
1104         APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
1105         SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
1106         COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
1107
1108         #
1109         # OK, so we have the OS X frameworks; do they include
1110         # CFPropertyListCreateWithStream, or do we have
1111         # to fall back on CFPropertyListCreateFromStream?
1112         # (They only differ in the error return, which we
1113         # don't care about.  And, no, we shouldn't just
1114         # use CFPropertyListCreateFromStream, because it's
1115         # deprecated in newer releases.)
1116         #
1117         ac_save_LIBS="$LIBS"
1118         LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
1119         AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
1120         LIBS="$ac_save_LIBS"
1121         ;;
1122 esac
1123 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
1124 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
1125 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
1126 AM_CONDITIONAL(HAVE_OS_X_FRAMEWORKS, [test "x$have_os_x_frameworks" = "xyes"])
1127
1128 #
1129 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
1130 # link directory.
1131 #
1132 case "$host_os" in
1133   solaris*)
1134     AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
1135     if test x$LD_LIBRARY_PATH != x ; then
1136       LIBS="$LIBS -R$LD_LIBRARY_PATH"
1137       AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
1138     else
1139       AC_MSG_RESULT(no -- this may be a problem in a few seconds)
1140     fi
1141   ;;
1142 esac
1143
1144 # Enable/disable wireshark
1145 AC_ARG_ENABLE(wireshark,
1146   AC_HELP_STRING( [--enable-wireshark],
1147                   [build the Wireshark GUI (with Gtk+, Qt, or both) @<:@default=yes@:>@]),
1148     enable_wireshark=$enableval,enable_wireshark=yes)
1149 AM_CONDITIONAL(BUILDING_WIRESHARK, test x$enable_wireshark = xyes)
1150
1151 AC_ARG_ENABLE(packet-editor,
1152   AC_HELP_STRING( [--enable-packet-editor],
1153                   [add support for packet editor in Wireshark @<:@default=yes@:>@]),
1154     enable_packet_editor=$enableval,enable_packet_editor=yes)
1155 if test x$enable_packet_editor = xyes; then
1156         AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
1157 fi
1158
1159 AC_ARG_ENABLE(profile-build,
1160   AC_HELP_STRING( [--enable-profile-build],
1161                   [build profile-ready binaries @<:@default=no@:>@]),
1162     enable_profile_build=$enableval,enable_profile_build=no)
1163 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
1164 AC_MSG_CHECKING(if profile builds must be generated)
1165 if test "x$enable_profile_build" = "xyes" ; then
1166         if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
1167                 AC_MSG_RESULT(yes)
1168                 WS_CFLAGS="-pg $WS_CFLAGS"
1169                 WS_CXXFLAGS="-pg $WS_CXXFLAGS"
1170         else
1171                 AC_MSG_RESULT(no)
1172                 echo "Building profile binaries currently only supported for GCC and clang."
1173         fi
1174 else
1175         AC_MSG_RESULT(no)
1176 fi
1177
1178 GLIB_MIN_VERSION=2.22.0
1179 AC_SUBST(GLIB_MIN_VERSION)
1180 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1181 # support, as we need that for dynamically loading plugins.
1182 #
1183 # Release dates for GLib versions:
1184 # 2.14.0: 03 Aug 2007
1185 # 2.16.0: 10 Mar 2008
1186 # 2.18.0: 02 Sep 2008
1187 # 2.20.0: 13 Mar 2009
1188 # 2.22.0: 22 Sep 2009
1189 # 2.24.0: 28 Mar 2010
1190 # 2.26.0: 27 Sep 2010
1191 # 2.28.0: 08 Feb 2011
1192 # 2.30.0: 27 Sep 2011
1193 # 2.32.0: 24 Mar 2012
1194 # 2.34.0: 24 Sep 2012
1195 # 2.36.0: 25 Mar 2013
1196 # 2.38.0: 23 Sep 2013
1197 # 2.40.0: 24 Mar 2014
1198 # 2.42.0: 22 Sep 2014
1199 # 2.44.0: 23 Mar 2014
1200 # 2.46.0: 25 Sep 2015
1201
1202 PKG_WIRESHARK_CHECK_SYSTEM_MODULES([GLIB],
1203         [glib-2.0 >= $GLIB_MIN_VERSION gthread-2.0 >= $GLIB_MIN_VERSION gmodule-2.0 >= $GLIB_MIN_VERSION],
1204         [GLIB_VERSION=`$PKG_CONFIG --modversion glib-2.0`],
1205         [AC_MSG_ERROR([GLib $GLIB_MIN_VERSION or later not found.])])
1206
1207 # Error out if a glib header other than a "top level" header
1208 #  (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1209 #  is used.
1210 AX_APPEND_FLAG([-DG_DISABLE_SINGLE_INCLUDES], [GLIB_CONFIG])
1211
1212 # Error out on the usage of deprecated glib functions
1213 AX_APPEND_FLAG([-DG_DISABLE_DEPRECATED], [GLIB_CONFIG])
1214
1215 GLIB_CFLAGS="$GLIB_CONFIG $GLIB_CFLAGS"
1216 AC_SUBST(GLIB_CFLAGS)
1217 AC_SUBST(GLIB_LIBS)
1218
1219 GTK2_MIN_VERSION=2.12.0
1220 AC_SUBST(GTK2_MIN_VERSION)
1221 GTK3_MIN_VERSION=3.0.0
1222 AC_SUBST(GTK3_MIN_VERSION)
1223 QT_MIN_VERSION=4.7.0
1224 AC_SUBST(QT_MIN_VERSION)
1225 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
1226 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
1227 #
1228 # We only do those if we're going to be building Wireshark;
1229 # otherwise, we don't have any GUI to build, so we don't use
1230 # GTK+ or Qt.
1231 #
1232 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
1233 # force all programs to be built with GTK+ or Qt.
1234 #
1235 # Release dates for GTK+ versions:
1236 # https://en.wikipedia.org/wiki/GTK+#Releases
1237 # 2.12.0: 14 Sep 2007
1238 # 2.14.0: 04 Sep 2008
1239 # 2.16.0: 13 Mar 2009
1240 # 2.18.0: 23 Sep 2009
1241 # 2.20.0: 23 Mar 2010
1242 # 2.22.0: 23 Sep 2010
1243 # 2.24.0: 30 Jan 2011
1244 # 3.0.0:  10 Feb 2011
1245 # 3.2.0:  25 Sep 2011
1246 # 3.4.0:  26 Mar 2012
1247 # 3.6.0:  24 Sep 2012
1248 # 3.8.0:  25 Mar 2013
1249 # 3.10.0: 23 Sep 2013
1250 # 3.12.0: 25 Mar 2014
1251 # 3.14.0: 30 Sep 2014
1252 # 3.16.0: 22 Mar 2015
1253 # 3.18.0  22 Sep 2015
1254 #
1255 # Release dates for Qt versions:
1256 # https://en.wikipedia.org/wiki/List_of_Qt_releases
1257 # 4.6.0:  01 Dec 2009
1258 # 4.7.0:  21 Sep 2010
1259 # 4.8.0:  15 Dec 2011
1260 # 5.0.0:  19 Dec 2012
1261 # 5.1.0:  03 Jul 2013
1262 # 5.2.0:  12 Dec 2013
1263 # 5.3.0:  20 May 2014
1264 # 5.4.0:  10 Dec 2015
1265 # 5.5.0:  01 Jul 2015
1266
1267 have_qt=no
1268 have_gtk=no
1269 if test "x$enable_wireshark" = "xyes"; then
1270         if test "x$with_qt" != "xno"; then
1271                 #
1272                 # Qt was specified; make sure we have a C++ compiler.
1273                 #
1274                 if test -z "$CXX"; then
1275                         AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1276                 fi
1277
1278                 #
1279                 # Now make sure we have Qt and, if so, add the flags
1280                 # for it to CFLAGS and CXXFLAGS.
1281                 #
1282                 AC_WIRESHARK_QT_CHECK($QT_MIN_VERSION, "$with_qt",
1283                 [
1284                         AC_SUBST(Qt_CFLAGS)
1285                         AC_SUBST(Qt_LIBS)
1286                         have_qt=yes
1287                         GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-qt"
1288
1289                         #
1290                         # We're building with Qt, so we need the Qt build
1291                         # tools in order to build the Wireshark GUI.
1292                         # We've found a particular major version of Qt,
1293                         # and we want that version's build tools; for
1294                         # example, the Qt 4 version of uic produces files
1295                         # that include Qt headers with paths that work
1296                         # with Qt 4 but not Qt 5, so we can't use the
1297                         # Qt 4 version of uic if we're building with Qt 5.
1298                         AC_WIRESHARK_QT_TOOL_CHECK(UIC, uic, "$qt_version")
1299                         AC_SUBST(UIC)
1300                         AC_WIRESHARK_QT_TOOL_CHECK(MOC, moc, "$qt_version")
1301                         AC_SUBST(MOC)
1302                         AC_WIRESHARK_QT_TOOL_CHECK(RCC, rcc, "$qt_version")
1303                         AC_SUBST(RCC)
1304                         AC_WIRESHARK_QT_TOOL_CHECK_LRELEASE("$qt_version")
1305                         AC_SUBST(LRELEASE)
1306
1307                         #
1308                         # On Darwin, find where the Qt frameworks are
1309                         # located, and add that to the rpath, just in
1310                         # case this is Qt 5.5 or later and the frameworks
1311                         # have an install name that begins with @rpath
1312                         # and aren't installed in a frameworks directory
1313                         # that's searched by default.
1314                         #
1315                         case "$host_os" in
1316                         darwin*)
1317                                 if test $qt_version -le 4
1318                                 then
1319                                         Qt_LDFLAGS="-Wl,-rpath,"`$PKG_CONFIG --libs QtCore | sed -e 's/-F//' -e 's/ -framework.*//'`
1320                                 else
1321                                         Qt_LDFLAGS="-Wl,-rpath,"`$PKG_CONFIG --libs Qt${qt_version}Core | sed -e 's/-F//' -e 's/ -framework.*//'`
1322                                 fi
1323                                 ;;
1324                         esac
1325                         AC_SUBST(Qt_LDFLAGS)
1326
1327                         if test -z "${MOC_OPTIONS+1}"
1328                         then
1329                                 # Squelch moc verbose "nothing to do" output
1330                                 if test $QT_VERSION_MAJOR -eq 5
1331                                 then
1332                                         MOC_OPTIONS="-nn"
1333                                 elif test $QT_VERSION_MAJOR -eq 4 -a $QT_VERSION_MINOR -ge 8
1334                                 then
1335                                         MOC_OPTIONS="-nn"
1336                                 fi
1337                         fi
1338                         AC_SUBST(MOC_OPTIONS)
1339                 ],
1340                 [
1341                         case "$with_qt" in
1342
1343                         unspecified)
1344                                 #
1345                                 # They didn't explicitly ask for Qt,
1346                                 # so just don't build with it.
1347                                 #
1348                                 ;;
1349
1350                         yes)
1351                                 AC_MSG_ERROR([Qt is not available])
1352                                 ;;
1353
1354                         4)
1355                                 AC_MSG_ERROR([Qt 4 is not available])
1356                                 ;;
1357
1358                         5)
1359                                 AC_MSG_ERROR([Qt 5 is not available])
1360                                 ;;
1361                         esac
1362                 ])
1363         fi
1364
1365         for want_gtk_version in $with_gtk; do
1366                 AS_CASE([$want_gtk_version],
1367                   [3], [PKG_WIRESHARK_CHECK_SYSTEM_MODULES([GTK],
1368                         [gtk+-3.0 >= $GTK3_MIN_VERSION glib-2.0 >= $GLIB_MIN_VERSION gthread-2.0 >= $GLIB_MIN_VERSION gmodule-2.0 >= $GLIB_MIN_VERSION],
1369                         [
1370                           have_gtk=yes
1371                           GTK_VERSION=`$PKG_CONFIG --modversion gtk+-3.0`
1372                           GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk=3"
1373                         ],
1374                         [
1375                           :
1376                         ])],
1377                   [2], [PKG_WIRESHARK_CHECK_SYSTEM_MODULES([GTK],
1378                         [gtk+-2.0 >= $GTK2_MIN_VERSION glib-2.0 >= $GLIB_MIN_VERSION gthread-2.0 >= $GLIB_MIN_VERSION gmodule-2.0 >= $GLIB_MIN_VERSION],
1379                         [
1380                           have_gtk=yes
1381                           GTK_VERSION=`$PKG_CONFIG --modversion gtk+-2.0`
1382                           GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk=2"
1383                         ],
1384                         [
1385                           :
1386                         ])],
1387                   [fail3], [AC_MSG_ERROR([GTK+ 3 was requested but is not available])],
1388                   [fail2], [AC_MSG_ERROR([GTK+ 2 was requested but is not available])],
1389                   [fail],  [AC_MSG_ERROR([GTK+ was requested but is not available])])
1390
1391                 AS_IF([test "x$have_gtk" = xyes], [break])
1392         done
1393
1394         if test "$have_gtk" = "yes" ; then
1395                 # If we have GTK then add flags for it.
1396                 #
1397                 # GLib flags first
1398                 #
1399                 GTK_CONFIG="$GLIB_CONFIG"
1400
1401                 gtk_major_version=`echo $GTK_VERSION | cut -d. -f1`
1402                 gtk_minor_version=`echo $GTK_VERSION | cut -d. -f2`
1403
1404                 AX_APPEND_FLAG([-DGDK_DISABLE_DEPRECATED], [GTK_CONFIG])
1405                 if test \( $gtk_major_version -eq 3 -a $gtk_minor_version -ge 10 \) ; then
1406                         ## Allow use of deprecated & disable deprecated warnings if Gtk >= 3.10;
1407                         ##  The deprecations in Gtk 3.10 will not be fixed ...
1408                         AX_APPEND_FLAG([-DGDK_DISABLE_DEPRECATION_WARNINGS], [GTK_CONFIG])
1409                 else
1410                         AX_APPEND_FLAG([-DGTK_DISABLE_DEPRECATED], [GTK_CONFIG])
1411                 fi
1412                 AX_APPEND_FLAG([-DGTK_DISABLE_SINGLE_INCLUDES], [GTK_CONFIG])
1413                 if test ! \( $gtk_major_version -eq 2 -a $gtk_minor_version -lt 20 \) ; then
1414                         # Enable GSEAL when building with GTK > 2.20
1415                         # (Versions prior to 2.22 lacked some necessary accessors.)
1416                         AX_APPEND_FLAG([-DGSEAL_ENABLE], [GTK_CONFIG])
1417                 fi
1418
1419                 GTK_CFLAGS="$GTK_CONFIG $GTK_CFLAGS"
1420         fi
1421 fi
1422
1423 AC_SUBST(GTK_CFLAGS)
1424 AC_SUBST(GTK_LIBS)
1425 AC_SUBST(GUI_CONFIGURE_FLAGS)
1426
1427 # Check for GTK GUI support for GResource pixbufs
1428 have_gresource_pixbuf=no
1429 if test "x$have_gtk" = "xyes"; then
1430         AC_MSG_CHECKING(whether GDK-Pixbuf can load data using GResource)
1431         PKG_CHECK_EXISTS([gio-2.0 >= 2.32 gdk-pixbuf-2.0 >= 2.26],
1432           [
1433            AC_MSG_RESULT(yes)
1434            AC_DEFINE(HAVE_GDK_GRESOURCE, 1, [Defined if GResource is supported])
1435            have_gresource_pixbuf=yes
1436           ],
1437           [AC_MSG_RESULT(no)])
1438 fi
1439 AM_CONDITIONAL(HAVE_GRESOURCE_PIXBUF, test "x$have_gresource_pixbuf" = "xyes")
1440
1441 if test "$have_gtk" = "yes" -a "$have_qt" = "yes" ; then
1442         # We have both GTK and Qt and thus will be building both wireshark
1443         # and wireshark-gtk.
1444
1445         wireshark_bin="wireshark\$(EXEEXT) wireshark-gtk\$(EXEEXT)"
1446         wireshark_man="wireshark.1"
1447         wireshark_SUBDIRS="codecs ui/qt ui/gtk"
1448 fi
1449 if test "$have_gtk" = "no" -a "$have_qt" = "yes" ; then
1450         # We don't have GTK+ but we have Qt.
1451
1452         wireshark_bin="wireshark\$(EXEEXT)"
1453         wireshark_man="wireshark.1"
1454         wireshark_SUBDIRS="codecs ui/qt"
1455 fi
1456 if test "$have_gtk" = "yes" -a "$have_qt" = "no" ; then
1457         # We have GTK+ but not Qt.
1458
1459         wireshark_bin="wireshark-gtk\$(EXEEXT)"
1460         wireshark_man="wireshark.1"
1461         wireshark_SUBDIRS="codecs ui/gtk"
1462         OSX_APP_FLAGS="$OSX_APP_FLAGS -gtk"
1463         OSX_DMG_FLAGS="-gtk"
1464 fi
1465 if test "$have_gtk" = "no" -a "$have_qt" = "no" ; then
1466         # We have neither GTK+ nor Qt.
1467         #
1468         # If they didn't explicitly say "--disable-wireshark",
1469         # fail (so that, unless they explicitly indicated that
1470         # they don't want Wireshark, we stop so they know they
1471         # won't be getting Wireshark unless they fix the GTK+/Qt
1472         # problem).
1473         #
1474         if test "x$enable_wireshark" = "xyes"; then
1475                 AC_MSG_ERROR([Neither Qt nor GTK+ are available, so Wireshark can't be compiled])
1476         fi
1477         wireshark_bin=""
1478         wireshark_man=""
1479         wireshark_SUBDIRS=""
1480 fi
1481
1482 #
1483 # Check whether GLib modules are supported, to determine whether we
1484 # can support plugins.
1485 #
1486
1487 AC_CACHE_CHECK([whether GLib supports loadable modules],
1488                [ac_cv_glib_supports_modules], [
1489 ac_save_CFLAGS="$CFLAGS"
1490 ac_save_LIBS="$LIBS"
1491 CFLAGS="$WS_CFLAGS $GLIB_CFLAGS $CFLAGS"
1492 LIBS="$LIBS $GLIB_LIBS"
1493 AC_TRY_RUN([
1494 #include <glib.h>
1495 #include <gmodule.h>
1496 #include <stdio.h>
1497 #include <stdlib.h>
1498
1499 int
1500 main ()
1501 {
1502   if (g_module_supported())
1503     return 0;   /* success */
1504   else
1505     return 1;   /* failure */
1506 }
1507 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1508    [echo $ac_n "cross compiling; assumed OK... $ac_c"
1509     ac_cv_glib_supports_modules=yes])
1510 CFLAGS="$ac_save_CFLAGS"
1511 LIBS="$ac_save_LIBS"
1512 ])
1513 if test "$ac_cv_glib_supports_modules" = yes ; then
1514   have_plugins=yes
1515   plugins_dir="plugins"
1516 else
1517   have_plugins=no
1518   plugins_dir=""
1519 fi
1520 AC_SUBST(plugins_dir)
1521
1522 #
1523 # If we have <dlfcn.h>, check whether we have dladdr.
1524 #
1525 if test "$ac_cv_header_dlfcn_h" = "yes"
1526 then
1527         #
1528         # Use GLib compiler flags and linker flags; GLib's gmodule
1529         # stuff uses the dl APIs if available, so it might know
1530         # what flags are needed.
1531         #
1532         ac_save_CFLAGS="$CFLAGS"
1533         ac_save_LIBS="$LIBS"
1534         CFLAGS="$WS_CFLAGS $GLIB_CFLAGS $CFLAGS"
1535         LIBS="$LIBS $GLIB_LIBS"
1536         AC_CHECK_FUNCS(dladdr)
1537         if test x$ac_cv_func_dladdr = xno
1538         then
1539                 #
1540                 # OK, try it with -ldl, in case you need that to get
1541                 # dladdr().  For some reason, on Linux, that's not
1542                 # part of the GLib flags; perhaps GLib itself is
1543                 # linked with libdl, so that you can link with
1544                 # Glib and it'll pull libdl in itself.
1545                 #
1546                 LIBS="$LIBS -ldl"
1547                 AC_CHECK_FUNCS(dladdr)
1548         fi
1549         CFLAGS="$ac_save_CFLAGS"
1550         LIBS="$ac_save_LIBS"
1551 fi
1552
1553 #
1554 # Check whether GLib's printf supports thousands grouping. (This might
1555 # be different from the system's printf since GLib can optionally use
1556 # its own printf implementation.)
1557 #
1558 AC_CACHE_CHECK([whether GLib supports POSIX/XSI thousands grouping],
1559                [ac_cv_glib_supports_printf_grouping], [
1560 ac_save_CFLAGS="$CFLAGS"
1561 ac_save_LIBS="$LIBS"
1562 CFLAGS="$WS_CFLAGS $GLIB_CFLAGS $CFLAGS"
1563 LIBS="$LIBS $GLIB_LIBS"
1564 AC_TRY_RUN([
1565 #include <glib.h>
1566 #include <locale.h>
1567 #include <stdio.h>
1568 #include <string.h>
1569
1570 int
1571 main ()
1572 {
1573   gchar *str;
1574   setlocale(LC_ALL, "en_US.UTF-8");
1575   str = g_strdup_printf("%'u", 123456);
1576   return (strcmp (str, "123,456") != 0);
1577 }
1578 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1579    [echo $ac_n "cross compiling; playing it safe... $ac_c"
1580     ac_cv_glib_supports_printf_grouping=no])
1581 CFLAGS="$ac_save_CFLAGS"
1582 LIBS="$ac_save_LIBS"
1583 ])
1584 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1585   AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if GLib's printf functions support thousands grouping.])
1586 fi
1587
1588 if test "x$have_gtk" = "xyes"
1589 then
1590     #
1591     # We have GTK+; do we want the OS X integration functions and,
1592     # if so, do we have them and, if so, which versions do we have,
1593     # the old Carbon-based ones or the new Cocoa-based ones?
1594     #
1595     AC_MSG_CHECKING(whether to use OS X integration functions)
1596
1597     AC_ARG_WITH(osx-integration,
1598       AC_HELP_STRING( [--with-osx-integration],
1599                       [use OS X integration functions @<:@default=yes, if available@:>@]),
1600     [
1601         if test $withval = no
1602         then
1603             want_osx_integration=no
1604         else
1605             want_osx_integration=yes
1606         fi
1607     ],[
1608         want_osx_integration=yes
1609     ])
1610     if test "x$want_osx_integration" = "xno"; then
1611         AC_MSG_RESULT(no)
1612     else
1613         AC_MSG_RESULT(yes)
1614         AC_WIRESHARK_OSX_INTEGRATION_CHECK
1615     fi
1616 fi
1617
1618 AC_SUBST(wireshark_bin)
1619 AC_SUBST(wireshark_man)
1620 AC_SUBST(wireshark_SUBDIRS)
1621 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1622 AM_CONDITIONAL(HAVE_GTK, test "$have_gtk" = "yes")
1623 AC_SUBST(OSX_APP_FLAGS)
1624 AC_SUBST(OSX_DMG_FLAGS)
1625
1626 # Enable/disable tshark
1627 AC_ARG_ENABLE(tshark,
1628   AC_HELP_STRING( [--enable-tshark],
1629                   [build tshark @<:@default=yes@:>@]),
1630     tshark=$enableval,enable_tshark=yes)
1631
1632 if test "x$enable_tshark" = "xyes" ; then
1633         tshark_bin="tshark\$(EXEEXT)"
1634         tshark_man="tshark.1"
1635         wiresharkfilter_man="wireshark-filter.4"
1636 else
1637         tshark_bin=""
1638         tshark_man=""
1639 fi
1640 AC_SUBST(tshark_bin)
1641 AC_SUBST(tshark_man)
1642
1643 # Enable/disable editcap
1644
1645 AC_ARG_ENABLE(editcap,
1646   AC_HELP_STRING( [--enable-editcap],
1647                   [build editcap @<:@default=yes@:>@]),
1648     enable_editcap=$enableval,enable_editcap=yes)
1649
1650 if test "x$enable_editcap" = "xyes" ; then
1651         editcap_bin="editcap\$(EXEEXT)"
1652         editcap_man="editcap.1"
1653 else
1654         editcap_bin=""
1655         editcap_man=""
1656 fi
1657 AC_SUBST(editcap_bin)
1658 AC_SUBST(editcap_man)
1659
1660
1661 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1662 # or not)
1663
1664 # Enable/disable capinfos
1665
1666 AC_ARG_ENABLE(capinfos,
1667   AC_HELP_STRING( [--enable-capinfos],
1668                   [build capinfos @<:@default=yes@:>@]),
1669     enable_capinfos=$enableval,enable_capinfos=yes)
1670
1671 if test "x$enable_capinfos" = "xyes" ; then
1672         capinfos_bin="capinfos\$(EXEEXT)"
1673         capinfos_man="capinfos.1"
1674 else
1675         capinfos_bin=""
1676         capinfos_man=""
1677 fi
1678 AC_SUBST(capinfos_bin)
1679 AC_SUBST(capinfos_man)
1680
1681 # Enable/disable captype
1682
1683 AC_ARG_ENABLE(captype,
1684   AC_HELP_STRING( [--enable-captype],
1685                   [build captype @<:@default=yes@:>@]),
1686     enable_captype=$enableval,enable_captype=yes)
1687
1688 if test "x$enable_captype" = "xyes" ; then
1689         captype_bin="captype\$(EXEEXT)"
1690         captype_man="captype.1"
1691 else
1692         captype_bin=""
1693         captype_man=""
1694 fi
1695 AC_SUBST(captype_bin)
1696 AC_SUBST(captype_man)
1697
1698 # Enable/disable mergecap
1699
1700 AC_ARG_ENABLE(mergecap,
1701   AC_HELP_STRING( [--enable-mergecap],
1702                   [build mergecap @<:@default=yes@:>@]),
1703     enable_mergecap=$enableval,enable_mergecap=yes)
1704
1705 if test "x$enable_mergecap" = "xyes" ; then
1706         mergecap_bin="mergecap\$(EXEEXT)"
1707         mergecap_man="mergecap.1"
1708 else
1709         mergecap_bin=""
1710         mergecap_man=""
1711 fi
1712 AC_SUBST(mergecap_bin)
1713 AC_SUBST(mergecap_man)
1714
1715 # Enable/disable reordercap
1716
1717 AC_ARG_ENABLE(reordercap,
1718   AC_HELP_STRING( [--enable-reordercap],
1719                   [build reordercap @<:@default=yes@:>@]),
1720     enable_reordercap=$enableval,enable_reordercap=yes)
1721
1722 if test "x$enable_reordercap" = "xyes" ; then
1723         reordercap_bin="reordercap\$(EXEEXT)"
1724         reordercap_man="reordercap.1"
1725 else
1726         reordercap_bin=""
1727         reordercap_man=""
1728 fi
1729 AC_SUBST(reordercap_bin)
1730 AC_SUBST(reordercap_man)
1731
1732 # Enable/disable text2pcap
1733
1734 AC_ARG_ENABLE(text2pcap,
1735   AC_HELP_STRING( [--enable-text2pcap],
1736                   [build text2pcap @<:@default=yes@:>@]),
1737     text2pcap=$enableval,enable_text2pcap=yes)
1738
1739 if test "x$enable_text2pcap" = "xyes" ; then
1740         text2pcap_bin="text2pcap\$(EXEEXT)"
1741         text2pcap_man="text2pcap.1"
1742 else
1743         text2pcap_bin=""
1744         text2pcap_man=""
1745 fi
1746 AC_SUBST(text2pcap_bin)
1747 AC_SUBST(text2pcap_man)
1748
1749 # Enable/disable dftest
1750
1751 AC_ARG_ENABLE(dftest,
1752   AC_HELP_STRING( [--enable-dftest],
1753                   [build dftest @<:@default=yes@:>@]),
1754     enable_dftest=$enableval,enable_dftest=yes)
1755
1756 if test "x$enable_dftest" = "xyes" ; then
1757         dftest_bin="dftest\$(EXEEXT)"
1758         dftest_man="dftest.1"
1759 else
1760         dftest_bin=""
1761         dftest_man=""
1762 fi
1763 AC_SUBST(dftest_bin)
1764 AC_SUBST(dftest_man)
1765
1766 # Enable/disable randpkt
1767
1768 AC_ARG_ENABLE(randpkt,
1769   AC_HELP_STRING( [--enable-randpkt],
1770                   [build randpkt @<:@default=yes@:>@]),
1771     enable_randpkt=$enableval,enable_randpkt=yes)
1772
1773 if test "x$enable_randpkt" = "xyes" ; then
1774         randpkt_bin="randpkt\$(EXEEXT)"
1775         randpkt_man="randpkt.1"
1776 else
1777         randpkt_bin=""
1778         randpkt_man=""
1779 fi
1780 AC_SUBST(randpkt_bin)
1781 AC_SUBST(randpkt_man)
1782
1783 AC_SUBST(wiresharkfilter_man)
1784
1785 dnl pcap check
1786 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1787
1788 AC_ARG_WITH(pcap,
1789   AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1790                   [use libpcap for packet capturing @<:@default=yes@:>@]),
1791 [
1792         if test $withval = no
1793         then
1794                 want_pcap=no
1795         elif test $withval = yes
1796         then
1797                 want_pcap=yes
1798         else
1799                 want_pcap=yes
1800                 pcap_dir=$withval
1801         fi
1802 ],[
1803         want_pcap=yes
1804         pcap_dir=
1805 ])
1806 if test "x$want_pcap" = "xno" ; then
1807         AC_MSG_RESULT(no)
1808 else
1809         AC_MSG_RESULT(yes)
1810         AC_WIRESHARK_PCAP_CHECK
1811 fi
1812
1813 dnl dumpcap check
1814 AC_MSG_CHECKING(whether to build dumpcap)
1815
1816 AC_ARG_ENABLE(dumpcap,
1817   AC_HELP_STRING( [--enable-dumpcap],
1818                   [build dumpcap @<:@default=yes@:>@]),
1819     enable_dumpcap=$enableval,enable_dumpcap=yes)
1820
1821 if test "x$enable_dumpcap" = "xyes" ; then
1822         if test "x$want_pcap" = "xno" ; then
1823                 enable_dumpcap=no
1824                 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1825         else
1826                 AC_MSG_RESULT(yes)
1827         fi
1828 else
1829         AC_MSG_RESULT(no)
1830 fi
1831
1832 if test "x$enable_dumpcap" = "xyes" ; then
1833         dumpcap_bin="dumpcap\$(EXEEXT)"
1834         dumpcap_man="dumpcap.1"
1835 else
1836         dumpcap_bin=""
1837         dumpcap_man=""
1838 fi
1839 AC_SUBST(dumpcap_bin)
1840 AC_SUBST(dumpcap_man)
1841
1842 # Enable/disable rawshark
1843
1844 dnl rawshark check
1845 AC_MSG_CHECKING(whether to build rawshark)
1846
1847 AC_ARG_ENABLE(rawshark,
1848   AC_HELP_STRING( [--enable-rawshark],
1849                   [build rawshark @<:@default=yes@:>@]),
1850     rawshark=$enableval,enable_rawshark=yes)
1851
1852 if test "x$enable_rawshark" = "xyes" ; then
1853         if test "x$want_pcap" = "xno" ; then
1854                 enable_rawshark=no
1855                 AC_MSG_RESULT(pcap not available - disabling rawshark)
1856         else
1857                 AC_MSG_RESULT(yes)
1858         fi
1859 else
1860         AC_MSG_RESULT(no)
1861 fi
1862
1863 if test "x$enable_rawshark" = "xyes" ; then
1864         rawshark_bin="rawshark\$(EXEEXT)"
1865         rawshark_man="rawshark.1"
1866 else
1867         rawshark_bin=""
1868         rawshark_man=""
1869 fi
1870 AC_SUBST(rawshark_bin)
1871 AC_SUBST(rawshark_man)
1872
1873 # Enable/disable echld
1874 AC_ARG_ENABLE(echld,
1875   AC_HELP_STRING( [--enable-echld],
1876                   [support echld (Experimental) @<:@default=no@:>@]),
1877     have_echld=$enableval,have_echld=no)
1878
1879 AM_CONDITIONAL(HAVE_ECHLD, test "x$have_echld" = "xyes")
1880 if test "x$have_echld" = "xyes"
1881 then
1882   AC_DEFINE(HAVE_ECHLD, 1, [Define if echld is enabled])
1883   echld_test_bin="echld_test\$(EXEEXT)"
1884   echld_dir="echld"
1885 else
1886   have_echld="no"
1887   echld_test_bin=""
1888   echld_dir=""
1889 fi
1890 AC_SUBST(echld_test_bin)
1891 AC_SUBST(echld_dir)
1892
1893 # Enable/disable tfshark
1894 AC_ARG_ENABLE(tfshark,
1895   AC_HELP_STRING( [--enable-tfshark],
1896                   [build tfshark (Experimental) @<:@default=no@:>@]),
1897     tfshark=$enableval,enable_tfshark=no)
1898
1899 if test "x$enable_tfshark" = "xyes" ; then
1900         tfshark_bin="tfshark\$(EXEEXT)"
1901         tfshark_man="tfshark.1"
1902         wiresharkfilter_man="wireshark-filter.4"
1903 else
1904         tfshark_bin=""
1905         tfshark_man=""
1906 fi
1907 AC_SUBST(tfshark_bin)
1908 AC_SUBST(tfshark_man)
1909
1910
1911 dnl Use pcap-ng by default
1912 AC_ARG_ENABLE(pcap-ng-default,
1913   AC_HELP_STRING( [--enable-pcap-ng-default],
1914                   [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
1915     enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
1916 if test x$enable_pcap_ng_default = xyes; then
1917         AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
1918 fi
1919
1920 dnl pcap remote check
1921 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1922
1923 AC_ARG_WITH(pcap-remote,
1924     AC_HELP_STRING([--with-pcap-remote],
1925                    [use libpcap remote capturing (requires libpcap)]),
1926 [
1927     if test $withval = no
1928     then
1929         want_pcap_remote=no
1930     else
1931         want_pcap_remote=yes
1932     fi
1933 ],[
1934     want_pcap_remote=no
1935 ])
1936 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1937     AC_MSG_RESULT(no)
1938 else
1939     AC_MSG_RESULT(yes)
1940     AC_WIRESHARK_PCAP_REMOTE_CHECK
1941 fi
1942
1943 dnl zlib check
1944 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
1945
1946 AC_ARG_WITH(zlib,
1947   AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1948                  [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
1949 [
1950         if test "x$withval" = "xno"
1951         then
1952                 want_zlib=no
1953         elif test "x$withval" = "xyes"
1954         then
1955                 want_zlib=yes
1956         else
1957                 want_zlib=yes
1958                 zlib_dir="$withval"
1959         fi
1960 ],[
1961         #
1962         # Use zlib if it's present, otherwise don't.
1963         #
1964         want_zlib=ifavailable
1965         zlib_dir=
1966 ])
1967 if test "x$want_zlib" = "xno" ; then
1968         AC_MSG_RESULT(no)
1969 else
1970         AC_MSG_RESULT(yes)
1971         AC_WIRESHARK_ZLIB_CHECK
1972         if test "x$want_zlib" = "xno" ; then
1973                 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
1974         else
1975                 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
1976                         AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
1977                 fi
1978         fi
1979 fi
1980
1981 dnl Lua check
1982 AC_ARG_WITH(lua,
1983   AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1984                   [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
1985 [
1986         if test $withval = no
1987         then
1988                 want_lua=no
1989         elif test $withval = yes
1990         then
1991                 want_lua=yes
1992         else
1993                 want_lua=yes
1994                 want_lua_dir=$withval
1995         fi
1996 ],[
1997         # By default use Lua if we can find it
1998         want_lua=ifavailable
1999         lua_dir=
2000 ])
2001 if test "x$want_lua" != "xno" ; then
2002         AC_WIRESHARK_LIBLUA_CHECK
2003
2004         if test "x$want_lua" = "xyes" -a "x$have_lua" = "xno"
2005         then
2006                 AC_MSG_ERROR([Lua support was requested, but is not available])
2007         fi
2008 fi
2009 if test "x$have_lua" = "xyes"
2010 then
2011         AC_DEFINE(HAVE_LUA, 1, [Define to use Lua])
2012 fi
2013 AM_CONDITIONAL(HAVE_LIBLUA, test x$have_lua = xyes)
2014 AC_SUBST(LUA_LIBS)
2015 AC_SUBST(LUA_CFLAGS)
2016
2017
2018 dnl portaudio check
2019 AC_MSG_CHECKING(whether to use libportaudio for the GTK+ RTP player)
2020
2021 AC_ARG_WITH(portaudio,
2022   AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
2023                   [use libportaudio (located in directory DIR, if supplied) for the GTK+ RTP player @<:@default=yes, if available@:>@]),
2024 [
2025         if test $withval = no
2026         then
2027                 want_portaudio=no
2028         elif test $withval = yes
2029         then
2030                 want_portaudio=yes
2031         else
2032                 want_portaudio=yes
2033                 portaudio_dir=$withval
2034         fi
2035 ],[
2036         #
2037         # Use libportaudio by default
2038         #
2039         want_portaudio=ifavailable
2040         portaudio_dir=
2041 ])
2042 if test "x$want_portaudio" = "xno" ; then
2043         AC_MSG_RESULT(no)
2044 else
2045         AC_MSG_RESULT(yes)
2046         AC_WIRESHARK_LIBPORTAUDIO_CHECK
2047         if test "x$want_portaudio" = "xno" ; then
2048                 AC_MSG_RESULT(libportaudio not found - disabling support for the GTK+ RTP player)
2049         fi
2050 fi
2051 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
2052
2053
2054 dnl Check if dumpcap should be installed with filesystem capabilities
2055 AC_PATH_PROG(SETCAP, setcap)
2056 AC_ARG_ENABLE(setcap-install,
2057   AC_HELP_STRING( [--enable-setcap-install],
2058                   [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
2059     enable_setcap_install=$enableval,enable_setcap_install=no)
2060
2061 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
2062 if test "x$enable_setcap_install" = "xno" ; then
2063         AC_MSG_RESULT(no)
2064 else
2065         if test "x$SETCAP" = "x" ; then
2066                 AC_MSG_RESULT(setcap not found)
2067                 AC_MSG_ERROR([Setcap install was requested, but setcap was not found])
2068         elif test "x$enable_dumpcap" = "xno" ; then
2069                 AC_MSG_RESULT(dumpcap disabled)
2070                 AC_MSG_ERROR([Setcap install works only with dumpcap, but dumpcap is disabled])
2071         else
2072                 AC_MSG_RESULT(yes)
2073         fi
2074 fi
2075
2076 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
2077
2078 dnl Check if dumpcap should be installed setuid
2079 AC_ARG_ENABLE(setuid-install,
2080   AC_HELP_STRING( [--enable-setuid-install],
2081                   [install dumpcap as setuid @<:@default=no@:>@]),
2082     enable_setuid_install=$enableval,enable_setuid_install=no)
2083
2084 AC_MSG_CHECKING(whether to install dumpcap setuid)
2085 if test "x$enable_setuid_install" = "xno" ; then
2086         AC_MSG_RESULT(no)
2087 else
2088         if test "x$enable_setcap_install" = "xyes" ; then
2089                 enable_setuid_install=no
2090                 AC_MSG_RESULT(setcap and setuid both selected)
2091                 AC_MSG_ERROR(You must choose one of setcap install and setuid install)
2092         elif test "x$enable_dumpcap" = "xno" ; then
2093                 AC_MSG_RESULT(dumpcap disabled)
2094                 AC_MSG_ERROR([Setuid install works only with dumpcap, but dumpcap is disabled])
2095         else
2096                 AC_MSG_RESULT(yes)
2097         fi
2098 fi
2099
2100 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
2101 AC_CHECK_FUNCS(setresuid setresgid)
2102
2103 dnl ...but our Network Operations group is named "no"!
2104 DUMPCAP_GROUP=''
2105 AC_ARG_WITH(dumpcap-group,
2106   AC_HELP_STRING( [--with-dumpcap-group=GROUP],
2107                   [restrict dumpcap to GROUP]),
2108 [
2109   if test "x$withval" = "xyes"; then
2110       AC_MSG_ERROR([No dumpcap group specified.])
2111   elif test "x$withval" != "xno"; then
2112       if test "x$enable_dumpcap" = "xno" ; then
2113           AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
2114       fi
2115       AC_MSG_RESULT($withval)
2116       DUMPCAP_GROUP="$withval"
2117   fi
2118 ])
2119 AC_SUBST(DUMPCAP_GROUP)
2120 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
2121
2122 dnl libcap (not libpcap) check
2123 LIBCAP_LIBS=''
2124 AC_MSG_CHECKING(whether to use the libcap capabilities library)
2125
2126 AC_ARG_WITH(libcap,
2127   AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
2128                   [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
2129 [
2130 if   test "x$withval" = "xno";  then
2131         want_libcap=no
2132 elif test "x$withval" = "xyes"; then
2133         want_libcap=yes
2134 elif test -d "$withval"; then
2135         want_libcap=yes
2136         AC_WIRESHARK_ADD_DASH_L(WS_LDFLAGS, ${withval}/lib)
2137 fi
2138 ])
2139 if test "x$with_libcap" = "xno" ; then
2140         AC_MSG_RESULT(no)
2141 else
2142         AC_MSG_RESULT(yes)
2143         AC_WIRESHARK_LIBCAP_CHECK
2144 fi
2145 AC_SUBST(LIBCAP_LIBS)
2146
2147 dnl Checks for header files.
2148 dnl Some of these may not be needed: http://hacks.owlfolio.org/header-survey/
2149 dnl Note, however, that, whilst this script is generally run only on UN*Xes:
2150 dnl
2151 dnl     1) we also support building on and for Windows and not all of those
2152 dnl        headers are present on Windows, so the code has to check a
2153 dnl        #define *anyway* to determine whether to include the header
2154 dnl        file
2155 dnl
2156 dnl and
2157 dnl
2158 dnl     2) this might also be run on Windows with a sufficiently UNIXy
2159 dnl        environment such as Cygwin (although Wireshark should be built
2160 dnl        natively rather than using Cygwin).
2161 dnl
2162 AC_CHECK_HEADERS(fcntl.h getopt.h grp.h inttypes.h netdb.h pwd.h unistd.h)
2163 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)
2164 AC_CHECK_HEADERS(netinet/in.h)
2165 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
2166 AC_CHECK_HEADERS(ifaddrs.h)
2167
2168 #
2169 # On Linux, check for some additional headers, which we need as a
2170 # workaround for a bonding driver bug and for libpcap's current lack
2171 # of its own workaround for that bug.
2172 #
2173 case "$host_os" in
2174 linux*)
2175         AC_CHECK_HEADERS(linux/sockios.h linux/if_bonding.h,,,[#include <sys/socket.h>])
2176         ;;
2177 esac
2178
2179 dnl SSL Check
2180 SSL_LIBS=''
2181 AC_MSG_CHECKING(whether to use SSL library)
2182
2183 AC_ARG_WITH(ssl,
2184   AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
2185                   [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
2186 [
2187 if test "x$withval" = "xno";  then
2188         want_ssl=no
2189 elif test "x$withval" = "xyes"; then
2190         want_ssl=yes
2191 elif test -d "$withval"; then
2192         want_ssl=yes
2193         AC_WIRESHARK_ADD_DASH_L(WS_LDFLAGS, ${withval}/lib)
2194 fi
2195 ],[
2196         want_ssl=no
2197 ])
2198 if test "x$want_ssl" = "xyes"; then
2199         AC_MSG_RESULT(yes)
2200         AC_CHECK_LIB(crypto,EVP_md5,
2201             [
2202                 SSL_LIBS=-lcrypto
2203             ],
2204             [
2205                 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
2206             ])
2207 else
2208         AC_MSG_RESULT(no)
2209 fi
2210 AC_SUBST(SSL_LIBS)
2211
2212 dnl kerberos check
2213 AC_MSG_CHECKING(whether to use Kerberos library)
2214
2215 AC_ARG_WITH(krb5,
2216   AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
2217                   [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
2218 [
2219         if test $withval = no
2220         then
2221                 want_krb5=no
2222         elif test $withval = yes
2223         then
2224                 want_krb5=yes
2225         else
2226                 want_krb5=yes
2227                 krb5_dir=$withval
2228         fi
2229 ],[
2230         #
2231         # Use Kerberos library if available, otherwise don't.
2232         #
2233         want_krb5=ifavailable
2234         krb5_dir=
2235 ])
2236 if test "x$want_krb5" = "xno" ; then
2237         AC_MSG_RESULT(no)
2238 else
2239         AC_MSG_RESULT(yes)
2240         AC_WIRESHARK_KRB5_CHECK
2241 fi
2242
2243
2244 dnl c-ares Check
2245 C_ARES_LIBS=''
2246 AC_MSG_CHECKING(whether to use the c-ares library if available)
2247
2248 AC_ARG_WITH(c-ares,
2249   AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
2250                   [use c-ares (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2251 [
2252 if   test "x$withval" = "xno";  then
2253         want_c_ares=no
2254 elif test "x$withval" = "xyes"; then
2255         want_c_ares=yes
2256 elif test -d "$withval"; then
2257         want_c_ares=yes
2258         AC_WIRESHARK_ADD_DASH_L(WS_LDFLAGS, ${withval}/lib)
2259 fi
2260 ])
2261 if test "x$want_c_ares" = "xno" ; then
2262         AC_MSG_RESULT(no)
2263 else
2264         AC_MSG_RESULT(yes)
2265         AC_WIRESHARK_C_ARES_CHECK
2266 fi
2267 AC_SUBST(C_ARES_LIBS)
2268
2269 dnl GEOIP Check
2270 GEOIP_LIBS=''
2271 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2272
2273 AC_ARG_WITH(geoip,
2274   AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2275                   [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2276 [
2277 if   test "x$withval" = "xno";  then
2278         want_geoip=no
2279 elif test "x$withval" = "xyes"; then
2280         want_geoip=yes
2281 elif test -d "$withval"; then
2282         want_geoip=yes
2283         AC_WIRESHARK_ADD_DASH_L(WS_LDFLAGS, ${withval}/lib)
2284 fi
2285 ])
2286 if test "x$want_geoip" = "xno"; then
2287         AC_MSG_RESULT(no)
2288 else
2289         AC_MSG_RESULT(yes)
2290         AC_WIRESHARK_GEOIP_CHECK
2291 fi
2292 AC_SUBST(GEOIP_LIBS)
2293
2294 dnl LIBSSH Check
2295 LIBSSH=''
2296 AC_MSG_CHECKING(whether to use the libssh library if available)
2297
2298 AC_ARG_WITH(ssh,
2299   AC_HELP_STRING( [--with-libssh@<:@=DIR@:>@],
2300                   [use libssh (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2301 [
2302 if   test "x$withval" = "xno";  then
2303         want_libssh=no
2304 elif test "x$withval" = "xyes"; then
2305         want_libssh=yes
2306 elif test -d "$withval"; then
2307         want_libssh=yes
2308         AC_WIRESHARK_ADD_DASH_L(WS_LDFLAGS, ${withval}/lib)
2309 fi
2310 ])
2311 if test "x$want_libssh" = "xno"; then
2312         AC_MSG_RESULT(no)
2313 else
2314         AC_MSG_RESULT(yes)
2315         AC_WIRESHARK_LIBSSH_CHECK
2316 fi
2317 AC_SUBST(LIBSSH_LIBS)
2318
2319 dnl Checks for typedefs, structures, and compiler characteristics.
2320 # AC_C_CONST
2321
2322 # Check how we can get the time zone abbreviation
2323 AC_STRUCT_TIMEZONE
2324
2325 # We need to know whether "struct stat" has an "st_flags" member
2326 # for file_user_immutable().
2327
2328 AC_CHECK_MEMBERS([struct stat.st_flags])
2329
2330 # We need to know whether "struct sockaddr" has an "sa_len" member
2331 # for get_interface_list().
2332
2333 AC_CHECK_MEMBERS([struct sockaddr.sa_len],,,
2334                  [#ifdef HAVE_SYS_TYPES_H
2335                   #include <sys/types.h>
2336                   #endif
2337                   #ifdef HAVE_SYS_SOCKET_H
2338                   #include <sys/socket.h>
2339                   #endif])
2340
2341 # We must know our byte order
2342 AC_C_BIGENDIAN
2343
2344 # Checks whether "-traditional" is needed when using "ioctl".
2345 # XXX - do we need this?
2346 AC_PROG_GCC_TRADITIONAL
2347
2348 AC_REPLACE_FUNCS(getopt_long)
2349 dnl
2350 dnl Do we have optreset?
2351 dnl
2352 if test "x$ac_cv_func_getopt_long" = xyes; then
2353   AC_CACHE_CHECK([whether optreset is defined], ac_cv_have_optreset,
2354     AC_LINK_IFELSE([AC_LANG_SOURCE([[extern int optreset;return optreset;]])],
2355         ac_cv_have_optreset=yes, ac_cv_have_optreset=no))
2356   if test "$ac_cv_have_optreset" = yes ; then
2357     AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if you have the optreset variable])
2358   fi
2359 fi
2360
2361 AC_REPLACE_FUNCS(inet_aton)
2362
2363 AC_CHECK_FUNC(inet_pton, [
2364   dnl check for pre-BIND82 inet_pton() bug.
2365   AC_MSG_CHECKING(for broken inet_pton)
2366   AC_TRY_RUN([#include <sys/types.h>
2367 #include <sys/socket.h>
2368 #include <netinet/in.h>
2369 #include <arpa/inet.h>
2370 int main()
2371 {
2372 #ifdef AF_INET6
2373   char buf[16];
2374   /* this should return 0 (error) */
2375   return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2376 #else
2377   return 1;
2378 #endif
2379 }], [AC_MSG_RESULT(ok);
2380 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2381 have_inet_pton=no], [AC_MSG_RESULT([cross compiling, assume it is broken]);
2382 have_inet_pton=no])],
2383 have_inet_pton=no)
2384 if test "$have_inet_pton" = no; then
2385   AC_LIBOBJ(inet_pton)
2386 else
2387   AC_DEFINE(HAVE_INET_PTON, 1, [Define to 1 if you have the `inet_pton' function.])
2388 fi
2389
2390 AC_REPLACE_FUNCS(inet_ntop)
2391 AC_REPLACE_FUNCS(strptime)
2392 AC_REPLACE_FUNCS(popcount)
2393
2394 AC_CHECK_FUNCS(mkstemps mkdtemp)
2395 AC_CHECK_FUNCS(getprotobynumber)
2396 AC_CHECK_FUNCS(issetugid)
2397 AC_CHECK_FUNCS(sysconf)
2398 AC_CHECK_FUNCS(getifaddrs)
2399 AC_CHECK_FUNC(getexecname)
2400
2401 #
2402 # Check for SpeexDSP (http://www.speex.org)
2403 #
2404 AS_IF([test "x$have_qt_multimedia_lib" = xyes],
2405         [PKG_CHECK_MODULES(SPEEXDSP, speexdsp, [have_speexdsp=yes], [have_speexdsp=no])])
2406 AS_IF([test "x$have_speexdsp" = xyes],
2407         [AC_DEFINE(HAVE_SPEEXDSP, 1, [Define to 1 if you have SpeexDSP])])
2408 AM_CONDITIONAL(HAVE_SPEEXDSP, [test "x$have_speexdsp" = "xyes"])
2409
2410 # Check Bluetooth SBC codec for RTP Player
2411 # git://git.kernel.org/pub/scm/bluetooth/sbc.git
2412 AC_ARG_WITH([sbc],
2413   AC_HELP_STRING( [--with-sbc=@<:@yes/no@:>@],
2414                   [use SBC codec to play Bluetooth A2DP stream @<:@default=yes, if available@:>@]),
2415   with_sbc="$withval"; want_sbc="yes", with_sbc="yes")
2416
2417 PKG_CHECK_MODULES(SBC, sbc >= 1.0, [have_sbc=yes], [have_sbc=no])
2418 if test "x$with_sbc" != "xno"; then
2419     if (test "${have_sbc}" = "yes"); then
2420         AC_DEFINE(HAVE_SBC, 1, [Define to support playing SBC by standalone BlueZ SBC library])
2421     elif test "x$want_sbc" = "xyes"; then
2422         # Error out if the user explicitly requested the sbc library
2423         AC_MSG_ERROR([SBC codec library was requested, but is not available])
2424     fi
2425 else
2426     have_sbc=no
2427 fi
2428 AM_CONDITIONAL(HAVE_SBC, test "x$have_sbc" = "xyes")
2429
2430 dnl
2431 dnl check whether plugins should be enabled and, if they should be,
2432 dnl check for plugins directory - stolen from Amanda's configure.ac
2433 dnl
2434 dnl we don't wish to expand ${libdir} yet
2435 plugindir="\${libdir}/wireshark/plugins/${VERSION}"
2436 AC_ARG_WITH(plugins,
2437   AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2438                   [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2439 [
2440   if test "x$withval" = "xno"; then
2441     have_plugins=no
2442   elif test "x$have_plugins" = "xno"; then
2443       AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2444   elif test "x$withval" != "xyes"; then
2445       plugindir="$withval"
2446   fi
2447 ])
2448 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2449 if test x$have_plugins = xyes
2450 then
2451   AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2452 fi
2453 AC_SUBST(plugindir)
2454
2455 #
2456 # The plugin dissectors reside in ./plugins/PROTO/
2457 #
2458 PLUGIN_LIBS=""
2459 AC_SUBST(PLUGIN_LIBS)
2460
2461 dnl
2462 dnl check whether extcap programs should be enabled and, if they should be,
2463 dnl check for extcap directory - stolen from Amanda's configure.ac
2464 dnl
2465 dnl we don't wish to expand ${libdir} yet
2466 extcapdir="\${libdir}/wireshark/extcap"
2467 AC_ARG_WITH(extcap,
2468   AC_HELP_STRING( [--with-extcap@<:@=DIR@:>@],
2469                   [use extcap for external capture sources (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2470 [
2471   if test "x$withval" = "xno"; then
2472       have_extcap=no
2473   elif test "x$withval" = "xyes"; then
2474       have_extcap=yes
2475   elif test "x$withval" != "xyes"; then
2476       have_extcap=yes
2477       extcapdir ="$withval"
2478   fi
2479 ],[
2480     have_extcap=yes
2481 ])
2482 AM_CONDITIONAL(HAVE_EXTCAP, test "x$have_extcap" = "xyes")
2483 if test "x$have_extcap" = "xyes"
2484 then
2485   AC_DEFINE(HAVE_EXTCAP, 1, [Define if external capture sources should be enabled])
2486   extcap_subdir="extcap"
2487   extcap_man="extcap.4"
2488 fi
2489 AC_SUBST(extcap_subdir)
2490 AC_SUBST(extcap_man)
2491 AC_SUBST(extcapdir)
2492
2493 dnl androiddump check
2494 AC_MSG_CHECKING(whether to build androiddump)
2495
2496 AC_ARG_ENABLE(androiddump,
2497   AC_HELP_STRING( [--enable-androiddump],
2498                   [build androiddump @<:@default=yes@:>@]),
2499     androiddump=$enableval,enable_androiddump=yes)
2500
2501 if test "x$have_extcap" != xyes; then
2502         AC_MSG_RESULT([no, extcap disabled])
2503         enable_androiddump=no
2504 elif test "x$enable_androiddump" = "xyes" ; then
2505         AC_MSG_RESULT(yes)
2506 else
2507         AC_MSG_RESULT(no)
2508 fi
2509
2510 AC_ARG_ENABLE(androiddump_use_libpcap,
2511   AC_HELP_STRING( [--enable-androiddump-use-libpcap],
2512                   [build androiddump using libpcap @<:@default=no@:>@]),
2513     androiddump_use_libpcap=$enableval,enable_androiddump_use_libpcap=no)
2514
2515 if test "x$enable_androiddump" = "xyes" -a "x$enable_androiddump_use_libpcap" = "xyes" ; then
2516         AC_DEFINE(ANDROIDDUMP_USE_LIBPCAP, 1, [Androiddump will use Libpcap])
2517 fi
2518
2519 if test "x$enable_androiddump" = "xyes" ; then
2520         androiddump_bin="androiddump\$(EXEEXT)"
2521         androiddump_man="androiddump.1"
2522 else
2523         androiddump_bin=""
2524         androiddump_man=""
2525 fi
2526 AC_SUBST(androiddump_bin)
2527 AC_SUBST(androiddump_man)
2528
2529 dnl sshdump check
2530 AC_MSG_CHECKING(whether to build sshdump)
2531
2532 AC_ARG_ENABLE(sshdump,
2533         AC_HELP_STRING( [--enable-sshdump],
2534                 [build sshdump @<:@default=yes@:>@]),
2535         [],[enable_sshdump=yes])
2536
2537 if test "x$have_extcap" != xyes; then
2538         AC_MSG_RESULT([no, extcap disabled])
2539         enable_sshdump=no
2540 elif test "x$have_libssh_pointsix" != xyes; then
2541         AC_MSG_RESULT([no, libssh >= 0.6.0 not available])
2542         enable_sshdump=no
2543 elif test "x$enable_sshdump" = "xyes" ; then
2544         AC_MSG_RESULT(yes)
2545 else
2546         AC_MSG_RESULT(no)
2547 fi
2548
2549 if test "x$enable_sshdump" = "xyes" ; then
2550         sshdump_bin="sshdump\$(EXEEXT)"
2551         sshdump_man="sshdump.1"
2552 else
2553         sshdump_bin=""
2554         sshdump_man=""
2555 fi
2556 AC_SUBST(sshdump_bin)
2557 AC_SUBST(sshdump_man)
2558
2559 dnl ciscodump check
2560 AC_MSG_CHECKING(whether to build ciscodump)
2561
2562 AC_ARG_ENABLE(ciscodump,
2563         AC_HELP_STRING( [--enable-ciscodump],
2564                 [build ciscodump @<:@default=yes@:>@]),
2565         [],[enable_ciscodump=yes])
2566
2567 if test "x$have_extcap" != xyes; then
2568         AC_MSG_RESULT([no, extcap disabled])
2569         enable_ciscodump=no
2570 elif test "x$have_libssh_pointsix" != xyes; then
2571         AC_MSG_RESULT([no, libssh >= 0.6.0 not available])
2572         enable_ciscodump=no
2573 elif test "x$enable_ciscodump" = "xyes" ; then
2574         AC_MSG_RESULT(yes)
2575 else
2576         AC_MSG_RESULT(no)
2577 fi
2578
2579 if test "x$enable_ciscodump" = "xyes" ; then
2580         ciscodump_bin="ciscodump\$(EXEEXT)"
2581         ciscodump_man="ciscodump.1"
2582 else
2583         ciscodump_bin=""
2584         ciscodump_man=""
2585 fi
2586 AC_SUBST(ciscodump_bin)
2587 AC_SUBST(ciscodump_man)
2588
2589 dnl randpktdump check
2590 AC_MSG_CHECKING(whether to build randpktdump)
2591
2592 AC_ARG_ENABLE(randpktdump,
2593         AC_HELP_STRING( [--enable-randpktdump],
2594                 [build randpktdump @<:@default=yes@:>@]),
2595         randpktdump=$enableval,enable_randpktdump=yes)
2596
2597 if test "x$have_extcap" != xyes; then
2598         AC_MSG_RESULT([no, extcap disabled])
2599         enable_randpktdump=no
2600 elif test "x$enable_randpktdump" = "xyes" ; then
2601         AC_MSG_RESULT(yes)
2602 else
2603         AC_MSG_RESULT(no)
2604 fi
2605
2606 if test "x$enable_randpktdump" = "xyes" ; then
2607         randpktdump_bin="randpktdump\$(EXEEXT)"
2608         randpktdump_man="randpktdump.1"
2609 else
2610         randpktdump_bin=""
2611         randpktdump_man=""
2612 fi
2613 AC_SUBST(randpktdump_bin)
2614 AC_SUBST(randpktdump_man)
2615
2616 dnl udpdump check
2617 AC_MSG_CHECKING(whether to build udpdump)
2618
2619 AC_ARG_ENABLE(udpdump,
2620         AC_HELP_STRING( [--enable-udpdump],
2621                 [build udpdump @<:@default=yes@:>@]),
2622         [],[enable_udpdump=yes])
2623
2624 if test "x$have_extcap" != xyes; then
2625         AC_MSG_RESULT([no, extcap disabled])
2626         enable_udpdump=no
2627 elif test "x$enable_udpdump" = "xyes" ; then
2628         AC_MSG_RESULT(yes)
2629 else
2630         AC_MSG_RESULT(no)
2631 fi
2632
2633 if test "x$enable_udpdump" = "xyes" ; then
2634         udpdump_bin="udpdump\$(EXEEXT)"
2635         udpdump_man="udpdump.1"
2636 else
2637         udpdump_bin=""
2638         udpdump_man=""
2639 fi
2640 AC_SUBST(udpdump_bin)
2641 AC_SUBST(udpdump_man)
2642
2643 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2644 if test x$enable_static = xyes -a x$have_plugins = xyes
2645 then
2646   AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2647 fi
2648 AC_SUBST(ENABLE_STATIC)
2649
2650 # Gather which GUI we're building for rpmbuild
2651 if test "x$have_gtk" = "xyes"; then
2652         if test "x$gtk_major_version" = "x3"; then
2653                 RPMBUILD_WITH_ARGS="--with gtk3 --without gtk2"
2654         else
2655                 RPMBUILD_WITH_ARGS="--without gtk3 --with gtk2"
2656         fi
2657 else
2658         RPMBUILD_WITH_ARGS="--without gtk2 --without gtk3"
2659 fi
2660 if test "x$have_qt" = "xyes" ; then
2661         if test "$qt_version" -eq "5"; then
2662                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt5"
2663         else
2664                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt"
2665         fi
2666 else
2667         RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without qt --without qt5"
2668 fi
2669 if test "x$have_lua" = "xyes" ; then
2670         RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with lua"
2671 else
2672         RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without lua"
2673 fi
2674 AC_SUBST(RPMBUILD_WITH_ARGS)
2675 AC_SUBST(RPM_VERSION, version_major.version_minor.version_micro)
2676
2677 AC_SUBST(WS_CPPFLAGS)
2678 AC_SUBST(WS_CFLAGS)
2679 AC_SUBST(WS_CXXFLAGS)
2680 AC_SUBST(WS_LDFLAGS)
2681
2682 AC_SUBST(WS_CFLAGS_FOR_BUILD)
2683
2684 AH_BOTTOM([#include <ws_diag_control.h>])
2685
2686 dnl Save the cacheable configure results to config.cache before recursing
2687 AC_CACHE_SAVE
2688
2689 sinclude(plugins/Custom.m4) dnl
2690 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2691
2692 sinclude(epan/dissectors/asn1/Custom.m4) dnl
2693 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2694
2695 AC_CONFIG_HEADERS([config.h])
2696
2697 AC_CONFIG_FILES(
2698   Makefile
2699   doxygen.cfg
2700   epan/dissectors/asn1/Makefile
2701   wireshark.pc
2702   _CUSTOM_ASN1_AC_OUTPUT_
2703   epan/dissectors/asn1/acp133/Makefile
2704   epan/dissectors/asn1/acse/Makefile
2705   epan/dissectors/asn1/ansi_map/Makefile
2706   epan/dissectors/asn1/ansi_tcap/Makefile
2707   epan/dissectors/asn1/atn-cm/Makefile
2708   epan/dissectors/asn1/atn-cpdlc/Makefile
2709   epan/dissectors/asn1/atn-ulcs/Makefile
2710   epan/dissectors/asn1/c1222/Makefile
2711   epan/dissectors/asn1/camel/Makefile
2712   epan/dissectors/asn1/cdt/Makefile
2713   epan/dissectors/asn1/charging_ase/Makefile
2714   epan/dissectors/asn1/cmip/Makefile
2715   epan/dissectors/asn1/cmp/Makefile
2716   epan/dissectors/asn1/crmf/Makefile
2717   epan/dissectors/asn1/cms/Makefile
2718   epan/dissectors/asn1/credssp/Makefile
2719   epan/dissectors/asn1/dap/Makefile
2720   epan/dissectors/asn1/disp/Makefile
2721   epan/dissectors/asn1/dop/Makefile
2722   epan/dissectors/asn1/dsp/Makefile
2723   epan/dissectors/asn1/ess/Makefile
2724   epan/dissectors/asn1/ftam/Makefile
2725   epan/dissectors/asn1/goose/Makefile
2726   epan/dissectors/asn1/gprscdr/Makefile
2727   epan/dissectors/asn1/gsm_map/Makefile
2728   epan/dissectors/asn1/h225/Makefile
2729   epan/dissectors/asn1/h235/Makefile
2730   epan/dissectors/asn1/h245/Makefile
2731   epan/dissectors/asn1/h248/Makefile
2732   epan/dissectors/asn1/h282/Makefile
2733   epan/dissectors/asn1/h283/Makefile
2734   epan/dissectors/asn1/h323/Makefile
2735   epan/dissectors/asn1/h450/Makefile
2736   epan/dissectors/asn1/h450-ros/Makefile
2737   epan/dissectors/asn1/h460/Makefile
2738   epan/dissectors/asn1/h501/Makefile
2739   epan/dissectors/asn1/HI2Operations/Makefile
2740   epan/dissectors/asn1/hnbap/Makefile
2741   epan/dissectors/asn1/idmp/Makefile
2742   epan/dissectors/asn1/ilp/Makefile
2743   epan/dissectors/asn1/inap/Makefile
2744   epan/dissectors/asn1/isdn-sup/Makefile
2745   epan/dissectors/asn1/kerberos/Makefile
2746   epan/dissectors/asn1/lcsap/Makefile
2747   epan/dissectors/asn1/ldap/Makefile
2748   epan/dissectors/asn1/logotypecertextn/Makefile
2749   epan/dissectors/asn1/lpp/Makefile
2750   epan/dissectors/asn1/lppa/Makefile
2751   epan/dissectors/asn1/lppe/Makefile
2752   epan/dissectors/asn1/lte-rrc/Makefile
2753   epan/dissectors/asn1/m2ap/Makefile
2754   epan/dissectors/asn1/m3ap/Makefile
2755   epan/dissectors/asn1/mms/Makefile
2756   epan/dissectors/asn1/mpeg-audio/Makefile
2757   epan/dissectors/asn1/mpeg-pes/Makefile
2758   epan/dissectors/asn1/nbap/Makefile
2759   epan/dissectors/asn1/ns_cert_exts/Makefile
2760   epan/dissectors/asn1/novell_pkis/Makefile
2761   epan/dissectors/asn1/ocsp/Makefile
2762   epan/dissectors/asn1/p1/Makefile
2763   epan/dissectors/asn1/p22/Makefile
2764   epan/dissectors/asn1/p7/Makefile
2765   epan/dissectors/asn1/p772/Makefile
2766   epan/dissectors/asn1/pcap/Makefile
2767   epan/dissectors/asn1/pkcs1/Makefile
2768   epan/dissectors/asn1/pkcs12/Makefile
2769   epan/dissectors/asn1/pkinit/Makefile
2770   epan/dissectors/asn1/pkixac/Makefile
2771   epan/dissectors/asn1/pkix1explicit/Makefile
2772   epan/dissectors/asn1/pkix1implicit/Makefile
2773   epan/dissectors/asn1/pkixproxy/Makefile
2774   epan/dissectors/asn1/pkixqualified/Makefile
2775   epan/dissectors/asn1/pkixtsp/Makefile
2776   epan/dissectors/asn1/pres/Makefile
2777   epan/dissectors/asn1/q932/Makefile
2778   epan/dissectors/asn1/q932-ros/Makefile
2779   epan/dissectors/asn1/qsig/Makefile
2780   epan/dissectors/asn1/ranap/Makefile
2781   epan/dissectors/asn1/rnsap/Makefile
2782   epan/dissectors/asn1/ros/Makefile
2783   epan/dissectors/asn1/rrc/Makefile
2784   epan/dissectors/asn1/rrlp/Makefile
2785   epan/dissectors/asn1/rtse/Makefile
2786   epan/dissectors/asn1/rua/Makefile
2787   epan/dissectors/asn1/s1ap/Makefile
2788   epan/dissectors/asn1/sabp/Makefile
2789   epan/dissectors/asn1/sbc-ap/Makefile
2790   epan/dissectors/asn1/smrse/Makefile
2791   epan/dissectors/asn1/snmp/Makefile
2792   epan/dissectors/asn1/spnego/Makefile
2793   epan/dissectors/asn1/sv/Makefile
2794   epan/dissectors/asn1/t124/Makefile
2795   epan/dissectors/asn1/t125/Makefile
2796   epan/dissectors/asn1/t38/Makefile
2797   epan/dissectors/asn1/tcap/Makefile
2798   epan/dissectors/asn1/tetra/Makefile
2799   epan/dissectors/asn1/ulp/Makefile
2800   epan/dissectors/asn1/wlancertextn/Makefile
2801   epan/dissectors/asn1/x2ap/Makefile
2802   epan/dissectors/asn1/x509af/Makefile
2803   epan/dissectors/asn1/x509ce/Makefile
2804   epan/dissectors/asn1/x509if/Makefile
2805   epan/dissectors/asn1/x509sat/Makefile
2806   epan/dissectors/asn1/x721/Makefile
2807   capchild/Makefile
2808   capchild/doxygen.cfg
2809   caputils/Makefile
2810   caputils/doxygen.cfg
2811   doc/Makefile
2812   docbook/Makefile
2813   epan/Makefile
2814   epan/compress/Makefile
2815   epan/crypt/Makefile
2816   epan/doxygen.cfg
2817   epan/dfilter/Makefile
2818   epan/dissectors/Makefile
2819   epan/dissectors/dcerpc/Makefile
2820   epan/ftypes/Makefile
2821   epan/nghttp2/Makefile
2822   epan/wmem/Makefile
2823   epan/wslua/Makefile
2824   extcap/Makefile
2825   codecs/Makefile
2826   ui/Makefile
2827   ui/doxygen.cfg
2828   ui/gtk/Makefile
2829   ui/gtk/doxygen.cfg
2830   ui/cli/Makefile
2831   ui/qt/Makefile
2832   ui/qt/doxygen.cfg
2833   help/Makefile
2834   packaging/Makefile
2835   packaging/macosx/Info.plist
2836   packaging/macosx/Makefile
2837   packaging/macosx/osx-dmg.sh
2838   packaging/macosx/Wireshark_package.pmdoc/index.xml
2839   packaging/nsis/Makefile
2840   packaging/rpm/Makefile
2841   packaging/rpm/SPECS/Makefile
2842   packaging/rpm/SPECS/wireshark.spec
2843   packaging/svr4/Makefile
2844   packaging/svr4/checkinstall
2845   packaging/svr4/pkginfo
2846   packaging/wix/Makefile
2847   plugins/Makefile
2848   plugins/docsis/Makefile
2849   plugins/easy_codec/Makefile
2850   plugins/ethercat/Makefile
2851   plugins/gryphon/Makefile
2852   plugins/irda/Makefile
2853   plugins/m2m/Makefile
2854   plugins/mate/Makefile
2855   plugins/opcua/Makefile
2856   plugins/profinet/Makefile
2857   plugins/stats_tree/Makefile
2858   plugins/unistim/Makefile
2859   plugins/wimax/Makefile
2860   plugins/wimaxasncp/Makefile
2861   plugins/wimaxmacphy/Makefile
2862   randpkt_core/doxygen.cfg
2863   randpkt_core/Makefile
2864   tools/Makefile
2865   tools/lemon/Makefile
2866   wiretap/Makefile
2867   writecap/Makefile
2868   writecap/doxygen.cfg
2869   wsutil/Makefile
2870   echld/Makefile
2871   _CUSTOM_AC_OUTPUT_
2872 )
2873
2874 AC_OUTPUT
2875
2876
2877 # Pretty messages
2878
2879 if test "x$have_gtk" = "xyes"; then
2880         gtk_lib_message=" (with GTK+ v$GTK_VERSION"
2881         if test "x$have_ige_mac" = "xyes"; then
2882                 gtk_lib_message="$gtk_lib_message and OS X integration)"
2883         else
2884                 gtk_lib_message="$gtk_lib_message)"
2885         fi
2886 fi
2887
2888 if test "x$have_qt" = "xyes" ; then
2889         enable_wireshark_qt="yes"
2890         qt_lib_message=" (with Qt$qt_version v$QT_VERSION)"
2891 else
2892         enable_wireshark_qt="no"
2893 fi
2894
2895 if test "x$enable_setcap_install" = "xyes" ; then
2896         setcap_message="yes"
2897 else
2898         setcap_message="no"
2899 fi
2900
2901 if test "x$enable_setuid_install" = "xyes" ; then
2902         setuid_message="yes"
2903 else
2904         setuid_message="no"
2905 fi
2906
2907 if test "x$DUMPCAP_GROUP" = "x" ; then
2908         dumpcap_group_message="(none)"
2909 else
2910         dumpcap_group_message="$DUMPCAP_GROUP"
2911 fi
2912
2913 if test "x$want_zlib" = "xno" ; then
2914         zlib_message="no"
2915 else
2916         zlib_message="yes"
2917 fi
2918
2919 if test "x$have_lua" = "xyes" ; then
2920         lua_message="yes"
2921 else
2922         lua_message="no"
2923 fi
2924
2925 if test "x$have_qt_multimedia_lib" = "xyes" ; then
2926         qt_multimedia_message="yes"
2927 else
2928         qt_multimedia_message="no"
2929 fi
2930
2931 if test "x$want_portaudio" = "xyes" ; then
2932         portaudio_message="yes"
2933 else
2934         portaudio_message="no"
2935 fi
2936
2937 if test "x$want_ssl" = "xno" ; then
2938         ssl_message="no"
2939 else
2940         ssl_message="yes"
2941 fi
2942
2943 if test "x$want_krb5" = "xno" ; then
2944         krb5_message="no"
2945 else
2946         krb5_message="yes ($ac_krb5_version)"
2947 fi
2948
2949 if test "x$have_good_c_ares" = "xyes" ; then
2950         c_ares_message="yes"
2951 else
2952         c_ares_message="no (name resolution will be disabled)"
2953 fi
2954
2955 if test "x$have_good_libcap" = "xyes" ; then
2956         libcap_message="yes"
2957 else
2958         libcap_message="no"
2959 fi
2960
2961 if test "x$have_good_geoip" = "xyes" ; then
2962         geoip_message="yes"
2963 else
2964         geoip_message="no"
2965 fi
2966
2967 if test "x$have_good_libssh" = "xyes" ; then
2968         libssh_message="yes"
2969 else
2970         libssh_message="no"
2971 fi
2972
2973 if test "x$have_ssh_userauth_agent" = "xyes" ; then
2974         ssh_userauth_agent_message="yes"
2975 else
2976         ssh_userauth_agent_message="no"
2977 fi
2978
2979 echo ""
2980 echo "  CPPFLAGS: $WS_CPPFLAGS $CPPFLAGS"
2981 echo ""
2982 echo "  CFLAGS: $WS_CFLAGS $CFLAGS"
2983 echo ""
2984 echo "  CXXFLAGS: $WS_CXXFLAGS $CXXFLAGS"
2985 echo ""
2986 echo "  LDFLAGS: $WS_LDFLAGS $LDFLAGS"
2987 echo ""
2988 echo "  LIBS: $LIBS"
2989
2990 echo ""
2991 echo "The Wireshark package has been configured with the following options:"
2992 echo "                       GLib version : v$GLIB_VERSION"
2993 echo "                    Build wireshark : $enable_wireshark_qt$qt_lib_message"
2994 echo "                Build wireshark-gtk : $have_gtk""$gtk_lib_message"
2995 echo "                       Build tshark : $enable_tshark"
2996 echo "                      Build tfshark : $enable_tfshark"
2997 echo "                     Build capinfos : $enable_capinfos"
2998 echo "                      Build captype : $enable_captype"
2999 echo "                      Build editcap : $enable_editcap"
3000 echo "                      Build dumpcap : $enable_dumpcap"
3001 echo "                     Build mergecap : $enable_mergecap"
3002 echo "                   Build reordercap : $enable_reordercap"
3003 echo "                    Build text2pcap : $enable_text2pcap"
3004 echo "                      Build randpkt : $enable_randpkt"
3005 echo "                       Build dftest : $enable_dftest"
3006 echo "                     Build rawshark : $enable_rawshark"
3007 echo "                  Build androiddump : $enable_androiddump"
3008 echo "                      Build sshdump : $enable_sshdump"
3009 echo "                    Build ciscodump : $enable_ciscodump"
3010 echo "                  Build randpktdump : $enable_randpktdump"
3011 echo "                      Build udpdump : $enable_udpdump"
3012 echo "                        Build echld : $have_echld"
3013 echo ""
3014 echo "   Save files as pcap-ng by default : $enable_pcap_ng_default"
3015 echo "  Install dumpcap with capabilities : $setcap_message"
3016 echo "             Install dumpcap setuid : $setuid_message"
3017 echo "                  Use dumpcap group : $dumpcap_group_message"
3018 echo "                        Use plugins : $have_plugins"
3019 echo "       Use external capture sources : $have_extcap"
3020 echo "                    Use Lua library : $lua_message"
3021 echo "                Build Qt RTP player : $qt_multimedia_message"
3022 echo "              Build GTK+ RTP player : $portaudio_message"
3023 echo "             Build profile binaries : $enable_profile_build"
3024 echo "                   Use pcap library : $want_pcap"
3025 echo "                   Use zlib library : $zlib_message"
3026 echo "               Use kerberos library : $krb5_message"
3027 echo "                 Use c-ares library : $c_ares_message"
3028 echo "                Use SMI MIB library : $libsmi_message"
3029 echo "             Use GNU gcrypt library : $gcrypt_message"
3030 echo "             Use SSL crypto library : $ssl_message"
3031 echo "                 Use GnuTLS library : $tls_message"
3032 echo "     Use POSIX capabilities library : $libcap_message"
3033 echo "                  Use GeoIP library : $geoip_message"
3034 echo "                 Use libssh library : $libssh_message"
3035 echo "            Have ssh_userauth_agent : $ssh_userauth_agent_message"
3036 echo "                     Use nl library : $libnl_message"
3037 echo "              Use SBC codec library : $have_sbc"
3038 #echo "       Use GDK-Pixbuf with GResource: $have_gresource_pixbuf"