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