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