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