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