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