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