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