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