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