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