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