Don't check for -Wl,{option} support.
[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 CFLAGS_before_fvhidden="$CFLAGS"
907 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fvisibility=hidden)
908 if test "x$CFLAGS" = "x$CFLAGS_before_fvhidden"
909 then
910         # TODO add other ways of hiding symbols
911         AC_MSG_WARN(Compiler will export all symbols from shared libraries)
912 fi
913
914 AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--as-needed])
915 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,-M])
916 ###AC_WIRESHARK_LDFLAGS_CHECK([-Wl,--cref])
917 # AC_WIRESHARK_LDFLAGS_CHECK([-flto])
918 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhopr])
919 # AC_WIRESHARK_LDFLAGS_CHECK([-fwhole-program])
920
921 #
922 # Put -fPIE in PIE_CFLAGS and -pie in PIE_LDFLAGS if we can use them,
923 # so that we can build dumpcap PIE - it may run with elevated
924 # privileges, and using PIE means the OS can run it at random locations
925 # in the address space to make attacks more difficult.
926 #
927 CFLAGS_before_pie="$CFLAGS"
928 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-fPIE)
929 if test "x$CFLAGS" != "x$CFLAGS_before_pie"
930 then
931         # Restore CFLAGS
932         CFLAGS="$CFLAGS_before_pie"
933
934         LDFLAGS_before_pie="$LDFLAGS"
935         AC_WIRESHARK_LDFLAGS_CHECK([-fPIE -pie])
936         if test "x$LDFLAGS" != "x$LDFLAGS_before_pie"
937         then
938                 # We can use PIE
939                 PIE_CFLAGS="-fPIE"
940                 PIE_LDFLAGS="-pie"
941
942                 # Restore LDFLAGS
943                 LDFLAGS="$LDFLAGS_before_pie"
944         fi
945
946 fi
947 AC_SUBST(PIE_CFLAGS)
948 AC_SUBST(PIE_LDFLAGS)
949
950 CFLAGS_before_simd="$CFLAGS"
951 AC_WIRESHARK_COMPILER_FLAGS_CHECK(-msse4.2, C)
952 if test "x$CFLAGS" != "x$CFLAGS_before_simd"
953 then
954         AC_MSG_CHECKING([whether there is nmmintrin.h header])
955
956         AC_TRY_COMPILE(
957                 [#include <nmmintrin.h>],
958                 [return 0;],
959                 [
960                         have_sse42=yes
961                         AC_DEFINE(HAVE_SSE4_2, 1, [Support SSSE4.2 (Streaming SIMD Extensions 4.2) instructions])
962                         CFLAGS_SSE42="-msse4.2"
963                         AC_MSG_RESULT([yes])
964                 ],
965                 [
966                         have_sse42=no
967                         AC_MSG_RESULT([no])
968                 ]
969         )
970
971         # Restore CFLAGS
972         CFLAGS="$CFLAGS_before_simd"
973 else
974         have_sse42=no
975 fi
976 dnl build libwsutil_sse42 only if there is SSE4.2
977 AM_CONDITIONAL(SSE42_SUPPORTED, test "x$have_sse42" = "xyes")
978 AC_SUBST(CFLAGS_SSE42)
979
980 #
981 # If we're running GCC or clang define _U_ to be "__attribute__((unused))"
982 # so we can use _U_ to flag unused function parameters and not get warnings
983 # about them. Otherwise, define _U_ to be an empty string so that _U_ used
984 # to flag an unused function parameters will compile with other compilers.
985 #
986 # XXX - similar hints for other compilers?
987 #
988 if test "x$GCC" = "xyes" -o "x$CC" = "xclang" ; then
989   AC_DEFINE(_U_, __attribute__((unused)), [Hint to the compiler that a function parameters is not used])
990 else
991   AC_DEFINE(_U_, , [Hint to the compiler that a function parameters is not used])
992 fi
993
994 # If we're running GCC or CLang, use FORTIFY_SOURCE=2
995 #  (only if the GCC 'optimization level' > 0).
996 #
997 # See: http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
998 # See: http://sourceware.org/bugzilla/show_bug.cgi?id=13979
999 #
1000 # Note: FORTIFY_SOURCE is only effective for gcc optimization level > 0 (-O1, etc)
1001 AC_WIRESHARK_GCC_FORTIFY_SOURCE_CHECK
1002
1003 #
1004 # If the compiler supports GCC-style flags, enable a barrier "stop on
1005 # warning".
1006 # This barrier is set for a very large part of the code. However, it is
1007 # typically not set for "generated" code  (flex, ans2wrs, idl2wrs, ...)
1008 #
1009 warnings_as_errors_default="yes"
1010 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
1011 AC_ARG_ENABLE(warnings-as-errors,
1012   AC_HELP_STRING( [--enable-warnings-as-errors],
1013                   [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra compiler warnings are enabled@:>@]),
1014 [
1015   if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then
1016     with_warnings_as_errors="yes"
1017     AC_MSG_RESULT(yes)
1018   else
1019     with_warnings_as_errors="no"
1020     AC_MSG_RESULT(no)
1021   fi
1022 ],
1023 [
1024   if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
1025     with_warnings_as_errors="yes"
1026     AC_MSG_RESULT(yes)
1027   else
1028     with_warnings_as_errors="no"
1029     AC_MSG_RESULT(no)
1030   fi
1031 ]
1032 )
1033 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
1034
1035 #
1036 # Add any platform-specific compiler flags needed.
1037 #
1038 AC_MSG_CHECKING(for platform-specific compiler flags)
1039 if test "x$GCC" = "xyes" ; then
1040         #
1041         # GCC - do any platform-specific tweaking necessary.
1042         #
1043         case "$host_os" in
1044         solaris*)
1045                 # the X11 headers don't automatically include prototype info
1046                 # and a lot don't include the return type
1047                 CPPFLAGS="$CPPFLAGS -DFUNCPROTO=15"
1048                 CFLAGS="$CFLAGS -Wno-return-type"
1049                 CXXFLAGS="$CXXFLAGS -Wno-return-type"
1050                 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
1051                 ;;
1052         *)
1053                 AC_MSG_RESULT(none needed)
1054                 ;;
1055         esac
1056 else
1057         #
1058         # Not GCC - assume it's the vendor's compiler.
1059         #
1060         case "$host_os" in
1061         hpux*)
1062                 #
1063                 # HP's ANSI C compiler; flags suggested by Jost Martin.
1064                 # "-Ae" for ANSI C plus extensions such as "long long".
1065                 # "+O2", for optimization.  XXX - works with "-g"?
1066                 #
1067                 # HP's ANSI C++ compiler doesn't support "-Ae", but
1068                 # does support "+O2", at least according to the
1069                 # documentation I can find online.
1070                 #
1071                 CFLAGS="-Ae +O2 $CFLAGS"
1072                 CFLAGS_FOR_BUILD="-Ae +O2 $CFLAGS"
1073                 CXXFLAGS="+O2 $CFLAGS"
1074                 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
1075                 ;;
1076         *)
1077                 AC_MSG_RESULT(none needed)
1078                 ;;
1079         esac
1080 fi
1081
1082 #
1083 # Add any platform-specific linker flags needed.
1084 #
1085 AC_MSG_CHECKING(for platform-specific linker flags)
1086 case "$host_os" in
1087 darwin*)
1088         #
1089         # Add -Wl,-single_module to the LDFLAGS used with shared
1090         # libraries, to fix some error that show up in some cases;
1091         # some Apple documentation recommends it for most shared
1092         # libraries.
1093         #
1094         LDFLAGS_SHAREDLIB="-Wl,-single_module"
1095         #
1096         # Add -Wl,-search_paths_first to make sure that if we search
1097         # directories A and B, in that order, for a given library, a
1098         # non-shared version in directory A, rather than a shared
1099         # version in directory B, is chosen (so we can use
1100         # --with-pcap=/usr/local to force all programs to be linked
1101         # with a static version installed in /usr/local/lib rather than
1102         # the system version in /usr/lib).
1103         #
1104         # Also add -Wl,-rpath,@executable_path/../lib and
1105         # -Wl,-rpath,/usr/local/lib, so that, if we build an app
1106         # bundle, we can tweak all the executable images, shared
1107         # libraries, and plugins in the bundle to look for non-system
1108         # libraries in the rpath, rather than having a script tweak
1109         # DYLD_LIBRARY_PATH.
1110         #
1111         LDFLAGS="-Wl,-search_paths_first -Wl,-rpath,@executable_path/../lib -Wl,-rpath,@executable_path/../Frameworks -Wl,-rpath,/usr/local/lib $LDFLAGS"
1112         AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first, and rpaths])
1113         ;;
1114 cygwin*)
1115         #
1116         # Shared libraries in cygwin/Win32 must never contain
1117         # undefined symbols.
1118         #
1119         LDFLAGS="$LDFLAGS -no-undefined"
1120         AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
1121         ;;
1122 *)
1123         AC_MSG_RESULT(none needed)
1124         ;;
1125 esac
1126 AC_SUBST(LDFLAGS_SHAREDLIB)
1127
1128 # Enable silent builds by default
1129 # Verbose builds can be enabled with "./configure
1130 # --enable-silent-rules ..." or "make V=1 ..."
1131 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])],
1132   [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])])
1133
1134 #
1135 # On "Darwin", which we assume to mean "OS X" rather than "iOS" or
1136 # "just Darwin" (as we don't currently support iOS, and as I don't
1137 # think you can build and run "just Darwin" as an OS for PCs), we
1138 # arrange to build some programs with Application Services so they
1139 # can launch Web browsers and Finder windows, arrange to build some
1140 # programs with System Configuration so they can get "friendly names"
1141 # and other information about interfaces, and build any programs that
1142 # use either of those frameworks or that report version information
1143 # with Core Foundation as the frameworks in question use it and as we
1144 # get version information from plists and thus need Core Foundation
1145 # to process those plists.
1146 #
1147 case "$host_os" in
1148
1149 darwin*)
1150         AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
1151         APPLICATIONSERVICES_FRAMEWORKS="-framework ApplicationServices"
1152         SYSTEMCONFIGURATION_FRAMEWORKS="-framework SystemConfiguration"
1153         COREFOUNDATION_FRAMEWORKS="-framework CoreFoundation"
1154
1155         #
1156         # OK, so we have the OS X frameworks; do they include
1157         # CFPropertyListCreateWithStream, or do we have
1158         # to fall back on CFPropertyListCreateFromStream?
1159         # (They only differ in the error return, which we
1160         # don't care about.  And, no, we shouldn't just
1161         # use CFPropertyListCreateFromStream, because it's
1162         # deprecated in newer releases.)
1163         #
1164         ac_save_LIBS="$LIBS"
1165         LIBS="$LIBS $COREFOUNDATION_FRAMEWORKS"
1166         AC_CHECK_FUNCS(CFPropertyListCreateWithStream)
1167         LIBS="$ac_save_LIBS"
1168         ;;
1169 esac
1170 AC_SUBST(APPLICATIONSERVICES_FRAMEWORKS)
1171 AC_SUBST(SYSTEMCONFIGURATION_FRAMEWORKS)
1172 AC_SUBST(COREFOUNDATION_FRAMEWORKS)
1173
1174 #
1175 # On Solaris, check whether we have getexecname().
1176 #
1177 case "$host_os" in
1178 solaris*)
1179         AC_CHECK_FUNC(getexecname)
1180         ;;
1181 esac
1182
1183 dnl Look in /usr/local for header files and libraries ?
1184 dnl XXX FIXME don't include /usr/local if it is already in the system
1185 dnl search path as this causes gcc 3.2 on Linux to complain about a change
1186 dnl of the system search order for includes
1187 AC_ARG_ENABLE(usr-local,
1188   AC_HELP_STRING( [--enable-usr-local],
1189                   [look for headers and libs in /usr/local tree @<:@default=yes@:>@]),
1190     ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
1191
1192 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
1193 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
1194         if test -d "/usr/local"; then
1195                 AC_MSG_RESULT(yes)
1196                 #
1197                 # Arrange that we search for header files in the source directory
1198                 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
1199                 # as various packages we use ("libpcap", "zlib", "adns")
1200                 # may have been installed under "/usr/local/include".
1201                 #
1202                 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
1203
1204                 #
1205                 # Arrange that we search for libraries in "/usr/local/lib".
1206                 #
1207                 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
1208         else
1209                 AC_MSG_RESULT(no)
1210         fi
1211 else
1212         AC_MSG_RESULT(no)
1213 fi
1214
1215 #
1216 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
1217 # link directory.
1218 #
1219 case "$host_os" in
1220   solaris*)
1221     AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
1222     if test x$LD_LIBRARY_PATH != x ; then
1223       LIBS="$LIBS -R$LD_LIBRARY_PATH"
1224       AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
1225     else
1226       AC_MSG_RESULT(no -- this may be a problem in a few seconds)
1227     fi
1228   ;;
1229 esac
1230
1231 #
1232 # Check for versions of "sed" inadequate to handle, in libtool, a list
1233 # of object files as large as the list in Wireshark.
1234 #
1235 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
1236 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
1237 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
1238 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
1239 # is the only "sed" that comes with Solaris that can handle Wireshark.
1240 #
1241 # Add any checks here that are necessary for other OSes.
1242 #
1243 AC_PATH_PROG(SED, sed)
1244 if test "x$SED" = x
1245 then
1246         AC_MSG_ERROR(I couldn't find sed; make sure it's installed and in your path)
1247 fi
1248 AC_WIRESHARK_GNU_SED_CHECK
1249 if test "$HAVE_GNU_SED" = no ; then
1250         case "$host_os" in
1251         solaris*)
1252                 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
1253                 case `which sed` in
1254                         /bin/sed|/usr/bin/sed|/usr/ucb/sed)
1255                         AC_MSG_RESULT(yes)
1256                         AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
1257                         ;;
1258
1259                         *)
1260                         AC_MSG_RESULT(no)
1261                         ;;
1262                 esac
1263                 ;;
1264
1265         *)
1266                 :
1267                 ;;
1268         esac
1269 fi
1270
1271 # Enable/disable wireshark
1272 AC_ARG_ENABLE(wireshark,
1273   AC_HELP_STRING( [--enable-wireshark],
1274                   [build the Wireshark GUI (with Gtk+, Qt, or both) @<:@default=yes@:>@]),
1275     enable_wireshark=$enableval,enable_wireshark=yes)
1276
1277 AC_ARG_ENABLE(packet-editor,
1278   AC_HELP_STRING( [--enable-packet-editor],
1279                   [add support for packet editor in Wireshark @<:@default=yes@:>@]),
1280     enable_packet_editor=$enableval,enable_packet_editor=yes)
1281 if test x$enable_packet_editor = xyes; then
1282         AC_DEFINE(WANT_PACKET_EDITOR, 1, [Support for packet editor])
1283 fi
1284
1285 AC_ARG_ENABLE(profile-build,
1286   AC_HELP_STRING( [--enable-profile-build],
1287                   [build profile-ready binaries @<:@default=no@:>@]),
1288     enable_profile_build=$enableval,enable_profile_build=no)
1289 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
1290 AC_MSG_CHECKING(if profile builds must be generated)
1291 if test "x$enable_profile_build" = "xyes" ; then
1292         if test "x$GCC" = "xyes" -o "x$CLANG" = "xyes" ; then
1293                 AC_MSG_RESULT(yes)
1294                 CFLAGS=" -pg $CFLAGS"
1295                 CXXFLAGS=" -pg $CXXFLAGS"
1296         else
1297                 AC_MSG_RESULT(no)
1298                 echo "Building profile binaries currently only supported for GCC and clang."
1299         fi
1300 else
1301         AC_MSG_RESULT(no)
1302 fi
1303
1304 # Create DATAFILE_DIR #define for config.h
1305 datafiledir=$datadir/wireshark
1306 datafiledir=`(
1307     test "x$prefix" = xNONE && prefix=$ac_default_prefix
1308     test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1309     # Ugly hack, but I don't see how this problem can be solved
1310     # properly that DATAFILE_DIR had a value starting with
1311     # "${prefix}/" instead of e.g. "/usr/local/"
1312     eval eval echo "$datafiledir"
1313 )`
1314 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
1315
1316 # Create DOC_DIR #define for config.h
1317 docdir=`(
1318     test "x$prefix" = xNONE && prefix=$ac_default_prefix
1319     test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
1320     # Ugly hack, but I don't see how this problem can be solved
1321     # properly that DOC_DIR had a value starting with
1322     # "${prefix}/" instead of e.g. "/usr/local/"
1323     eval eval echo "$docdir"
1324 )`
1325 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
1326
1327 GTK2_MIN_VERSION=2.12.0
1328 AC_SUBST(GTK2_MIN_VERSION)
1329 GTK3_MIN_VERSION=3.0.0
1330 AC_SUBST(GTK3_MIN_VERSION)
1331 QT_MIN_VERSION=4.6.0
1332 AC_SUBST(QT_MIN_VERSION)
1333 # GTK+ and Qt checks; we require GTK+ $GTK2_MIN_VERSION or later or
1334 # GTK3_MIN_VERSION or later or Qt $QT_MIN_VERSION or later.
1335 #
1336 # We only do those if we're going to be building Wireshark;
1337 # otherwise, we don't have any GUI to build, so we don't use
1338 # GTK+ or Qt.
1339 #
1340 # We don't add $GTK_LIBS or $Qt_LIBS to LIBS, because we don't want to
1341 # force all programs to be built with GTK+ or Qt.
1342 #
1343 # Release dates for GTK+ versions:
1344 # http://en.wikipedia.org/wiki/GTK+#Releases
1345 # 2.12.0: 14 Sep 2007
1346 # 2.14.0: 04 Sep 2008
1347 # 2.16.0: 13 Mar 2009
1348 # 2.18.0: 23 Sep 2009
1349 # 2.20.0: 23 Mar 2010
1350 # 2.22.0: 23 Sep 2010
1351 # 2.24.0: 30 Jan 2011
1352 # 3.0.0:  10 Feb 2011
1353 # 3.2.0:  25 Sep 2011
1354 # 3.4.0:  26 Mar 2012
1355 # 3.6.0:  24 Sep 2012
1356 # 3.8.0:  25 Mar 2013
1357 # 3.10.0: 23 Sep 2013
1358 # 3.12.0: 25 Mar 2014
1359 #
1360 # Release dates for Qt versions:
1361 # http://en.wikipedia.org/wiki/List_of_Qt_releases
1362 # 4.6.0:  01 Dec 2009
1363 # 4.7.0:  21 Sep 2010
1364 # 4.8.0:  15 Dec 2011
1365 # 5.0.0:  19 Dec 2012
1366 # 5.1.0:  03 Jul 2013
1367 # 5.2.0:  12 Dec 2013
1368
1369 have_qt=no
1370 have_gtk=no
1371 if test "x$enable_wireshark" = "xyes"; then
1372         if test "x$with_gtk2" = "xunspecified" -a \
1373                 "x$with_gtk3" = "xunspecified" -a \
1374                 "x$with_qt" = "xunspecified"; then
1375                 #
1376                 # No GUI toolkit was explicitly specified; pick Qt and GTK+ 3.
1377                 #
1378                 with_qt=yes
1379                 with_gtk3=yes
1380         fi
1381         if test "x$with_qt" = "xyes"; then
1382                 #
1383                 # Qt was specified; Make sure we have a C++ compiler.
1384                 #
1385                 if test -z "$CXX"; then
1386                         AC_MSG_ERROR(Need a working C++ compiler to build Wireshark with Qt)
1387                 fi
1388
1389                 #
1390                 # Now make sure we have Qt and, if so, add the flags
1391                 # for it to CFLAGS and CXXFLAGS.
1392                 #
1393                 AC_WIRESHARK_QT_CHECK($QT_MIN_VERSION,
1394                 [
1395                         CFLAGS="$CFLAGS $Qt_CFLAGS"
1396                         CXXFLAGS="$CXXFLAGS $Qt_CFLAGS"
1397                         have_qt=yes
1398                         GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-qt"
1399                         OSX_APP_FLAGS="$OSX_APP_FLAGS -qt"
1400                         OSX_DMG_FLAGS="-qt"
1401                 ],
1402                 [AC_MSG_ERROR([Qt is not available])])
1403
1404                 #
1405                 # XXX - greasy hack to make ui/gtk/recent.c
1406                 # compile.
1407                 #
1408                 CPPFLAGS="-DQT_GUI_LIB"
1409         fi
1410
1411         if test "x$with_gtk3" = "xyes"; then
1412                 #
1413                 # GTK+ 3 was specified; make sure they didn't also
1414                 # specify GTK+ 2, as we don't support building both
1415                 # GTK+ 2 and GTK+ 3 versions at the same time.
1416                 #
1417                 if test "x$with_gtk2" = "xyes"; then
1418                         AC_MSG_ERROR([Both GTK+ 2 and GTK+ 3 were specified; choose one but not both])
1419                 fi
1420
1421                 #
1422                 # Make sure we have GTK+ 3.
1423                 #
1424                 AM_PATH_GTK_3_0(3.0.0,
1425                 [
1426                         CFLAGS="$CFLAGS $GTK_CFLAGS"
1427                         CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1428                         have_gtk=yes
1429                         GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk3"
1430                 ],
1431                 [AC_MSG_ERROR([GTK+ 3 is not available])])
1432         elif test "x$with_gtk2" = "xyes"; then
1433                 #
1434                 # GTK+ 3 wasn't specified, and GTK+ 2 was specified;
1435                 # make sure we have GTK+ 2.
1436                 #
1437                 AM_PATH_GTK_2_0($GTK2_MIN_VERSION,
1438                 [
1439                         CFLAGS="$CFLAGS $GTK_CFLAGS"
1440                         CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
1441                         have_gtk=yes
1442                         GUI_CONFIGURE_FLAGS="$GUI_CONFIGURE_FLAGS --with-gtk2"
1443                 ],
1444                 [AC_MSG_ERROR([GTK+ 2 is not available])])
1445         fi
1446 fi
1447 AC_SUBST(GUI_CONFIGURE_FLAGS)
1448
1449 GLIB_MIN_VERSION=2.16.0
1450 AC_SUBST(GLIB_MIN_VERSION)
1451 # GLib checks; we require GLib $GLIB_MIN_VERSION or later, and require gmodule
1452 # support, as we need that for dynamically loading plugins.
1453 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
1454 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
1455 # superset of GLIB_CFLAGS.  If we didn't find GTK+, it does add
1456 # GLIB_CFLAGS to CFLAGS.
1457 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
1458 # set when generating the Makefile, so we can make programs that require
1459 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
1460 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
1461 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
1462 # programs to be built with GLib.
1463 #
1464 # Release dates for GLib versions:
1465 # 2.14.0: 03 Aug 2007
1466 # 2.16.0: 10 Mar 2008
1467 # 2.18.0: 02 Sep 2008
1468 # 2.20.0: 13 Mar 2009
1469 # 2.22.0: 22 Sep 2009
1470 # 2.24.0: 28 Mar 2010
1471 # 2.26.0: 27 Sep 2010
1472 # 2.28.0: 08 Feb 2011
1473 # 2.30.0: 27 Sep 2011
1474 # 2.32.0: 24 Mar 2012
1475 # 2.34.0: 24 Sep 2012
1476 # 2.36.0: 25 Mar 2013
1477 # 2.38.0: 23 Sep 2013
1478 # 2.40.0: 24 Mar 2014
1479
1480 use_glib_cflags="true"
1481 if test "$have_gtk" = "yes" -a "$have_qt" = "yes" ; then
1482         # We have both GTK and Qt and thus will be building both wireshark
1483         # and wireshark-qt.
1484
1485         wireshark_bin="wireshark\$(EXEEXT) wireshark-qt\$(EXEEXT)"
1486         wireshark_man="wireshark.1"
1487         wireshark_SUBDIRS="codecs ui/qt ui/gtk"
1488 fi
1489 if test "$have_gtk" = "no" -a "$have_qt" = "yes" ; then
1490         # We don't have GTK+ but we have Qt.
1491
1492         wireshark_bin="wireshark-qt\$(EXEEXT)"
1493         wireshark_man="wireshark.1"
1494         wireshark_SUBDIRS="codecs ui/qt"
1495 fi
1496 if test "$have_gtk" = "yes" -a "$have_qt" = "no" ; then
1497         # We have GTK+ but not Qt.
1498
1499         wireshark_bin="wireshark\$(EXEEXT)"
1500         wireshark_man="wireshark.1"
1501         wireshark_SUBDIRS="codecs ui/gtk"
1502         use_glib_cflags="false"
1503 fi
1504 if test "$have_gtk" = "no" -a "$have_qt" = "no" ; then
1505         # We have neither GTK+ nor Qt.
1506         #
1507         # If they didn't explicitly say "--disable-wireshark",
1508         # fail (so that, unless they explicitly indicated that
1509         # they don't want Wireshark, we stop so they know they
1510         # won't be getting Wireshark unless they fix the GTK+/Qt
1511         # problem).
1512         #
1513         if test "x$enable_wireshark" = "xyes"; then
1514                 if test "x$with_gtk3" = "xyes"; then
1515                         AC_MSG_ERROR([Neither Qt nor GTK+ $GTK3_MIN_VERSION or later are available, so Wireshark can't be compiled])
1516                 else
1517                         AC_MSG_ERROR([Neither Qt nor GTK+ $GTK2_MIN_VERSION or later are available, so Wireshark can't be compiled])
1518                 fi
1519         fi
1520         wireshark_bin=""
1521         wireshark_man=""
1522 fi
1523
1524 if test "$have_gtk" = "yes" ; then
1525         # If we have GTK then add flags for it.
1526
1527         CPPFLAGS="-DGDK_PIXBUF_DISABLE_DEPRECATED $CPPFLAGS"
1528         CPPFLAGS="-DGDK_DISABLE_DEPRECATED $CPPFLAGS"
1529         if test \( $gtk_config_major_version -eq 3 -a $gtk_config_minor_version -ge 10 \) ; then
1530                 ## Allow use of deprecated & disable deprecated warnings if Gtk >= 3.10;
1531                 ##  The deprecations in Gtk 3.10 will not be fixed ...
1532                 CPPFLAGS="-DGDK_DISABLE_DEPRECATION_WARNINGS $CPPFLAGS"
1533         else
1534                 CPPFLAGS="-DGTK_DISABLE_DEPRECATED $CPPFLAGS"
1535         fi
1536         CPPFLAGS="-DGTK_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1537         if test ! \( $gtk_config_major_version -eq 2 -a $gtk_config_minor_version -lt 20 \) ; then
1538                 # Enable GSEAL when building with GTK > 2.20
1539                 # (Versions prior to 2.22 lacked some necessary accessors.)
1540                 CPPFLAGS="-DGSEAL_ENABLE $CPPFLAGS"
1541         fi
1542 fi
1543
1544 # XXX - Is this really necessary?  When we build with both Gtk+ and Qt it works...
1545 if test "$use_glib_cflags" = "true"; then
1546         # Use GLIB_CFLAGS
1547         AM_PATH_GLIB_2_0($GLIB_MIN_VERSION,
1548         [
1549                 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1550                 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
1551         ], AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1552 else
1553         # Don't use GLIB_CFLAGS
1554         AM_PATH_GLIB_2_0($GLIB_MIN_VERSION, , AC_MSG_ERROR(GLib $GLIB_MIN_VERSION or later distribution not found.), gthread gmodule)
1555 fi
1556
1557 #
1558 # "make dist" requires that we have the Qt build tools.
1559 #
1560 # Annoyingly, at least on Fedora 16, uic and moc are named XXX-qt4
1561 # rather than just XXX, perhaps to allow Qt 3 and Qt 4 tools to be
1562 # installed; if they're still doing that in current Fedora releases,
1563 # perhaps there will also be XXX-qt5 when they pick up Qt 5.
1564 #
1565 AC_PATH_PROG(UIC, uic)
1566 if test "x$UIC" = x
1567 then
1568         AC_PATH_PROG(UIC, uic-qt4)
1569         if test "x$UIC" = x
1570         then
1571                 if test "x$with_qt" = "xyes"; then
1572                         #
1573                         # If you want to build with Qt, you'd better
1574                         # have uic.
1575                         #
1576                         AC_MSG_ERROR(I couldn't find uic or uic-qt4; make sure it's installed and in your path)
1577                 else
1578                         #
1579                         # We shouldn't fail here, as the user's not
1580                         # building with Qt, and we shouldn't force them
1581                         # to have Qt installed if they're not doing so.
1582                         # "make dist" will fail if they do that, but
1583                         # we don't know whether they'll be doing that,
1584                         # so this is the best we can do.
1585                         #
1586                         UIC=uic
1587                 fi
1588         fi
1589 fi
1590 AC_SUBST(UIC)
1591 AC_PATH_PROG(MOC, moc)
1592 if test "x$MOC" = x
1593 then
1594         AC_PATH_PROG(MOC, moc-qt4)
1595         if test "x$MOC" = x
1596         then
1597                 if test "x$with_qt" = "xyes"; then
1598                         #
1599                         # If you want to build with Qt, you'd better
1600                         # have moc.
1601                         #
1602                         AC_MSG_ERROR(I couldn't find moc or moc-qt4; make sure it's installed and in your path)
1603                 else
1604                         #
1605                         # We shouldn't fail here, as the user's not
1606                         # building with Qt, and we shouldn't force them
1607                         # to have Qt installed if they're not doing so.
1608                         # "make dist" will fail if they do that, but
1609                         # we don't know whether they'll be doing that,
1610                         # so this is the best we can do.
1611                         #
1612                         MIC=moc
1613                 fi
1614         fi
1615 fi
1616 AC_SUBST(MOC)
1617
1618 # Error out if a glib header other than a "top level" header
1619 #  (glib.h, glib-object.h, gio.h) or certain other headers( e.g.,gmodule.h)
1620 #  is used.
1621 CPPFLAGS="-DG_DISABLE_SINGLE_INCLUDES $CPPFLAGS"
1622
1623 # Error out on the usage of deprecated glib functions
1624 CPPFLAGS="-DG_DISABLE_DEPRECATED $CPPFLAGS"
1625
1626 #
1627 # Check whether GLib modules are supported, to determine whether we
1628 # can support plugins.
1629 #
1630 AC_MSG_CHECKING(whether GLib supports loadable modules)
1631 ac_save_CFLAGS="$CFLAGS"
1632 ac_save_LIBS="$LIBS"
1633 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1634 LIBS="$GLIB_LIBS $LIBS"
1635 AC_TRY_RUN([
1636 #include <glib.h>
1637 #include <gmodule.h>
1638 #include <stdio.h>
1639 #include <stdlib.h>
1640
1641 int
1642 main ()
1643 {
1644   if (g_module_supported())
1645     return 0;   /* success */
1646   else
1647     return 1;   /* failure */
1648 }
1649 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
1650    [echo $ac_n "cross compiling; assumed OK... $ac_c"
1651     ac_cv_glib_supports_modules=yes])
1652 CFLAGS="$ac_save_CFLAGS"
1653 LIBS="$ac_save_LIBS"
1654 if test "$ac_cv_glib_supports_modules" = yes ; then
1655   AC_MSG_RESULT(yes)
1656   have_plugins=yes
1657   plugins_dir="plugins"
1658 else
1659   AC_MSG_RESULT(no)
1660   have_plugins=no
1661   plugins_dir=""
1662 fi
1663 AC_SUBST(plugins_dir)
1664
1665 #
1666 # If we have <dlfcn.h>, check whether we have dladdr.
1667 #
1668 if test "$ac_cv_header_dlfcn_h" = "yes"
1669 then
1670         #
1671         # Use GLib compiler flags and linker flags; GLib's gmodule
1672         # stuff uses the dl APIs if available, so it might know
1673         # what flags are needed.
1674         #
1675         ac_save_CFLAGS="$CFLAGS"
1676         ac_save_LIBS="$LIBS"
1677         CFLAGS="$CFLAGS $GLIB_CFLAGS"
1678         LIBS="$GLIB_LIBS $LIBS"
1679         AC_CHECK_FUNCS(dladdr)
1680         if test x$ac_cv_func_dladdr = xno
1681         then
1682                 #
1683                 # OK, try it with -ldl, in case you need that to get
1684                 # dladdr().  For some reason, on Linux, that's not
1685                 # part of the GLib flags; perhaps GLib itself is
1686                 # linked with libdl, so that you can link with
1687                 # Glib and it'll pull libdl in itself.
1688                 #
1689                 LIBS="$LIBS -ldl"
1690                 AC_CHECK_FUNCS(dladdr)
1691         fi
1692         CFLAGS="$ac_save_CFLAGS"
1693         LIBS="$ac_save_LIBS"
1694 fi
1695
1696 #
1697 # Check whether GLib's printf supports thousands grouping. (This might
1698 # be different from the system's printf since GLib can optionally use
1699 # its own printf implementation.)
1700 #
1701 AC_MSG_CHECKING(whether GLib supports POSIX/XSI thousands grouping)
1702 ac_save_CFLAGS="$CFLAGS"
1703 ac_save_LIBS="$LIBS"
1704 CFLAGS="$CFLAGS $GLIB_CFLAGS"
1705 LIBS="$GLIB_LIBS $LIBS"
1706 AC_TRY_RUN([
1707 #include <glib.h>
1708 #include <locale.h>
1709 #include <stdio.h>
1710 #include <string.h>
1711
1712 int
1713 main ()
1714 {
1715   gchar *str;
1716   setlocale(LC_ALL, "en_US.UTF-8");
1717   str = g_strdup_printf("%'u", 123456);
1718   return (strcmp (str, "123,456") != 0);
1719 }
1720 ], ac_cv_glib_supports_printf_grouping=yes, ac_cv_glib_supports_printf_grouping=no,
1721    [echo $ac_n "cross compiling; playing it safe... $ac_c"
1722     ac_cv_glib_supports_printf_grouping=no])
1723 CFLAGS="$ac_save_CFLAGS"
1724 LIBS="$ac_save_LIBS"
1725 if test "$ac_cv_glib_supports_printf_grouping" = yes ; then
1726   AC_MSG_RESULT(yes)
1727   AC_DEFINE(HAVE_GLIB_PRINTF_GROUPING, 1, [Define if your printf() function supports thousands grouping.])
1728 else
1729   AC_MSG_RESULT(no)
1730 fi
1731
1732 if test "x$have_gtk" = "xyes"
1733 then
1734     #
1735     # We have GTK+; do we want the OS X integration functions and,
1736     # if so, do we have them and, if so, which versions do we have,
1737     # the old Carbon-based ones or the new Cocoa-based ones?
1738     #
1739     AC_MSG_CHECKING(whether to use OS X integration functions)
1740
1741     AC_ARG_WITH(osx-integration,
1742       AC_HELP_STRING( [--with-osx-integration],
1743                       [use OS X integration functions @<:@default=yes, if available@:>@]),
1744     [
1745         if test $withval = no
1746         then
1747             want_osx_integration=no
1748         else
1749             want_osx_integration=yes
1750         fi
1751     ],[
1752         want_osx_integration=yes
1753     ])
1754     if test "x$want_osx_integration" = "xno"; then
1755         AC_MSG_RESULT(no)
1756     else
1757         AC_MSG_RESULT(yes)
1758         AC_WIRESHARK_OSX_INTEGRATION_CHECK
1759     fi
1760 fi
1761
1762 AC_SUBST(wireshark_bin)
1763 AC_SUBST(wireshark_man)
1764 AM_CONDITIONAL(HAVE_Qt, test "$have_qt" = "yes")
1765 AM_CONDITIONAL(HAVE_GTK, test "$have_gtk" = "yes")
1766 AC_SUBST(OSX_APP_FLAGS)
1767 AC_SUBST(OSX_DMG_FLAGS)
1768
1769 # Enable/disable tshark
1770 AC_ARG_ENABLE(tshark,
1771   AC_HELP_STRING( [--enable-tshark],
1772                   [build TShark @<:@default=yes@:>@]),
1773     tshark=$enableval,enable_tshark=yes)
1774
1775 if test "x$enable_tshark" = "xyes" ; then
1776         tshark_bin="tshark\$(EXEEXT)"
1777         tshark_man="tshark.1"
1778         wiresharkfilter_man="wireshark-filter.4"
1779 else
1780         tshark_bin=""
1781         tshark_man=""
1782 fi
1783 AC_SUBST(tshark_bin)
1784 AC_SUBST(tshark_man)
1785
1786 # Enable/disable tfshark
1787 AC_ARG_ENABLE(tfshark,
1788   AC_HELP_STRING( [--enable-tfshark],
1789                   [build TFShark @<:@default=no@:>@]),
1790     tfshark=$enableval,enable_tfshark=no)
1791
1792 if test "x$enable_tfshark" = "xyes" ; then
1793         tfshark_bin="tfshark\$(EXEEXT)"
1794         tfshark_man="tfshark.1"
1795         wiresharkfilter_man="wireshark-filter.4"
1796 else
1797         tfshark_bin=""
1798         tfshark_man=""
1799 fi
1800 AC_SUBST(tfshark_bin)
1801 AC_SUBST(tfshark_man)
1802
1803 # Enable/disable editcap
1804
1805 AC_ARG_ENABLE(editcap,
1806   AC_HELP_STRING( [--enable-editcap],
1807                   [build editcap @<:@default=yes@:>@]),
1808     enable_editcap=$enableval,enable_editcap=yes)
1809
1810 if test "x$enable_editcap" = "xyes" ; then
1811         editcap_bin="editcap\$(EXEEXT)"
1812         editcap_man="editcap.1"
1813 else
1814         editcap_bin=""
1815         editcap_man=""
1816 fi
1817 AC_SUBST(editcap_bin)
1818 AC_SUBST(editcap_man)
1819
1820 # Enable/disable echld
1821
1822 AC_ARG_ENABLE(echld,
1823   AC_HELP_STRING( [--enable-echld],
1824                   [support echld]),
1825     have_echld=$enableval,have_echld=no)
1826
1827 AM_CONDITIONAL(HAVE_ECHLD, test "x$have_echld" = "xyes")
1828 if test "x$have_echld" = "xyes"
1829 then
1830   AC_DEFINE(HAVE_ECHLD, 1, [Define if echld is enabled])
1831   echld_test_bin="echld_test\$(EXEEXT)"
1832   echld_dir="echld"
1833 else
1834   have_echld="no"
1835   echld_test_bin=""
1836   echld_dir=""
1837 fi
1838 AC_SUBST(echld_test_bin)
1839 AC_SUBST(echld_dir)
1840
1841 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
1842 # or not)
1843
1844 # Enable/disable capinfos
1845
1846 AC_ARG_ENABLE(capinfos,
1847   AC_HELP_STRING( [--enable-capinfos],
1848                   [build capinfos @<:@default=yes@:>@]),
1849     enable_capinfos=$enableval,enable_capinfos=yes)
1850
1851 if test "x$enable_capinfos" = "xyes" ; then
1852         capinfos_bin="capinfos\$(EXEEXT)"
1853         capinfos_man="capinfos.1"
1854 else
1855         capinfos_bin=""
1856         capinfos_man=""
1857 fi
1858 AC_SUBST(capinfos_bin)
1859 AC_SUBST(capinfos_man)
1860
1861 # Enable/disable captype
1862
1863 AC_ARG_ENABLE(captype,
1864   AC_HELP_STRING( [--enable-captype],
1865                   [build captype @<:@default=yes@:>@]),
1866     enable_captype=$enableval,enable_captype=yes)
1867
1868 if test "x$enable_captype" = "xyes" ; then
1869         captype_bin="captype\$(EXEEXT)"
1870         captype_man="captype.1"
1871 else
1872         captype_bin=""
1873         captype_man=""
1874 fi
1875 AC_SUBST(captype_bin)
1876 AC_SUBST(captype_man)
1877
1878 # Enable/disable mergecap
1879
1880 AC_ARG_ENABLE(mergecap,
1881   AC_HELP_STRING( [--enable-mergecap],
1882                   [build mergecap @<:@default=yes@:>@]),
1883     enable_mergecap=$enableval,enable_mergecap=yes)
1884
1885 if test "x$enable_mergecap" = "xyes" ; then
1886         mergecap_bin="mergecap\$(EXEEXT)"
1887         mergecap_man="mergecap.1"
1888 else
1889         mergecap_bin=""
1890         mergecap_man=""
1891 fi
1892 AC_SUBST(mergecap_bin)
1893 AC_SUBST(mergecap_man)
1894
1895 # Enable/disable reordercap
1896
1897 AC_ARG_ENABLE(reordercap,
1898   AC_HELP_STRING( [--enable-reordercap],
1899                   [build reordercap @<:@default=yes@:>@]),
1900     enable_reordercap=$enableval,enable_reordercap=yes)
1901
1902 if test "x$enable_reordercap" = "xyes" ; then
1903         reordercap_bin="reordercap\$(EXEEXT)"
1904         reordercap_man="reordercap.1"
1905 else
1906         reordercap_bin=""
1907         reordercap_man=""
1908 fi
1909 AC_SUBST(reordercap_bin)
1910 AC_SUBST(reordercap_man)
1911
1912 # Enable/disable text2pcap
1913
1914 AC_ARG_ENABLE(text2pcap,
1915   AC_HELP_STRING( [--enable-text2pcap],
1916                   [build text2pcap @<:@default=yes@:>@]),
1917     text2pcap=$enableval,enable_text2pcap=yes)
1918
1919 if test "x$enable_text2pcap" = "xyes" ; then
1920         text2pcap_bin="text2pcap\$(EXEEXT)"
1921         text2pcap_man="text2pcap.1"
1922 else
1923         text2pcap_bin=""
1924         text2pcap_man=""
1925 fi
1926 AC_SUBST(text2pcap_bin)
1927 AC_SUBST(text2pcap_man)
1928
1929 # Enable/disable dftest
1930
1931 AC_ARG_ENABLE(dftest,
1932   AC_HELP_STRING( [--enable-dftest],
1933                   [build dftest @<:@default=yes@:>@]),
1934     enable_dftest=$enableval,enable_dftest=yes)
1935
1936 if test "x$enable_dftest" = "xyes" ; then
1937         dftest_bin="dftest\$(EXEEXT)"
1938         dftest_man="dftest.1"
1939 else
1940         dftest_bin=""
1941         dftest_man=""
1942 fi
1943 AC_SUBST(dftest_bin)
1944 AC_SUBST(dftest_man)
1945
1946 # Enable/disable randpkt
1947
1948 AC_ARG_ENABLE(randpkt,
1949   AC_HELP_STRING( [--enable-randpkt],
1950                   [build randpkt @<:@default=yes@:>@]),
1951     enable_randpkt=$enableval,enable_randpkt=yes)
1952
1953 if test "x$enable_randpkt" = "xyes" ; then
1954         randpkt_bin="randpkt\$(EXEEXT)"
1955         randpkt_man="randpkt.1"
1956 else
1957         randpkt_bin=""
1958         randpkt_man=""
1959 fi
1960 AC_SUBST(randpkt_bin)
1961 AC_SUBST(randpkt_man)
1962
1963 AC_SUBST(wiresharkfilter_man)
1964
1965 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1966 dnl "gethostbyname()".
1967 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1968
1969 dnl Checks for "connect()", used as a proxy for "socket()" - and
1970 dnl "-lsocket", if we need it to get "connect()".
1971 AC_WIRESHARK_SOCKET_LIB_CHECK
1972
1973 dnl pcap check
1974 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1975
1976 AC_ARG_WITH(pcap,
1977   AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1978                   [use libpcap for packet capturing @<:@default=yes@:>@]),
1979 [
1980         if test $withval = no
1981         then
1982                 want_pcap=no
1983         elif test $withval = yes
1984         then
1985                 want_pcap=yes
1986         else
1987                 want_pcap=yes
1988                 pcap_dir=$withval
1989         fi
1990 ],[
1991         want_pcap=yes
1992         pcap_dir=
1993 ])
1994 if test "x$want_pcap" = "xno" ; then
1995         AC_MSG_RESULT(no)
1996 else
1997         AC_MSG_RESULT(yes)
1998         AC_WIRESHARK_PCAP_CHECK
1999 fi
2000
2001
2002 dnl Check for airpcap
2003 AC_MSG_CHECKING(whether to include airpcap support)
2004 AC_ARG_ENABLE(airpcap,
2005   AC_HELP_STRING( [--enable-airpcap],
2006                   [use AirPcap in Wireshark @<:@default=yes@:>@]),
2007   enable_airpcap=$enableval, enable_airpcap=yes)
2008
2009 if test x$enable_airpcap = xyes; then
2010         if test "x$want_pcap" = "xno" ; then
2011                 enable_airpcap=no
2012                 AC_MSG_RESULT(pcap not available - disabling airpcap)
2013         else
2014                 AC_MSG_RESULT(yes)
2015                 AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
2016         fi
2017 else
2018         AC_MSG_RESULT(no)
2019 fi
2020
2021
2022 dnl dumpcap check
2023 AC_MSG_CHECKING(whether to build dumpcap)
2024
2025 AC_ARG_ENABLE(dumpcap,
2026   AC_HELP_STRING( [--enable-dumpcap],
2027                   [build dumpcap @<:@default=yes@:>@]),
2028     enable_dumpcap=$enableval,enable_dumpcap=yes)
2029
2030 if test "x$enable_dumpcap" = "xyes" ; then
2031         if test "x$want_pcap" = "xno" ; then
2032                 enable_dumpcap=no
2033                 AC_MSG_RESULT(pcap not available - disabling dumpcap)
2034         else
2035                 AC_MSG_RESULT(yes)
2036         fi
2037 else
2038         AC_MSG_RESULT(no)
2039 fi
2040
2041 if test "x$enable_dumpcap" = "xyes" ; then
2042         dumpcap_bin="dumpcap\$(EXEEXT)"
2043         dumpcap_man="dumpcap.1"
2044 else
2045         dumpcap_bin=""
2046         dumpcap_man=""
2047 fi
2048 AC_SUBST(dumpcap_bin)
2049 AC_SUBST(dumpcap_man)
2050
2051 # Enable/disable rawshark
2052
2053 dnl rawshark check
2054 AC_MSG_CHECKING(whether to build rawshark)
2055
2056 AC_ARG_ENABLE(rawshark,
2057   AC_HELP_STRING( [--enable-rawshark],
2058                   [build rawshark @<:@default=yes@:>@]),
2059     rawshark=$enableval,enable_rawshark=yes)
2060
2061 if test "x$enable_rawshark" = "xyes" ; then
2062         if test "x$want_pcap" = "xno" ; then
2063                 enable_rawshark=no
2064                 AC_MSG_RESULT(pcap not available - disabling rawshark)
2065         else
2066                 AC_MSG_RESULT(yes)
2067         fi
2068 else
2069         AC_MSG_RESULT(no)
2070 fi
2071
2072 if test "x$enable_rawshark" = "xyes" ; then
2073         rawshark_bin="rawshark\$(EXEEXT)"
2074         rawshark_man="rawshark.1"
2075 else
2076         rawshark_bin=""
2077         rawshark_man=""
2078 fi
2079 AC_SUBST(rawshark_bin)
2080 AC_SUBST(rawshark_man)
2081
2082 dnl Use pcap-ng by default
2083 AC_ARG_ENABLE(pcap-ng-default,
2084   AC_HELP_STRING( [--enable-pcap-ng-default],
2085                   [use the pcap-ng file format by default instead of pcap @<:@default=yes@:>@]),
2086     enable_pcap_ng_default=$enableval,enable_pcap_ng_default=yes)
2087 if test x$enable_pcap_ng_default = xyes; then
2088         AC_DEFINE(PCAP_NG_DEFAULT, 1, [Support for pcap-ng])
2089 fi
2090
2091 dnl pcap remote check
2092 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
2093
2094 AC_ARG_WITH(pcap-remote,
2095     AC_HELP_STRING([--with-pcap-remote],
2096                    [use libpcap remote capturing (requires libpcap)]),
2097 [
2098     if test $withval = no
2099     then
2100         want_pcap_remote=no
2101     else
2102         want_pcap_remote=yes
2103     fi
2104 ],[
2105     want_pcap_remote=no
2106 ])
2107 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
2108     AC_MSG_RESULT(no)
2109 else
2110     AC_MSG_RESULT(yes)
2111     AC_WIRESHARK_PCAP_REMOTE_CHECK
2112 fi
2113
2114 dnl zlib check
2115 AC_MSG_CHECKING(whether to use zlib for gzip compression and decompression)
2116
2117 AC_ARG_WITH(zlib,
2118   AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
2119                  [use zlib (located in directory DIR, if supplied) for gzip compression and decompression @<:@default=yes, if available@:>@]),
2120 [
2121         if test "x$withval" = "xno"
2122         then
2123                 want_zlib=no
2124         elif test "x$withval" = "xyes"
2125         then
2126                 want_zlib=yes
2127         else
2128                 want_zlib=yes
2129                 zlib_dir="$withval"
2130         fi
2131 ],[
2132         #
2133         # Use zlib if it's present, otherwise don't.
2134         #
2135         want_zlib=ifavailable
2136         zlib_dir=
2137 ])
2138 if test "x$want_zlib" = "xno" ; then
2139         AC_MSG_RESULT(no)
2140 else
2141         AC_MSG_RESULT(yes)
2142         AC_WIRESHARK_ZLIB_CHECK
2143         if test "x$want_zlib" = "xno" ; then
2144                 AC_MSG_RESULT(zlib not found - disabling gzip compression and decompression)
2145         else
2146                 if test "x$ac_cv_func_inflatePrime" = "xno" ; then
2147                         AC_MSG_RESULT(inflatePrime not found in zlib - disabling gzipped capture file support)
2148                 fi
2149         fi
2150 fi
2151
2152 dnl Lua check
2153 AC_MSG_CHECKING(whether to use liblua for the Lua scripting plugin)
2154
2155 AC_ARG_WITH(lua,
2156   AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
2157                   [use liblua (located in directory DIR, if supplied) for the Lua scripting plugin @<:@default=yes, if available@:>@]),
2158 [
2159         if test $withval = no
2160         then
2161                 want_lua=no
2162         elif test $withval = yes
2163         then
2164                 want_lua=yes
2165         else
2166                 want_lua=yes
2167                 lua_dir=$withval
2168         fi
2169 ],[
2170         #
2171         # Use liblua by default
2172         #
2173         want_lua=ifavailable
2174         lua_dir=
2175 ])
2176 if test "x$want_lua" = "xno" ; then
2177         AC_MSG_RESULT(no)
2178 else
2179         AC_MSG_RESULT(yes)
2180         AC_WIRESHARK_LIBLUA_CHECK
2181         if test "x$want_lua" = "xno" ; then
2182                 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
2183         fi
2184 fi
2185 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
2186
2187
2188 dnl portaudio check
2189 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
2190
2191 AC_ARG_WITH(portaudio,
2192   AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
2193                   [use libportaudio (located in directory DIR, if supplied) for the rtp_player @<:@default=yes, if available@:>@]),
2194 [
2195         if test $withval = no
2196         then
2197                 want_portaudio=no
2198         elif test $withval = yes
2199         then
2200                 want_portaudio=yes
2201         else
2202                 want_portaudio=yes
2203                 portaudio_dir=$withval
2204         fi
2205 ],[
2206         #
2207         # Use libportaudio by default
2208         #
2209         want_portaudio=ifavailable
2210         portaudio_dir=
2211 ])
2212 if test "x$want_portaudio" = "xno" ; then
2213         AC_MSG_RESULT(no)
2214 else
2215         AC_MSG_RESULT(yes)
2216         AC_WIRESHARK_LIBPORTAUDIO_CHECK
2217         if test "x$want_portaudio" = "xno" ; then
2218                 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
2219         fi
2220 fi
2221 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
2222
2223
2224 dnl ipv6 check
2225 AC_ARG_ENABLE(ipv6,
2226   AC_HELP_STRING( [--enable-ipv6],
2227                   [use IPv6 name resolution, if available @<:@default=yes@:>@]),
2228     enable_ipv6=$enableval,enable_ipv6=yes)
2229
2230 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
2231 if test "x$enable_ipv6" = "xno" ; then
2232         AC_MSG_RESULT(no)
2233 else
2234         AC_MSG_RESULT(yes)
2235         AC_WIRESHARK_IPV6_STACK
2236 fi
2237
2238
2239 dnl Check if dumpcap should be installed with filesystem capabilities
2240 AC_PATH_PROG(SETCAP, setcap)
2241 AC_ARG_ENABLE(setcap-install,
2242   AC_HELP_STRING( [--enable-setcap-install],
2243                   [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
2244     enable_setcap_install=$enableval,enable_setcap_install=no)
2245
2246 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
2247 if test "x$enable_setcap_install" = "xno" ; then
2248         AC_MSG_RESULT(no)
2249 else
2250         if test "x$SETCAP" = "x" ; then
2251                 AC_MSG_RESULT(no. Setcap not found)
2252         elif test "x$enable_dumpcap" = "xno" ; then
2253                 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
2254         else
2255                 AC_MSG_RESULT(yes)
2256         fi
2257 fi
2258
2259 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
2260
2261 dnl Check if dumpcap should be installed setuid
2262 AC_ARG_ENABLE(setuid-install,
2263   AC_HELP_STRING( [--enable-setuid-install],
2264                   [install dumpcap as setuid @<:@default=no@:>@]),
2265     enable_setuid_install=$enableval,enable_setuid_install=no)
2266
2267 AC_MSG_CHECKING(whether to install dumpcap setuid)
2268 if test "x$enable_setuid_install" = "xno" ; then
2269         AC_MSG_RESULT(no)
2270 else
2271         if test "x$enable_setcap_install" = "xyes" ; then
2272                 enable_setuid_install=no
2273                 AC_MSG_RESULT(no; using setcap instead)
2274         elif test "x$enable_dumpcap" = "xno" ; then
2275                 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
2276         else
2277                 AC_MSG_RESULT(yes)
2278         fi
2279 fi
2280
2281 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
2282 AC_CHECK_FUNCS(setresuid setresgid)
2283
2284 dnl ...but our Network Operations group is named "no"!
2285 DUMPCAP_GROUP=''
2286 AC_ARG_WITH(dumpcap-group,
2287   AC_HELP_STRING( [--with-dumpcap-group=GROUP],
2288                   [restrict dumpcap to GROUP]),
2289 [
2290   if test "x$withval" = "xyes"; then
2291       AC_MSG_ERROR([No dumpcap group specified.])
2292   elif test "x$withval" != "xno"; then
2293       if test "x$enable_dumpcap" = "xno" ; then
2294           AC_MSG_ERROR(dumpcap group install works only with dumpcap but dumpcap is disabled)
2295       fi
2296       AC_MSG_RESULT($withval)
2297       DUMPCAP_GROUP="$withval"
2298   fi
2299 ])
2300 AC_SUBST(DUMPCAP_GROUP)
2301 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
2302
2303 dnl libcap (not libpcap) check
2304 LIBCAP_LIBS=''
2305 AC_MSG_CHECKING(whether to use the libcap capabilities library)
2306
2307 AC_ARG_WITH(libcap,
2308   AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
2309                   [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management @<:@default=yes, if present@:>@]),
2310 [
2311 if   test "x$withval" = "xno";  then
2312         want_libcap=no
2313 elif test "x$withval" = "xyes"; then
2314         want_libcap=yes
2315 elif test -d "$withval"; then
2316         want_libcap=yes
2317         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2318 fi
2319 ])
2320 if test "x$with_libcap" = "xno" ; then
2321         AC_MSG_RESULT(no)
2322 else
2323         AC_MSG_RESULT(yes)
2324         AC_WIRESHARK_LIBCAP_CHECK
2325 fi
2326 AC_SUBST(LIBCAP_LIBS)
2327
2328 dnl Checks for header files.
2329 dnl Some of these may not be needed: http://hacks.owlfolio.org/header-survey/
2330 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)
2331 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)
2332 AC_CHECK_HEADERS(netinet/in.h)
2333 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
2334
2335 dnl SSL Check
2336 SSL_LIBS=''
2337 AC_MSG_CHECKING(whether to use SSL library)
2338
2339 AC_ARG_WITH(ssl,
2340   AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
2341                   [use SSL crypto library (located in directory DIR, if supplied) @<:@default=no@:>@]),
2342 [
2343 if test "x$withval" = "xno";  then
2344         want_ssl=no
2345 elif test "x$withval" = "xyes"; then
2346         want_ssl=yes
2347 elif test -d "$withval"; then
2348         want_ssl=yes
2349         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2350 fi
2351 ],[
2352         want_ssl=no
2353 ])
2354 if test "x$want_ssl" = "xyes"; then
2355         AC_MSG_RESULT(yes)
2356         AC_CHECK_LIB(crypto,EVP_md5,
2357             [
2358                 SSL_LIBS=-lcrypto
2359             ],
2360             [
2361                 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
2362             ])
2363 else
2364         AC_MSG_RESULT(no)
2365 fi
2366 AC_SUBST(SSL_LIBS)
2367
2368 dnl kerberos check
2369 AC_MSG_CHECKING(whether to use Kerberos library)
2370
2371 AC_ARG_WITH(krb5,
2372   AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
2373                   [use Kerberos library (located in directory DIR, if supplied) to use in Kerberos dissection @<:@default=yes@:>@]),
2374 [
2375         if test $withval = no
2376         then
2377                 want_krb5=no
2378         elif test $withval = yes
2379         then
2380                 want_krb5=yes
2381         else
2382                 want_krb5=yes
2383                 krb5_dir=$withval
2384         fi
2385 ],[
2386         #
2387         # Use Kerberos library if available, otherwise don't.
2388         #
2389         want_krb5=ifavailable
2390         krb5_dir=
2391 ])
2392 if test "x$want_krb5" = "xno" ; then
2393         AC_MSG_RESULT(no)
2394 else
2395         AC_MSG_RESULT(yes)
2396         AC_WIRESHARK_KRB5_CHECK
2397 fi
2398
2399
2400 dnl c-ares Check
2401 C_ARES_LIBS=''
2402 AC_MSG_CHECKING(whether to use the c-ares library if available)
2403
2404 AC_ARG_WITH(c-ares,
2405   AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
2406                   [use c-ares (located in directory DIR, if supplied) - supersedes --with-adns @<:@default=yes, if present@:>@]),
2407 [
2408 if   test "x$withval" = "xno";  then
2409         want_c_ares=no
2410 elif test "x$withval" = "xyes"; then
2411         want_c_ares=yes
2412 elif test -d "$withval"; then
2413         want_c_ares=yes
2414         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2415 fi
2416 ])
2417 if test "x$want_c_ares" = "xno" ; then
2418         AC_MSG_RESULT(no)
2419 else
2420         AC_MSG_RESULT(yes)
2421         AC_WIRESHARK_C_ARES_CHECK
2422 fi
2423 AC_SUBST(C_ARES_LIBS)
2424
2425 dnl ADNS Check
2426 ADNS_LIBS=''
2427 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
2428
2429 AC_ARG_WITH(adns,
2430   AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
2431                   [use GNU ADNS (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2432 [
2433 if   test "x$withval" = "xno";  then
2434         want_adns=no
2435 elif test "x$withval" = "xyes"; then
2436         want_adns=yes
2437 elif test -d "$withval"; then
2438         want_adns=yes
2439         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2440 fi
2441 ])
2442 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
2443         AC_MSG_RESULT(no)
2444 else
2445         AC_MSG_RESULT(yes)
2446         AC_WIRESHARK_ADNS_CHECK
2447 fi
2448 AC_SUBST(ADNS_LIBS)
2449
2450 dnl GEOIP Check
2451 GEOIP_LIBS=''
2452 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
2453
2454 AC_ARG_WITH(geoip,
2455   AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
2456                   [use GeoIP (located in directory DIR, if supplied) @<:@default=yes, if present@:>@]),
2457 [
2458 if   test "x$withval" = "xno";  then
2459         want_geoip=no
2460 elif test "x$withval" = "xyes"; then
2461         want_geoip=yes
2462 elif test -d "$withval"; then
2463         want_geoip=yes
2464         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
2465 fi
2466 ])
2467 if test "x$want_geoip" = "xno"; then
2468         AC_MSG_RESULT(no)
2469 else
2470         AC_MSG_RESULT(yes)
2471         AC_WIRESHARK_GEOIP_CHECK
2472 fi
2473 AC_SUBST(GEOIP_LIBS)
2474
2475 #
2476 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
2477 # never return (just like Charlie on the MTA).
2478 #
2479 # Note that MSVC++ expects __declspec(noreturn) to precede the function
2480 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
2481 # follow the function name, so we need two different flavors of
2482 # noreturn tag.
2483 #
2484 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
2485
2486 dnl Checks for typedefs, structures, and compiler characteristics.
2487 # AC_C_CONST
2488
2489 # Check how we can get the time zone abbreviation
2490 AC_WIRESHARK_TIMEZONE_ABBREV
2491
2492 # We need to know whether "struct stat" has an "st_flags" member
2493 # for file_user_immutable().
2494
2495 AC_WIRESHARK_STRUCT_ST_FLAGS
2496
2497 # We need to know whether "struct sockaddr" has an "sa_len" member
2498 # for get_interface_list().
2499
2500 AC_WIRESHARK_STRUCT_SA_LEN
2501
2502 # We must know our byte order
2503 AC_C_BIGENDIAN
2504
2505 # Checks whether "-traditional" is needed when using "ioctl".
2506 # XXX - do we need this?
2507 AC_PROG_GCC_TRADITIONAL
2508
2509 GETOPT_LO=""
2510 AC_CHECK_FUNC(getopt,
2511   [GETOPT_LO=""
2512    AC_DEFINE(HAVE_GETOPT, 1, [Define to 1 if you have the getopt function.])
2513   ],
2514   GETOPT_LO="wsgetopt.lo"
2515 )
2516 if test "$ac_cv_func_getopt" = no ; then
2517   GETOPT_LO="wsgetopt.lo"
2518 fi
2519 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
2520 AC_SUBST(GETOPT_LO)
2521
2522 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
2523   STRNCASECMP_LO="strncasecmp.lo")
2524 if test "$ac_cv_func_strncasecmp" = no ; then
2525   STRNCASECMP_LO="strncasecmp.lo"
2526 fi
2527 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
2528 AC_SUBST(STRNCASECMP_LO)
2529
2530 AC_CHECK_FUNCS(mkstemp mkdtemp)
2531
2532 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
2533     have_inet_aton=no)
2534 if test "$have_inet_aton" = no; then
2535   INET_ATON_LO="inet_aton.lo"
2536   AC_DEFINE(HAVE_INET_ATON_H, 0, [Define unless inet/aton.h needs to be included])
2537 else
2538   INET_ATON_LO=""
2539 fi
2540 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
2541 AC_SUBST(INET_ATON_LO)
2542
2543 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
2544   dnl check for pre-BIND82 inet_pton() bug.
2545   AC_MSG_CHECKING(for broken inet_pton)
2546   AC_TRY_RUN([#include <sys/types.h>
2547 #include <sys/socket.h>
2548 #include <netinet/in.h>
2549 #include <arpa/inet.h>
2550 int main()
2551 {
2552 #ifdef AF_INET6
2553   char buf[16];
2554   /* this should return 0 (error) */
2555   return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
2556 #else
2557   return 1;
2558 #endif
2559 }], [AC_MSG_RESULT(ok);
2560 have_inet_pton=yes], [AC_MSG_RESULT(broken);
2561 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
2562 have_inet_pton=no])],
2563 have_inet_pton=no)
2564 if test "$have_inet_pton" = no; then
2565   INET_PTON_LO="inet_pton.lo"
2566 else
2567   INET_PTON_LO=""
2568 fi
2569 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
2570 AC_SUBST(INET_PTON_LO)
2571
2572 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
2573   AC_MSG_CHECKING([for inet_ntop prototype])
2574   AC_TRY_COMPILE([#include <stdio.h>
2575 #include <sys/types.h>
2576 #include <sys/socket.h>
2577 #include <netinet/in.h>
2578 #include <arpa/inet.h>
2579
2580 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
2581     AC_MSG_RESULT(yes)
2582     AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2583     [Define if inet_ntop() prototype exists])], [
2584     AC_TRY_COMPILE([#include <stdio.h>
2585 #include <sys/types.h>
2586 #include <sys/socket.h>
2587 #include <netinet/in.h>
2588 #include <arpa/inet.h>
2589
2590 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
2591       AC_MSG_RESULT(yes)
2592       AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
2593       [Define if inet_ntop() prototype exists])], [
2594       AC_MSG_RESULT(no)])])
2595   INET_NTOP_LO=""], [
2596   INET_NTOP_LO="inet_ntop.lo"
2597   AC_DEFINE(NEED_INET_V6DEFS_H, 1,
2598   [Define if inet/v6defs.h needs to be included])])
2599 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
2600 AC_SUBST(INET_NTOP_LO)
2601
2602 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
2603   [STRPTIME_LO="strptime.lo"
2604    AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
2605 ])
2606 if test "$ac_cv_func_strptime" = no ; then
2607   STRPTIME_LO="strptime.lo"
2608 fi
2609 AC_SUBST(STRPTIME_C)
2610 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
2611 AC_SUBST(STRPTIME_LO)
2612
2613 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
2614 AC_CHECK_FUNCS(issetugid)
2615 AC_CHECK_FUNCS(mmap mprotect sysconf)
2616
2617 dnl blank for now, but will be used in future
2618 AC_SUBST(wireshark_SUBDIRS)
2619
2620 # Check Bluetooth SBC codec for RTP Player
2621 # git://git.kernel.org/pub/scm/bluetooth/sbc.git
2622 PKG_CHECK_MODULES(SBC, sbc >= 1.0, [have_sbc=yes], [have_sbc=no])
2623 if (test "${have_sbc}" = "yes"); then
2624     AC_DEFINE(HAVE_SBC, 1, [Define to support playing SBC by standalone BlueZ SBC library])
2625     CFLAGS="$CFLAGS $(pkg-config sbc --cflags)"
2626     LIBS="$LIBS $(pkg-config sbc --libs)"
2627 fi
2628
2629 dnl
2630 dnl check whether plugins should be enabled and, if they should be,
2631 dnl check for plugins directory - stolen from Amanda's configure.ac
2632 dnl
2633 dnl we don't wish to expand ${libdir} yet
2634 plugindir='${libdir}/wireshark/plugins/${VERSION}'
2635 AC_ARG_WITH(plugins,
2636   AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
2637                   [support plugins (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
2638 [
2639   if test "x$withval" = "xno"; then
2640     have_plugins=no
2641   elif test "x$have_plugins" = "xno"; then
2642       AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
2643   elif test "x$withval" != "xyes"; then
2644       plugindir="$withval"
2645   fi
2646 ])
2647 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
2648 if test x$have_plugins = xyes
2649 then
2650   AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
2651 fi
2652 AC_SUBST(plugindir)
2653 CPPFLAGS="$CPPFLAGS '-DPLUGIN_INSTALL_DIR=\"\$(plugindir)\"'"
2654
2655 #
2656 # The plugin dissectors reside in ./plugins/PROTO/
2657 #
2658 PLUGIN_LIBS=""
2659 AC_SUBST(PLUGIN_LIBS)
2660
2661 #
2662 # Check if (emem) memory allocations must be 8-byte aligned.
2663 # I haven't been able to write C code that reliably makes that determination
2664 # (different versions of GCC with or without optimization give different
2665 # results) so just assume everything except (32-bit) x86 needs 8-byte
2666 # alignment (64-bit platforms either require 8-byte alignment for pointers
2667 # and 64-bit integral data types or may get better performance from that;
2668 # 64-bit x86 will get 8-byte alignment from G_MEM_ALIGN anyway.  32-bit
2669 # platforms would only require it, or get better performance from it,
2670 # for 64-bit floating-point values.).
2671 #
2672 AC_MSG_CHECKING(whether we need memory allocations to be 8-byte aligned)
2673 case $host_cpu in
2674         i386|i486|i586|i686)
2675                 AC_MSG_RESULT(no)
2676                 ;;
2677         *)
2678                 AC_MSG_RESULT(yes)
2679                 AC_DEFINE(NEED_8_BYTE_ALIGNMENT, 1, [Define if we need memory allocations to be 8-byte aligned])
2680                 ;;
2681 esac
2682
2683 # Gather only the "--with*" arguments and also a list of --with arguments for rpmbuild
2684 for f in $CONFIG_ARGS
2685 do
2686         case $f in
2687         --with-gtk2*)
2688                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2689                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with gtk2"
2690                 ;;
2691         --without-gtk2*)
2692                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2693                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without gtk2"
2694                 ;;
2695         --with-gtk3*)
2696                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2697                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with gtk3"
2698                 ;;
2699         --without-gtk3*)
2700                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2701                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without gtk3"
2702                 ;;
2703         --with-qt*)
2704                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2705                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --with qt"
2706                 ;;
2707         --without-qt*)
2708                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2709                 RPMBUILD_WITH_ARGS="$RPMBUILD_WITH_ARGS --without qt"
2710                 ;;
2711         --with*)
2712                 CONFIG_WITH_ARGS="$CONFIG_WITH_ARGS $f"
2713                 ;;
2714         esac
2715
2716 done
2717 AC_SUBST(CONFIG_WITH_ARGS)
2718 AC_SUBST(RPMBUILD_WITH_ARGS)
2719
2720 dnl libtool defs
2721 #
2722 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
2723 # (autoconf?  automake?  libtool?) - with the newer version(s), it's
2724 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
2725 #
2726 # With older version(s) of those tool(s), however, it's not just an
2727 # alias, and the configure scripts don't work without it.
2728 #
2729 AM_PROG_LIBTOOL
2730 AC_SUBST(LIBTOOL_DEPS)
2731
2732 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
2733 if test x$enable_static = xyes -a x$have_plugins = xyes
2734 then
2735   AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
2736 fi
2737 AC_SUBST(ENABLE_STATIC)
2738
2739 dnl Save the cacheable configure results to config.cache before recursing
2740 AC_CACHE_SAVE
2741
2742 sinclude(plugins/Custom.m4) dnl
2743 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
2744
2745 sinclude(asn1/Custom.m4) dnl
2746 ifdef(_CUSTOM_ASN1_AC_OUTPUT_,, define(_CUSTOM_ASN1_AC_OUTPUT_, )) dnl
2747
2748 AC_CONFIG_HEADERS(config.h)
2749 AC_OUTPUT(
2750   Makefile
2751   doxygen.cfg
2752   asn1/Makefile
2753   _CUSTOM_ASN1_AC_OUTPUT_
2754   asn1/acp133/Makefile
2755   asn1/acse/Makefile
2756   asn1/ansi_map/Makefile
2757   asn1/ansi_tcap/Makefile
2758   asn1/atn-cm/Makefile
2759   asn1/atn-cpdlc/Makefile
2760   asn1/atn-ulcs/Makefile
2761   asn1/c1222/Makefile
2762   asn1/camel/Makefile
2763   asn1/cdt/Makefile
2764   asn1/charging_ase/Makefile
2765   asn1/cmip/Makefile
2766   asn1/cmp/Makefile
2767   asn1/crmf/Makefile
2768   asn1/cms/Makefile
2769   asn1/credssp/Makefile
2770   asn1/dap/Makefile
2771   asn1/disp/Makefile
2772   asn1/dop/Makefile
2773   asn1/dsp/Makefile
2774   asn1/ess/Makefile
2775   asn1/ftam/Makefile
2776   asn1/goose/Makefile
2777   asn1/gprscdr/Makefile
2778   asn1/gsm_map/Makefile
2779   asn1/h225/Makefile
2780   asn1/h235/Makefile
2781   asn1/h245/Makefile
2782   asn1/h248/Makefile
2783   asn1/h282/Makefile
2784   asn1/h283/Makefile
2785   asn1/h323/Makefile
2786   asn1/h450/Makefile
2787   asn1/h450-ros/Makefile
2788   asn1/h460/Makefile
2789   asn1/h501/Makefile
2790   asn1/HI2Operations/Makefile
2791   asn1/hnbap/Makefile
2792   asn1/idmp/Makefile
2793   asn1/ilp/Makefile
2794   asn1/inap/Makefile
2795   asn1/isdn-sup/Makefile
2796   asn1/kerberos/Makefile
2797   asn1/lcsap/Makefile
2798   asn1/ldap/Makefile
2799   asn1/logotypecertextn/Makefile
2800   asn1/lpp/Makefile
2801   asn1/lppa/Makefile
2802   asn1/lppe/Makefile
2803   asn1/lte-rrc/Makefile
2804   asn1/m3ap/Makefile
2805   asn1/mms/Makefile
2806   asn1/mpeg-audio/Makefile
2807   asn1/mpeg-pes/Makefile
2808   asn1/nbap/Makefile
2809   asn1/ns_cert_exts/Makefile
2810   asn1/novell_pkis/Makefile
2811   asn1/ocsp/Makefile
2812   asn1/p1/Makefile
2813   asn1/p22/Makefile
2814   asn1/p7/Makefile
2815   asn1/p772/Makefile
2816   asn1/pcap/Makefile
2817   asn1/pkcs1/Makefile
2818   asn1/pkcs12/Makefile
2819   asn1/pkinit/Makefile
2820   asn1/pkixac/Makefile
2821   asn1/pkix1explicit/Makefile
2822   asn1/pkix1implicit/Makefile
2823   asn1/pkixproxy/Makefile
2824   asn1/pkixqualified/Makefile
2825   asn1/pkixtsp/Makefile
2826   asn1/pres/Makefile
2827   asn1/q932/Makefile
2828   asn1/q932-ros/Makefile
2829   asn1/qsig/Makefile
2830   asn1/ranap/Makefile
2831   asn1/rnsap/Makefile
2832   asn1/ros/Makefile
2833   asn1/rrc/Makefile
2834   asn1/rrlp/Makefile
2835   asn1/rtse/Makefile
2836   asn1/rua/Makefile
2837   asn1/s1ap/Makefile
2838   asn1/sabp/Makefile
2839   asn1/sbc-ap/Makefile
2840   asn1/smrse/Makefile
2841   asn1/snmp/Makefile
2842   asn1/spnego/Makefile
2843   asn1/sv/Makefile
2844   asn1/t124/Makefile
2845   asn1/t125/Makefile
2846   asn1/t38/Makefile
2847   asn1/tcap/Makefile
2848   asn1/tetra/Makefile
2849   asn1/ulp/Makefile
2850   asn1/wlancertextn/Makefile
2851   asn1/x2ap/Makefile
2852   asn1/x509af/Makefile
2853   asn1/x509ce/Makefile
2854   asn1/x509if/Makefile
2855   asn1/x509sat/Makefile
2856   asn1/x721/Makefile
2857   capchild/Makefile
2858   capchild/doxygen.cfg
2859   doc/Makefile
2860   docbook/Makefile
2861   epan/Makefile
2862   epan/crypt/Makefile
2863   epan/doxygen.cfg
2864   epan/dfilter/Makefile
2865   epan/dissectors/Makefile
2866   epan/dissectors/dcerpc/Makefile
2867   epan/dissectors/pidl/Makefile
2868   epan/ftypes/Makefile
2869   epan/wmem/Makefile
2870   epan/wslua/Makefile
2871   filetap/Makefile
2872   codecs/Makefile
2873   ui/Makefile
2874   ui/doxygen.cfg
2875   ui/gtk/Makefile
2876   ui/gtk/doxygen.cfg
2877   ui/cli/Makefile
2878   ui/qt/Makefile
2879   ui/qt/doxygen.cfg
2880   help/Makefile
2881   packaging/Makefile
2882   packaging/macosx/Info.plist
2883   packaging/macosx/Makefile
2884   packaging/macosx/osx-dmg.sh
2885   packaging/macosx/Wireshark_package.pmdoc/index.xml
2886   packaging/nsis/Makefile
2887   packaging/rpm/Makefile
2888   packaging/rpm/SPECS/Makefile
2889   packaging/rpm/SPECS/wireshark.spec
2890   packaging/svr4/Makefile
2891   packaging/svr4/checkinstall
2892   packaging/svr4/pkginfo
2893   plugins/Makefile
2894   plugins/docsis/Makefile
2895   plugins/ethercat/Makefile
2896   plugins/gryphon/Makefile
2897   plugins/irda/Makefile
2898   plugins/m2m/Makefile
2899   plugins/mate/Makefile
2900   plugins/opcua/Makefile
2901   plugins/profinet/Makefile
2902   plugins/stats_tree/Makefile
2903   plugins/unistim/Makefile
2904   plugins/wimax/Makefile
2905   plugins/wimaxasncp/Makefile
2906   plugins/wimaxmacphy/Makefile
2907   tools/Makefile
2908   tools/lemon/Makefile
2909   wiretap/Makefile
2910   wsutil/Makefile
2911   wsutil/nghttp2/Makefile
2912   echld/Makefile
2913   _CUSTOM_AC_OUTPUT_
2914   ,)
2915 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
2916
2917
2918 # Pretty messages
2919
2920 if test "x$have_gtk" = "xyes"; then
2921         if test "x$with_gtk3" = "xyes"; then
2922                 gtk_lib_message=" (with GTK+ 3"
2923         else
2924                 gtk_lib_message=" (with GTK+ 2"
2925         fi
2926         if test "x$have_ige_mac" = "xyes"; then
2927                 gtk_lib_message="$gtk_lib_message and Mac OS X integration)"
2928         else
2929                 gtk_lib_message="$gtk_lib_message)"
2930         fi
2931 fi
2932
2933 if test "x$have_qt" = "xyes" ; then
2934         enable_qtshark="yes"
2935 else
2936         enable_qtshark="no"
2937 fi
2938
2939 if test "x$enable_setcap_install" = "xyes" ; then
2940         setcap_message="yes"
2941 else
2942         setcap_message="no"
2943 fi
2944
2945 if test "x$enable_setuid_install" = "xyes" ; then
2946         setuid_message="yes"
2947 else
2948         setuid_message="no"
2949 fi
2950
2951 if test "x$DUMPCAP_GROUP" = "x" ; then
2952         dumpcap_group_message="(none)"
2953 else
2954         dumpcap_group_message="$DUMPCAP_GROUP"
2955 fi
2956
2957 if test "x$want_zlib" = "xno" ; then
2958         zlib_message="no"
2959 else
2960         zlib_message="yes"
2961 fi
2962
2963 if test "x$want_lua" = "xyes" ; then
2964         lua_message="yes"
2965 else
2966         lua_message="no"
2967 fi
2968
2969 if test "x$want_portaudio" = "xyes" ; then
2970         portaudio_message="yes"
2971 else
2972         portaudio_message="no"
2973 fi
2974
2975 if test "x$want_ssl" = "xno" ; then
2976         ssl_message="no"
2977 else
2978         ssl_message="yes"
2979 fi
2980
2981 if test "x$want_krb5" = "xno" ; then
2982         krb5_message="no"
2983 else
2984         krb5_message="yes ($ac_krb5_version)"
2985 fi
2986
2987 if test "x$have_good_c_ares" = "xyes" ; then
2988         c_ares_message="yes"
2989 else
2990         c_ares_message="no"
2991 fi
2992
2993 if test "x$have_good_adns" = "xyes" ; then
2994         adns_message="yes"
2995 else
2996         if test "x$have_good_c_ares" = "xyes" ; then
2997                 adns_message="no (using c-ares instead)"
2998         else
2999                 adns_message="no"
3000         fi
3001 fi
3002
3003 if test "x$have_good_libcap" = "xyes" ; then
3004         libcap_message="yes"
3005 else
3006         libcap_message="no"
3007 fi
3008
3009 if test "x$have_good_geoip" = "xyes" ; then
3010         geoip_message="yes"
3011 else
3012         geoip_message="no"
3013 fi
3014
3015 echo ""
3016 echo "The Wireshark package has been configured with the following options."
3017 echo "             Build wireshark (Gtk+) : $have_gtk""$gtk_lib_message"
3018 echo "                 Build wireshark-qt : $enable_qtshark"
3019 echo "                       Build tshark : $enable_tshark"
3020 echo "                      Build tfshark : $enable_tfshark"
3021 echo "                     Build capinfos : $enable_capinfos"
3022 echo "                      Build captype : $enable_captype"
3023 echo "                      Build editcap : $enable_editcap"
3024 echo "                      Build dumpcap : $enable_dumpcap"
3025 echo "                     Build mergecap : $enable_mergecap"
3026 echo "                   Build reordercap : $enable_reordercap"
3027 echo "                    Build text2pcap : $enable_text2pcap"
3028 echo "                      Build randpkt : $enable_randpkt"
3029 echo "                       Build dftest : $enable_dftest"
3030 echo "                     Build rawshark : $enable_rawshark"
3031 echo "                        Build echld : $have_echld"
3032 echo ""
3033 echo "   Save files as pcap-ng by default : $enable_pcap_ng_default"
3034 echo "  Install dumpcap with capabilities : $setcap_message"
3035 echo "             Install dumpcap setuid : $setuid_message"
3036 echo "                  Use dumpcap group : $dumpcap_group_message"
3037 echo "                        Use plugins : $have_plugins"
3038 echo "                    Use Lua library : $lua_message"
3039 echo "                   Build rtp_player : $portaudio_message"
3040 echo "             Build profile binaries : $enable_profile_build"
3041 echo "                   Use pcap library : $want_pcap"
3042 echo "                   Use zlib library : $zlib_message"
3043 echo "               Use kerberos library : $krb5_message"
3044 echo "                 Use c-ares library : $c_ares_message"
3045 echo "               Use GNU ADNS library : $adns_message"
3046 echo "                Use SMI MIB library : $libsmi_message"
3047 echo "             Use GNU crypto library : $gcrypt_message"
3048 echo "             Use SSL crypto library : $ssl_message"
3049 echo "           Use IPv6 name resolution : $enable_ipv6"
3050 echo "                 Use gnutls library : $tls_message"
3051 echo "     Use POSIX capabilities library : $libcap_message"
3052 echo "                  Use GeoIP library : $geoip_message"
3053 echo "                     Use nl library : $libnl_message"
3054 echo "              Use SBC codec library : $have_sbc"