From Jakub Zawadzki:
[obnox/wireshark/wip.git] / configure.in
1 # $Id$
2 #
3 AC_PREREQ(2.60)
4
5 AC_INIT(wireshark, 1.5.1)
6
7 dnl Check for CPU / vendor / OS
8 dnl The user is encouraged to use either `AC_CANONICAL_BUILD', or
9 dnl `AC_CANONICAL_HOST', or `AC_CANONICAL_TARGET', depending on the
10 dnl needs.  Using `AC_CANONICAL_TARGET' is enough to run the two other
11 dnl macros.
12 dnl
13 dnl As nothing in the Wireshark is itself a build tool (we are not,
14 dnl for example, a compiler that generates machine code), we probably
15 dnl don't need AC_CANONICAL_TARGET, so, in theory, we should be able
16 dnl to use AC_CANONICAL_BUILD and AC_CANONICAL_HOST - or perhaps just
17 dnl AC_CANONICAL_HOST - instead.  Note that we do have tools, such as
18 dnl lemon, that need to be built for the build machine, not for the
19 dnl host machine, so we might need both.
20 dnl
21 dnl This has to be done *after* AC_INIT, otherwise autogen.sh fails.
22
23 dnl AC_CANONICAL_BUILD
24 dnl AC_CANONICAL_HOST
25 AC_CANONICAL_TARGET
26
27 AM_INIT_AUTOMAKE([1.9 tar-ustar dist-bzip2 no-dist-gzip])
28
29 AM_DISABLE_STATIC
30
31 dnl Checks for programs.
32 AC_PROG_CC
33 AM_PROG_CC_C_O
34 AC_PROG_CXX
35 AC_PROG_CPP
36 dnl Work around libtool bug (fixed in the version 1.5a?)
37 AC_DEFUN([AC_PROVIDE_AC_LIBTOOL_DLOPEN], )
38 AC_LIBTOOL_DLOPEN
39 AC_PROG_LIBTOOL
40 AC_PATH_PROG(PERL, perl)
41 #
42 # XXX - should autogen.sh check for YACC/Bison and Flex?  A user building
43 # from a distribution tarball shouldn't have to have YACC/Bison or Flex,
44 # as the tarball should contain the results of running YACC/Bison on .y
45 # files and running Flex on .l files, but a user building from SVN
46 # will have to run YACC/Bison and Flex to process those files.
47 #
48 # On the other hand, what about users who use a distribution tarball to
49 # do development?  They *shouldn't* - that's what the SVN repository is
50 # for - but they might.  They'd get errors if they modify a .y or .l
51 # file and try to do a build - but the error should tell them that they
52 # need to get YACC/Bison and/or Flex.
53 #
54 # Then again, getting them shouldn't be too big of a burden.
55 #
56 # XXX - is the same true of pod2man and pod2html, or are they needed
57 # even when building from a distribution tarball?
58 #
59 #
60 AC_PROG_YACC
61 AC_PATH_PROG(YACCDUMMY, $YACC)
62 if test "x$YACCDUMMY" = x
63 then
64         AC_MSG_ERROR(I couldn't find yacc (or bison or ...); make sure it's installed and in your path)
65 fi
66 AM_PROG_LEX
67 AC_PATH_PROG(LEX, flex)
68 if test "x$LEX" = x
69 then
70         AC_MSG_ERROR(I couldn't find flex; make sure it's installed and in your path)
71 fi
72 AC_PATH_PROG(POD2MAN, pod2man)
73 if test "x$POD2MAN" = x
74 then
75         #
76         # The alternative is not to build the man pages....
77         #
78         AC_MSG_ERROR(I couldn't find pod2man; make sure it's installed and in your path)
79 fi
80 AC_PATH_PROG(POD2HTML, pod2html)
81 if test "x$POD2HTML" = x
82 then
83         #
84         # The alternative is not to build the HTML man pages....
85         #
86         AC_MSG_ERROR(I couldn't find pod2html; make sure it's installed and in your path)
87 fi
88
89 #
90 # XXX - this looks for various HTML viewers on the host, not the target;
91 # we really want to know what's available on the target, for cross-builds.
92 # That would probably require us to, at run time, look for xdg-open and,
93 # if we don't find it, look for mozilla, htmlview, etc.
94 #
95 AC_PATH_PROG(HTML_VIEWER, xdg-open)
96 if test "x$HTML_VIEWER" != x
97 then
98         #
99         # XXX - the HTML_VIEWER shell variable is the full path of xdg-open.
100         # Define some variable to be that, so we just run that?
101         #
102         AC_DEFINE(HAVE_XDG_OPEN, 1, [Define if we have xdg-open])
103
104         #
105         # XXX - we have to define HTML_VIEWER for the prefs.c code that
106         # sets the default value of the Web browser preference, even
107         # though that preference won't be offered.
108         #
109         AC_DEFINE_UNQUOTED(HTML_VIEWER, "xdg-open", [HTML viewer, e.g. mozilla])
110 else
111         AC_PATH_PROG(HTML_VIEWER, htmlview)
112         if test "x$HTML_VIEWER" = x
113         then
114                 AC_DEFINE_UNQUOTED(HTML_VIEWER, "mozilla", [HTML viewer, e.g. mozilla])
115         else
116                 AC_DEFINE_UNQUOTED(HTML_VIEWER, "htmlview", [HTML viewer, e.g. mozilla])
117         fi
118 fi
119
120 AC_PATH_PROG(PYTHON, python)
121
122 AC_SUBST(PERL)
123 AC_SUBST(LEX)
124 AC_SUBST(POD2MAN)
125 AC_SUBST(POD2HTML)
126 AC_SUBST(PYTHON)
127 AC_SUBST(XSLTPROC)
128 AC_SUBST(XMLLINT)
129
130 if test "x$CC_FOR_BUILD" = x
131 then
132        CC_FOR_BUILD=$CC
133 fi
134 AC_SUBST(CC_FOR_BUILD)
135
136 # Check for doxygen
137 AC_PATH_PROG(DOXYGEN, doxygen)
138 AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, "yes", "no")
139 AM_CONDITIONAL(HAVE_DOXYGEN, test x$HAVE_DOXYGEN = xyes)
140
141 # gnu tls
142 tls_message="no"
143 AC_ARG_WITH([gnutls],
144   AC_HELP_STRING( [--with-gnutls=@<:@yes/no@:>@],
145                   [use gnutls library @<:@default=yes@:>@]),
146   with_gnutls="$withval", with_gnutls="yes")
147 if test "x$with_gnutls" = "xyes"; then
148   PKG_CHECK_MODULES([LIBGNUTLS], [gnutls >= 1.2.0],
149         [
150                 echo "gnuTLS found, enabling ssl decryption"
151                 AC_DEFINE(HAVE_LIBGNUTLS, 1, [Define to use gnutls library])
152                 tls_message="yes"
153         ]
154         , [
155                 echo "gnuTLS not found, disabling ssl decryption"
156                 tls_message="no"
157         ]
158   )
159 fi
160
161 # libgrypt
162 gcrypt_message="no"
163 AC_ARG_WITH([gcrypt],
164   AC_HELP_STRING( [--with-gcrypt=@<:@yes/no@:>@],
165                   [use gcrypt library @<:@default=yes@:>@]),
166   with_gcrypt="$withval", with_gcrypt="yes")
167 if test "x$with_gcrypt" = "xyes"; then
168   AM_PATH_LIBGCRYPT(1.1.92,
169         [
170                 echo "libgcrypt found, enabling ipsec decryption"
171                 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define to use libgcrypt])
172                 gcrypt_message="yes"
173         ]
174         , [
175                 if test x$libgcrypt_config_prefix != x ; then
176                         AC_MSG_ERROR([[libgcrypt not found; install libgcrypt-devel package for your system]])
177                 else
178                         echo "libgcrypt not found, disabling ipsec decryption"
179                         gcrypt_message="no"
180                 fi
181         ]
182   )
183 fi
184
185 AC_ARG_WITH([gtk3],
186   AC_HELP_STRING( [--with-gtk3=@<:@yes/no@:>@],
187                   [use GTK+ 3.0 instead of 2.0 @<:@default=no@:>@]),
188   with_gtk3="$withval", with_gtk="no")
189
190
191 # libsmi
192 # FIXME: currently the path argument to with-libsmi is being ignored
193 AX_LIBSMI
194
195 # Check for xsltproc
196 AC_PATH_PROG(XSLTPROC, xsltproc)
197 AC_CHECK_PROG(HAVE_XSLTPROC, xsltproc, "yes", "no")
198 AM_CONDITIONAL(HAVE_XSLTPROC, test x$HAVE_XSLTPROC = xyes)
199
200 # Check for xmllint
201 AC_PATH_PROG(XMLLINT, xmllint)
202 AC_CHECK_PROG(HAVE_XMLLINT, xmllint, "yes", "no")
203 AM_CONDITIONAL(HAVE_XMLLINT, test x$HAVE_XMLLINT = xyes)
204
205 # Check for fop (translate .fo to e.g. pdf)
206 AC_PATH_PROG(FOP, fop)
207 AC_CHECK_PROG(HAVE_FOP, fop, "yes", "no")
208 AM_CONDITIONAL(HAVE_FOP, test x$HAVE_FOP = xyes)
209
210 #
211 # Look for something to convert HTML to text (for docbook/)
212 #
213 AC_PATH_PROG(ELINKS, elinks)
214 AC_CHECK_PROG(HAVE_ELINKS, elinks, "yes", "no")
215 AM_CONDITIONAL(HAVE_ELINKS, test x$HAVE_ELINKS = xyes)
216
217 ## links: Fails as used in docbook/Makefile.am
218 ## (Rather than fixing things we'll just disable the use of links).
219 ##AC_PATH_PROG(LINKS, links)
220 ##AC_CHECK_PROG(HAVE_LINKS, links, "yes", "no")
221 ##AM_CONDITIONAL(HAVE_LINKS, test x$HAVE_LINKS = xyes)
222
223 AC_PATH_PROG(LYNX, lynx)
224 AC_CHECK_PROG(HAVE_LYNX, lynx, "yes", "no")
225 AM_CONDITIONAL(HAVE_LYNX, test x$HAVE_LYNX = xyes)
226
227
228 # Check for hhc (html help compiler)
229 AC_PATH_PROG(HHC, hhc.exe)
230 AC_CHECK_PROG(HAVE_HHC, hhc.exe, "yes", "no")
231 AM_CONDITIONAL(HAVE_HHC, test x$HAVE_HHC = xyes)
232
233 # Check for packaging utilities
234 # For now, we check to see if the various packaging utilites are in our
235 # path.  I'm too lazy to write code to go hunt for them.  -  Gerald
236
237 # SVR4/Solaris
238 AC_CHECK_PROG(HAVE_PKGPROTO, pkgproto, "yes", "no")
239 AC_CHECK_PROG(HAVE_PKGMK, pkgmk, "yes", "no")
240 AC_CHECK_PROG(HAVE_PKGTRANS, pkgtrans, "yes", "no")
241
242 if test x$HAVE_PKGPROTO = xyes -a x$HAVE_PKGMK = xyes \
243      -a x$HAVE_PKGTRANS = xyes ; then
244   HAVE_SVR4_PACKAGING=yes
245 else
246   HAVE_SVR4_PACKAGING=no
247 fi
248 AC_SUBST(HAVE_SVR4_PACKAGING)
249
250 # RPM
251 AC_WIRESHARK_RPM_CHECK
252 AC_SUBST(HAVE_RPM)
253
254 # Debian
255 AC_CHECK_PROG(HAVE_DPKG_BUILDPACKAGE, dpkg-buildpackage, "yes", "no")
256
257 # Mac OS X
258 AC_CHECK_PROG(HAVE_XCODEBUILD, xcodebuild, "yes", "no")
259 AC_CHECK_PROG(HAVE_HDIUTIL, hdiutil, "yes", "no")
260 AC_CHECK_PROG(HAVE_BLESS, bless, "yes", "no")
261
262 if test x$HAVE_XCODEBUILD = xyes -a x$HAVE_HDIUTIL = xyes \
263      -a x$HAVE_BLESS = xyes ; then
264   HAVE_OSX_PACKAGING=yes
265 else
266   HAVE_OSX_PACKAGING=no
267 fi
268 AC_SUBST(HAVE_OSX_PACKAGING)
269
270 #
271 # Try to add some additional gcc checks to CFLAGS
272 #
273 AC_ARG_ENABLE(extra-gcc-checks,
274   AC_HELP_STRING( [--enable-extra-gcc-checks],
275                   [Do additional -W checks in GCC.  @<:@default=no@:>@]),
276 [
277         wireshark_extra_gcc_flags=$enableval
278         if test $enableval != no
279         then
280                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic)
281                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow)
282                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op)
283                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings)
284 #               AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4)
285 #               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code)
286 #               AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations)
287                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long)
288                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast)
289                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual)
290                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress)
291                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
292                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes)
293                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
294                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero)
295                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
296                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers)
297                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas)
298                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls)
299                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla)
300                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat)
301                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init)
302                 #
303                 # epan/dissectors/packet-ncp2222.inc blocks this one
304                 # for now.
305                 #
306                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings)
307                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes)
308                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations)
309                 #
310                 # epan/dissectors/packet-afs.c blocks this one for now.
311                 #
312                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshadow)
313                 #
314                 # More cleanup needed for this on LP64.
315                 #
316                 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32)
317         fi
318 ],)
319 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra
320 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wextra) # -W is now known as -Wextra
321 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdeclaration-after-statement)
322 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wendif-labels)
323 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpointer-arith)
324 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-pointer-sign)
325 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds)
326 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align)
327 AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security)
328 # Use the faster pre gcc 4.5 floating point precision
329 AC_WIRESHARK_GCC_CFLAGS_CHECK(-fexcess-precision=fast)
330
331 AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--as-needed])
332 ###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,-M])
333 ###AC_WIRESHARK_GCC_LDFLAGS_CHECK([-Wl,--cref])
334 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-flto])
335 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhopr])
336 # AC_WIRESHARK_GCC_LDFLAGS_CHECK([-fwhole-program])
337
338 #
339 # If we're running gcc add '-D_U_="__attribute__((unused))"' to CFLAGS as well,
340 # so we can use _U_ to flag unused function arguments and not get warnings
341 # about them. Otherwise, add '-D_U_=""', so that _U_ used to flag an unused
342 # function argument will compile with non-GCC compilers.
343 #
344 if test "x$GCC" = "xyes" ; then
345   CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
346 else
347   CFLAGS="-D_U_=\"\" $CFLAGS"
348 fi
349
350 #
351 # If we're running gcc, will enable a barrier "stop on warning".
352 # This barrier is set for a very large part of the code. However, it is
353 # typically not set for "generated" code  (flex, ans2wrs, idl2wrs, ...)
354 #
355 warnings_as_errors_default="yes"
356 AC_MSG_CHECKING(whether we should treat compiler warnings as errors)
357 AC_ARG_ENABLE(warnings-as-errors,
358   AC_HELP_STRING( [--enable-warnings-as-errors],
359                   [Treat warnings as errors (only for gcc). @<:@default=yes@:>@]),
360 [
361   if test "x$GCC" = "xyes" -a "x$enableval" == "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then
362     with_warnings_as_errors="yes"
363     AC_MSG_RESULT(yes)
364   else
365     with_warnings_as_errors="no"
366     AC_MSG_RESULT(no)
367   fi
368 ],
369   if test "x$GCC" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then
370     with_warnings_as_errors="yes"
371     AC_MSG_RESULT(yes)
372   else
373     with_warnings_as_errors="no"
374     AC_MSG_RESULT(no)
375   fi
376 )
377 AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes")
378
379 #
380 # Add any platform-specific compiler flags needed.
381 #
382 AC_MSG_CHECKING(for platform-specific compiler flags)
383 if test "x$GCC" = "xyes" ; then
384         #
385         # GCC - do any platform-specific tweaking necessary.
386         #
387         case "$host_os" in
388         solaris*)
389                 # the X11 headers don't automatically include prototype info
390                 # and a lot don't include the return type
391                 CFLAGS="$CFLAGS -Wno-return-type -DFUNCPROTO=15"
392                 AC_MSG_RESULT(GCC on Solaris - added -Wno-return-type -DFUNCPROTO=15)
393                 ;;
394         darwin*)
395                 #
396                 # See comments above about Apple's lovely C compiler.
397                 #
398                 CFLAGS="-no-cpp-precomp $CFLAGS"
399                 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
400                 ;;
401         *)
402                 AC_MSG_RESULT(none needed)
403                 ;;
404         esac
405 else
406         #
407         # Not GCC - assume it's the vendor's compiler.
408         #
409         case "$host_os" in
410         hpux*)
411                 #
412                 # HP's ANSI C compiler; flags suggested by Jost Martin.
413                 # "-Ae" for ANSI C plus extensions such as "long long".
414                 # "+O2", for optimization.  XXX - works with "-g"?
415                 #
416                 CFLAGS="-Ae +O2 $CFLAGS"
417                 AC_MSG_RESULT(HP ANSI C compiler - added -Ae +O2)
418                 ;;
419         darwin*)
420                 #
421                 # It may be called "cc", but it's really a GCC derivative
422                 # with a problematic special precompiler and precompiled
423                 # headers; turn off the special precompiler, as some
424                 # apparently-legal code won't compile with its precompiled
425                 # headers.
426                 #
427                 CFLAGS="-no-cpp-precomp $CFLAGS"
428                 AC_MSG_RESULT(Apple GCC - added -no-cpp-precomp)
429                 ;;
430         *)
431                 AC_MSG_RESULT(none needed)
432                 ;;
433         esac
434 fi
435
436 #
437 # Add any platform-specific linker flags needed.
438 #
439 AC_MSG_CHECKING(for platform-specific linker flags)
440 case "$host_os" in
441 darwin*)
442         #
443         # Add -Wl,-single_module to the LDFLAGS used with shared
444         # libraries, to fix some error that show up in some cases;
445         # some Apple documentation recommends it for most shared
446         # libraries.
447         #
448         LDFLAGS_SHAREDLIB="-Wl,-single_module"
449         #
450         # Add -Wl,-search_paths_first to make sure that if we search
451         # directories A and B, in that order, for a given library, a
452         # non-shared version in directory A, rather than a shared
453         # version in directory B, is chosen (so we can use
454         # --with-pcap=/usr/local to force all programs to be linked
455         # with a static version installed in /usr/local/lib rather than
456         # the system version in /usr/lib).
457         #
458         LDFLAGS="-Wl,-search_paths_first $LDFLAGS"
459         AC_MSG_RESULT([Apple linker - added -Wl,-single_module and -Wl,-search_paths_first])
460         ;;
461 cygwin*)
462         #
463         # Shared libraries in cygwin/Win32 must never contain
464         # undefined symbols.
465         #
466         LDFLAGS="$LDFLAGS -no-undefined"
467         AC_MSG_RESULT(CygWin GNU ld - added -no-undefined)
468         ;;
469 *)
470         AC_MSG_RESULT(none needed)
471         ;;
472 esac
473 AC_SUBST(LDFLAGS_SHAREDLIB)
474
475 # Control silent compiling
476 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([no])])
477
478 #
479 # On OS X, if we find the headers for Core Foundation, Launch Services,
480 # and Core Services, add -framework options to link with Application
481 # Services (of which Launch Services is a subframework), Core Foundation
482 # (required by the Launch Services APIs), and Core Services, so we can
483 # use them to launch a Web browser from the Help menu and to use
484 # Gestalt() to get the Mac OS X version number.
485 #
486 case "$host_os" in
487
488 darwin*)
489         AC_MSG_CHECKING([whether we can build with Core Foundation, Launch Services, and Core Services])
490         ac_save_LIBS="$LIBS"
491         ac_coreservices_frameworks="-framework CoreServices"
492         ac_launchservices_frameworks="-framework ApplicationServices -framework CoreFoundation $ac_coreservices_frameworks"
493         LIBS="$LIBS $ac_launchservices_frameworks $ac_coreservices_frameworks"
494         AC_TRY_LINK(
495            [
496 #       include <CoreFoundation/CFBase.h>
497 #       include <CoreFoundation/CFString.h>
498 #       include <CoreFoundation/CFURL.h>
499 #       include <ApplicationServices/ApplicationServices.h>
500 #       include <CoreServices/CoreServices.h>
501            ],
502            [
503         CFStringRef url_CFString;
504         CFURLRef url_CFURL;
505         OSStatus status;
506         long os_version;
507
508         url_CFString = CFStringCreateWithCString(NULL, "", kCFStringEncodingASCII);
509         url_CFURL = CFURLCreateWithString(NULL, url_CFString, NULL);
510         status = LSOpenCFURLRef(url_CFURL, NULL);
511
512         Gestalt(gestaltSystemVersion, &os_version);
513            ],
514            ac_cv_can_use_osx_frameworks=yes,
515            ac_cv_can_use_osx_frameworks=no,
516            [echo $ac_n "cross compiling; assumed OK... $ac_c"])
517         if test "$ac_cv_can_use_osx_frameworks" = yes ; then
518                 AC_DEFINE(HAVE_OS_X_FRAMEWORKS, 1, [Define to 1 if you have OS X frameworks])
519                 CORESERVICES_FRAMEWORKS="$ac_coreservices_frameworks"
520                 LAUNCHSERVICES_FRAMEWORKS="$ac_launchservices_frameworks"
521                 AC_MSG_RESULT(yes)
522         else
523                 AC_MSG_RESULT(no)
524         fi
525         LIBS="$ac_save_LIBS"
526         ;;
527 esac
528 AC_SUBST(CORESERVICES_FRAMEWORKS)
529 AC_SUBST(LAUNCHSERVICES_FRAMEWORKS)
530
531 #
532 # If using $prefix we add "$prefix/include" to the include search path
533 # and "$prefix/lib" to the library search path.
534 #
535 if test "x$prefix" != "x" ; then
536         AC_MSG_CHECKING(whether to use $prefix for headers and libraries)
537         if test -d $prefix/include ; then
538                 AC_MSG_RESULT(yes)
539                 #
540                 # Arrange that we search for header files in "$prefix/include", as
541                 # various packages we use may have been installed under "$prefix/include".
542                 #
543                 CFLAGS="$CFLAGS -I$prefix/include"
544                 CPPFLAGS="$CPPFLAGS -I$prefix/include"
545
546                 #
547                 # Arrange that we search for libraries in "$prefix/lib".
548                 #
549                 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, $prefix/lib)
550         else
551                 AC_MSG_RESULT(no)
552         fi
553 fi
554
555 dnl Look in /usr/local for header files and libraries ?
556 dnl XXX FIXME don't include /usr/local if it is already in the system
557 dnl search path as this causes gcc 3.2 on Linux to complain about a change
558 dnl of the system search order for includes
559 AC_ARG_ENABLE(usr-local,
560   AC_HELP_STRING( [--enable-usr-local],
561                   [look for headers and libs in /usr/local tree.  @<:@default=yes@:>@]),
562     ac_cv_enable_usr_local=$enableval,ac_cv_enable_usr_local=yes)
563
564 AC_MSG_CHECKING(whether to use /usr/local for headers and libraries)
565 if test "x$ac_cv_enable_usr_local" = "xyes" ; then
566         if test -d "/usr/local"; then
567                 AC_MSG_RESULT(yes)
568                 #
569                 # Arrange that we search for header files in the source directory
570                 # and in its "wiretap" subdirectory, as well as in "/usr/local/include",
571                 # as various packages we use ("libpcap", "zlib", "adns", "pcre")
572                 # may have been installed under "/usr/local/include".
573                 #
574                 CFLAGS="$CFLAGS -I/usr/local/include"
575                 CPPFLAGS="$CPPFLAGS -I/usr/local/include"
576
577                 #
578                 # Arrange that we search for libraries in "/usr/local/lib".
579                 #
580                 AC_WIRESHARK_ADD_DASH_L(LDFLAGS, /usr/local/lib)
581         else
582                 AC_MSG_RESULT(no)
583         fi
584 else
585         AC_MSG_RESULT(no)
586 fi
587
588 #
589 # If we're running Solaris, and LD_LIBRARY_PATH is defined, add it as a
590 # link directory.
591 #
592 case "$host_os" in
593   solaris*)
594     AC_MSG_CHECKING(for LD_LIBRARY_PATH, since you appear to be running Solaris)
595     if test x$LD_LIBRARY_PATH != x ; then
596       LIBS="$LIBS -R$LD_LIBRARY_PATH"
597       AC_MSG_RESULT(yes -- added LD_LIBRARY_PATH to run-time linker path)
598     else
599       AC_MSG_RESULT(no -- this may be a problem in a few seconds)
600     fi
601   ;;
602 esac
603
604 #
605 # Check for versions of "sed" inadequate to handle, in libtool, a list
606 # of object files as large as the list in Wireshark.
607 #
608 # On Solaris, we check for "/bin/sed", "/usr/bin/sed", and "/usr/ucb/sed",
609 # as both "/usr/bin/sed" (which is also "/bin/sed", as "/bin" is just a
610 # symlink to "/usr/bin", but people may have "/bin" before "/usr/bin" in
611 # their search path) and "/usr/ucb/sed" are inadequate; "/usr/xpg4/bin/sed"
612 # is the only "sed" that comes with Solaris that can handle Wireshark.
613 #
614 # Add any checks here that are necessary for other OSes.
615 #
616 AC_WIRESHARK_GNU_SED_CHECK
617 if test "$HAVE_GNU_SED" = no ; then
618         case "$host_os" in
619         solaris*)
620                 AC_MSG_CHECKING(whether one of /usr/bin/sed or /bin/sed or /usr/ucb/sed will be used)
621                 case `which sed` in
622                         /bin/sed|/usr/bin/sed|/usr/ucb/sed)
623                         AC_MSG_RESULT(yes)
624                         AC_MSG_ERROR([change your path to search /usr/xpg4/bin or directory containing GNU sed before /usr/bin (and /bin and /usr/ucb)])
625                         ;;
626
627                         *)
628                         AC_MSG_RESULT(no)
629                         ;;
630                 esac
631                 ;;
632
633         *)
634                 :
635                 ;;
636         esac
637 fi
638
639 # Enable/disable tshark
640
641 AC_ARG_ENABLE(wireshark,
642   AC_HELP_STRING( [--enable-wireshark],
643                   [build GTK+-based wireshark.  @<:@default=yes, if GTK+ available@:>@]),
644     enable_wireshark=$enableval,enable_wireshark=yes)
645
646 AC_ARG_ENABLE(threads,
647   AC_HELP_STRING( [--enable-threads],
648                   [use threads in wireshark.  @<:@default=no@:>@]),
649     enable_threads=$enableval,enable_threads=no)
650 AM_CONDITIONAL(USE_THREADS, test x$enable_threads = xyes)
651
652 AC_ARG_ENABLE(profile-build,
653   AC_HELP_STRING( [--enable-profile-build],
654                   [build profile-ready binaries.  @<:@default=no@:>@]),
655     enable_profile_build=$enableval,enable_profile_build=no)
656 AM_CONDITIONAL(USE_PROFILE_BUILD, test x$enable_profile_build = xyes)
657 AC_MSG_CHECKING(if profile builds must be generated)
658 if test "x$enable_profile_build" = "xyes" ; then
659         if test "x$GCC" = "xyes" ; then
660                 AC_MSG_RESULT(yes)
661                 CFLAGS=" -pg $CFLAGS"
662         else
663                 AC_MSG_RESULT(no)
664                 echo "Building profile binaries currently only supported for GCC."
665         fi
666 else
667         AC_MSG_RESULT(no)
668 fi
669
670 # Create DATAFILE_DIR #define for config.h
671 datafiledir=$datadir/wireshark
672 datafiledir=`(
673     test "x$prefix" = xNONE && prefix=$ac_default_prefix
674     test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
675     # Ugly hack, but I don't see how this problem can be solved
676     # properly that DATAFILE_DIR had a value starting with
677     # "${prefix}/" instead of e.g. "/usr/local/"
678     eval eval echo "$datafiledir"
679 )`
680 AC_DEFINE_UNQUOTED(DATAFILE_DIR,"$datafiledir", [Directory for data])
681
682 # Create DOC_DIR #define for config.h
683 docdir=`(
684     test "x$prefix" = xNONE && prefix=$ac_default_prefix
685     test "x$exec_prefix" = xNONE && exec_prefix=${prefix}
686     # Ugly hack, but I don't see how this problem can be solved
687     # properly that DOC_DIR had a value starting with
688     # "${prefix}/" instead of e.g. "/usr/local/"
689     eval eval echo "$docdir"
690 )`
691 AC_DEFINE_UNQUOTED(DOC_DIR, "$docdir", [Directory for docs])
692
693 # GTK checks; we require GTK+ 2.4 or later.
694 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
695 # programs to be built with GTK+.
696 #
697 if test "x$enable_wireshark" = "xyes"; then
698 if test "x$with_gtk3" = "xyes"; then
699         AM_PATH_GTK_3_0(3.0.0,
700         [
701                 CFLAGS="$CFLAGS $GTK_CFLAGS"
702                 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
703                 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
704         ], GTK_OK=no, gthread)
705
706 else
707         AM_PATH_GTK_2_0(2.4.0,
708         [
709                 CFLAGS="$CFLAGS $GTK_CFLAGS"
710                 CXXFLAGS="$CXXFLAGS $GTK_CFLAGS"
711                 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
712         ], GTK_OK=no, gthread)
713 fi
714 else
715         GTK_OK=no
716 fi
717
718 # GLib checks; we require GLib 2.4 or later, and require gmodule
719 # support, as we need that for dynamically loading plugins.
720 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
721 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
722 # superset of GLIB_CFLAGS.  If we didn't find GTK+, it does add
723 # GLIB_CFLAGS to CFLAGS.
724 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
725 # set when generating the Makefile, so we can make programs that require
726 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
727 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
728 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
729 # programs to be built with GLib.
730 #
731 if test "$GTK_OK" = "no" ; then
732         #
733         # We don't have GTK+.
734         # If they didn't explicitly say "--disable-wireshark", fail (so
735         # that, unless they explicitly indicated that they don't want
736         # Wireshark, we stop so they know they won't be getting
737         # Wireshark unless they fix the GTK+ problem).
738         #
739         if test "x$enable_wireshark" = "xyes"; then
740                 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
741         fi
742         wireshark_bin=""
743         wireshark_man=""
744         # Use GLIB_CFLAGS
745         AM_PATH_GLIB_2_0(2.4.0,
746         [
747                 CFLAGS="$CFLAGS $GLIB_CFLAGS"
748                 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
749         ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
750 else
751         #
752         # We have GTK+, and thus will be building Wireshark unless the
753         # user explicitly disabled it.
754         #
755         wireshark_bin="wireshark\$(EXEEXT)"
756         wireshark_man="wireshark.1"
757         wireshark_SUBDIRS="codecs gtk"
758         # Don't use GLIB_CFLAGS
759         AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
760 fi
761
762 #
763 # Check whether GLib includes GRegex support.
764 # We just assume that everybody builds GLib 2.14.0 and later
765 # with GRegex support; it's possible to compile GLib without
766 # GRegex but it doesn't look as if anyone does.
767 #
768 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
769 if test x$PKG_CONFIG != xno ; then
770     ## don't try to run the test against uninstalled libtool libs
771     if $PKG_CONFIG --uninstalled $pkg_config_args; then
772         echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
773         enable_glibtest=no
774     fi
775
776     if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
777         have_gregex=yes
778     else
779         have_gregex=no
780     fi
781     AC_MSG_RESULT($have_gregex)
782 fi
783
784 #
785 # Check whether GLib modules are supported, to determine whether we
786 # can support plugins.
787 #
788 AC_MSG_CHECKING(whether GLib supports loadable modules)
789 ac_save_CFLAGS="$CFLAGS"
790 ac_save_LIBS="$LIBS"
791 CFLAGS="$CFLAGS $GLIB_CFLAGS"
792 LIBS="$GLIB_LIBS $LIBS"
793 AC_TRY_RUN([
794 #include <glib.h>
795 #include <gmodule.h>
796 #include <stdio.h>
797 #include <stdlib.h>
798
799 int
800 main ()
801 {
802   if (g_module_supported())
803     return 0;   /* success */
804   else
805     return 1;   /* failure */
806 }
807 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
808    [echo $ac_n "cross compiling; assumed OK... $ac_c"
809     ac_cv_glib_supports_modules=yes])
810 CFLAGS="$ac_save_CFLAGS"
811 LIBS="$ac_save_LIBS"
812 if test "$ac_cv_glib_supports_modules" = yes ; then
813   AC_MSG_RESULT(yes)
814   have_plugins=yes
815 else
816   AC_MSG_RESULT(no)
817   have_plugins=no
818 fi
819
820 #
821 # If we have <dlfcn.h>, check whether we can use dladdr to find a
822 # filename (hopefully, a full pathname, but no guarantees) for
823 # the executable.
824 #
825 if test "$ac_cv_header_dlfcn_h" = "yes"
826 then
827         AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
828         ac_save_CFLAGS="$CFLAGS"
829         ac_save_LIBS="$LIBS"
830         CFLAGS="$CFLAGS $GLIB_CFLAGS"
831         LIBS="$GLIB_LIBS $LIBS"
832         AC_TRY_RUN([
833 #define _GNU_SOURCE     /* required on Linux, sigh */
834 #include <dlfcn.h>
835
836 int
837 main(void)
838 {
839         Dl_info info;
840
841         if (!dladdr((void *)main, &info))
842                 return 1;       /* failure */
843         return 0;               /* assume success */
844 }
845 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
846    [echo $ac_n "cross compiling; assumed OK... $ac_c"
847     ac_cv_dladdr_finds_executable_path=yes])
848         CFLAGS="$ac_save_CFLAGS"
849         LIBS="$ac_save_LIBS"
850         if test x$ac_cv_dladdr_finds_executable_path = xyes
851         then
852                 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
853         fi
854         AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
855 fi
856
857 if test "x$no_gtk" != "xyes"
858 then
859     #
860     # We have GTK+; do we want the OS X integration functions and,
861     # if so, do we have them and, if so, which versions do we have,
862     # the old Carbon-based ones or the new Cocoa-based ones?
863     #
864     AC_MSG_CHECKING(whether to use OS X integration functions)
865
866     AC_ARG_WITH(osx-integration,
867       AC_HELP_STRING( [--with-osx-integration],
868                       [use OS X integration functions (@<:@default=yes, if available@:>@]),
869     [
870         if test $withval = no
871         then
872             want_osx_integration=no
873         else
874             want_osx_integration=yes
875         fi
876     ],[
877         want_osx_integration=yes
878     ])
879     if test "x$want_osx_integration" = "xno"; then
880         AC_MSG_RESULT(no)
881     else
882         AC_MSG_RESULT(yes)
883         AC_WIRESHARK_OSX_INTEGRATION_CHECK
884     fi
885 fi
886
887 AC_SUBST(wireshark_bin)
888 AC_SUBST(wireshark_man)
889
890
891 # Enable/disable tshark
892
893 AC_ARG_ENABLE(tshark,
894   AC_HELP_STRING( [--enable-tshark],
895                   [build tshark.  @<:@default=yes@:>@]),
896     tshark=$enableval,enable_tshark=yes)
897
898 if test "x$enable_tshark" = "xyes" ; then
899         tshark_bin="tshark\$(EXEEXT)"
900         tshark_man="tshark.1"
901         wiresharkfilter_man="wireshark-filter.4"
902 else
903         tshark_bin=""
904         tshark_man=""
905 fi
906 AC_SUBST(tshark_bin)
907 AC_SUBST(tshark_man)
908 AC_SUBST(wiresharkfilter_man)
909
910
911
912 # Enable/disable editcap
913
914 AC_ARG_ENABLE(editcap,
915   AC_HELP_STRING( [--enable-editcap],
916                   [build editcap.  @<:@default=yes@:>@]),
917     enable_editcap=$enableval,enable_editcap=yes)
918
919 if test "x$enable_editcap" = "xyes" ; then
920         editcap_bin="editcap\$(EXEEXT)"
921         editcap_man="editcap.1"
922 else
923         editcap_bin=""
924         editcap_man=""
925 fi
926 AC_SUBST(editcap_bin)
927 AC_SUBST(editcap_man)
928
929 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
930 # or not)
931
932 # Enable/disable capinfos
933
934 AC_ARG_ENABLE(capinfos,
935   AC_HELP_STRING( [--enable-capinfos],
936                   [build capinfos.  @<:@default=yes@:>@]),
937     enable_capinfos=$enableval,enable_capinfos=yes)
938
939 if test "x$enable_capinfos" = "xyes" ; then
940         capinfos_bin="capinfos\$(EXEEXT)"
941         capinfos_man="capinfos.1"
942 else
943         capinfos_bin=""
944         capinfos_man=""
945 fi
946 AC_SUBST(capinfos_bin)
947 AC_SUBST(capinfos_man)
948
949
950 # Enable/disable mergecap
951
952 AC_ARG_ENABLE(mergecap,
953   AC_HELP_STRING( [--enable-mergecap],
954                   [build mergecap.  @<:@default=yes@:>@]),
955     enable_mergecap=$enableval,enable_mergecap=yes)
956
957 if test "x$enable_mergecap" = "xyes" ; then
958         mergecap_bin="mergecap\$(EXEEXT)"
959         mergecap_man="mergecap.1"
960 else
961         mergecap_bin=""
962         mergecap_man=""
963 fi
964 AC_SUBST(mergecap_bin)
965 AC_SUBST(mergecap_man)
966
967
968 # Enable/disable text2pcap
969
970 AC_ARG_ENABLE(text2pcap,
971   AC_HELP_STRING( [--enable-text2pcap],
972                   [build text2pcap.  @<:@default=yes@:>@]),
973     text2pcap=$enableval,enable_text2pcap=yes)
974
975 if test "x$enable_text2pcap" = "xyes" ; then
976         text2pcap_bin="text2pcap\$(EXEEXT)"
977         text2pcap_man="text2pcap.1"
978 else
979         text2pcap_bin=""
980         text2pcap_man=""
981 fi
982 AC_SUBST(text2pcap_bin)
983 AC_SUBST(text2pcap_man)
984
985 # Enable/disable idl2wrs
986
987 AC_ARG_ENABLE(idl2wrs,
988   AC_HELP_STRING( [--enable-idl2wrs],
989                   [build idl2wrs.  @<:@default=yes@:>@]),
990     enable_idl2wrs=$enableval,enable_idl2wrs=yes)
991
992 if test "x$enable_idl2wrs" = "xyes" ; then
993         idl2wrs_bin="idl2wrs"
994         idl2wrs_man="idl2wrs.1"
995 else
996         idl2wrs_bin=""
997         idl2wrs_man=""
998 fi
999 AC_SUBST(idl2wrs_bin)
1000 AC_SUBST(idl2wrs_man)
1001
1002
1003 # Enable/disable dftest
1004
1005 AC_ARG_ENABLE(dftest,
1006   AC_HELP_STRING( [--enable-dftest],
1007                   [build dftest.  @<:@default=yes@:>@]),
1008     enable_dftest=$enableval,enable_dftest=yes)
1009
1010 if test "x$enable_dftest" = "xyes" ; then
1011         dftest_bin="dftest\$(EXEEXT)"
1012         dftest_man="dftest.1"
1013 else
1014         dftest_bin=""
1015         dftest_man=""
1016 fi
1017 AC_SUBST(dftest_bin)
1018 AC_SUBST(dftest_man)
1019
1020
1021 # Enable/disable randpkt
1022
1023 AC_ARG_ENABLE(randpkt,
1024   AC_HELP_STRING( [--enable-randpkt],
1025                   [build randpkt.  @<:@default=yes@:>@]),
1026     enable_randpkt=$enableval,enable_randpkt=yes)
1027
1028 if test "x$enable_randpkt" = "xyes" ; then
1029         randpkt_bin="randpkt\$(EXEEXT)"
1030         randpkt_man="randpkt.1"
1031 else
1032         randpkt_bin=""
1033         randpkt_man=""
1034 fi
1035 AC_SUBST(randpkt_bin)
1036 AC_SUBST(randpkt_man)
1037
1038
1039
1040 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1041 dnl "gethostbyname()".
1042 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1043
1044 dnl Checks for "connect()", used as a proxy for "socket()" - and
1045 dnl "-lsocket", if we need it to get "connect()".
1046 AC_WIRESHARK_SOCKET_LIB_CHECK
1047
1048 dnl pcap check
1049 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1050
1051 AC_ARG_WITH(pcap,
1052   AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1053                   [use libpcap for packet capturing.  @<:@default=yes@:>@]),
1054 [
1055         if test $withval = no
1056         then
1057                 want_pcap=no
1058         elif test $withval = yes
1059         then
1060                 want_pcap=yes
1061         else
1062                 want_pcap=yes
1063                 pcap_dir=$withval
1064         fi
1065 ],[
1066         want_pcap=yes
1067         pcap_dir=
1068 ])
1069 if test "x$want_pcap" = "xno" ; then
1070         AC_MSG_RESULT(no)
1071 else
1072         AC_MSG_RESULT(yes)
1073         AC_WIRESHARK_PCAP_CHECK
1074 fi
1075
1076 # Enable/disable dumpcap
1077
1078 dnl dumpcap check
1079 AC_MSG_CHECKING(whether to build dumpcap)
1080
1081 AC_ARG_ENABLE(dumpcap,
1082   AC_HELP_STRING( [--enable-dumpcap],
1083                   [build dumpcap.  @<:@default=yes@:>@]),
1084     enable_dumpcap=$enableval,enable_dumpcap=yes)
1085
1086 if test "x$enable_dumpcap" = "xyes" ; then
1087         if test "x$want_pcap" = "xno" ; then
1088                 enable_dumpcap=no
1089                 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1090         else
1091                 AC_MSG_RESULT(yes)
1092         fi
1093 else
1094         AC_MSG_RESULT(no)
1095 fi
1096
1097 if test "x$enable_dumpcap" = "xyes" ; then
1098         dumpcap_bin="dumpcap\$(EXEEXT)"
1099         dumpcap_man="dumpcap.1"
1100 else
1101         dumpcap_bin=""
1102         dumpcap_man=""
1103 fi
1104 AC_SUBST(dumpcap_bin)
1105 AC_SUBST(dumpcap_man)
1106
1107 # Enable/disable rawshark
1108
1109 dnl rawshark check
1110 AC_MSG_CHECKING(whether to build rawshark)
1111
1112 AC_ARG_ENABLE(rawshark,
1113   AC_HELP_STRING( [--enable-rawshark],
1114                   [build rawshark.  @<:@default=yes@:>@]),
1115     rawshark=$enableval,enable_rawshark=yes)
1116
1117 if test "x$enable_rawshark" = "xyes" ; then
1118         if test "x$want_pcap" = "xno" ; then
1119                 enable_rawshark=no
1120                 AC_MSG_RESULT(pcap not available - disabling rawshark)
1121         else
1122                 AC_MSG_RESULT(yes)
1123         fi
1124 else
1125         AC_MSG_RESULT(no)
1126 fi
1127
1128 if test "x$enable_rawshark" = "xyes" ; then
1129         rawshark_bin="rawshark\$(EXEEXT)"
1130         rawshark_man="rawshark.1"
1131 else
1132         rawshark_bin=""
1133         rawshark_man=""
1134 fi
1135 AC_SUBST(rawshark_bin)
1136 AC_SUBST(rawshark_man)
1137
1138
1139 dnl pcap remote check
1140 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1141
1142 AC_ARG_WITH(pcap-remote,
1143     AC_HELP_STRING([--with-pcap-remote],
1144                    [use libpcap remote capturing (requires libpcap)]),
1145 [
1146     if test $withval = no
1147     then
1148         want_pcap_remote=no
1149     else
1150         want_pcap_remote=yes
1151     fi
1152 ],[
1153     want_pcap_remote=no
1154 ])
1155 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1156     AC_MSG_RESULT(no)
1157 else
1158     AC_MSG_RESULT(yes)
1159     AC_WIRESHARK_PCAP_REMOTE_CHECK
1160 fi
1161
1162 dnl zlib check
1163 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1164
1165 AC_ARG_WITH(zlib,
1166   AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1167                  [use zlib (located in directory DIR, if supplied) to read compressed data.  @<:@default=yes, if available@:>@]),
1168 [
1169         if test $withval = no
1170         then
1171                 want_zlib=no
1172         elif test $withval = yes
1173         then
1174                 want_zlib=yes
1175         else
1176                 want_zlib=yes
1177                 zlib_dir=$withval
1178         fi
1179 ],[
1180         #
1181         # Use zlib if it's present, otherwise don't.
1182         #
1183         want_zlib=ifavailable
1184         zlib_dir=
1185 ])
1186 if test "x$want_zlib" = "xno" ; then
1187         AC_MSG_RESULT(no)
1188 else
1189         AC_MSG_RESULT(yes)
1190         AC_WIRESHARK_ZLIB_CHECK
1191         if test "x$want_zlib" = "xno" ; then
1192                 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1193         fi
1194 fi
1195
1196 if test "x$want_zlib" != "xno" ; then
1197         AC_CHECK_LIB(z, gzclearerr,
1198         [
1199                 AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
1200         ])
1201 fi
1202
1203 dnl pcre check
1204 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1205
1206 AC_ARG_WITH(pcre,
1207   AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1208                   [use libpcre (located in directory DIR, if supplied) to use in dfilter regular expressions. Not needed if you have GLib 2.14 or later. @<:@default=yes, if available and GLib < 2.14@:>@]),
1209 [
1210         if test $withval = no
1211         then
1212                 want_pcre=no
1213         elif test $withval = yes
1214         then
1215                 want_pcre=yes
1216         else
1217                 want_pcre=yes
1218                 pcre_dir=$withval
1219         fi
1220 ],[
1221         #
1222         # Use libpcre if it's present and GRegex isn't, otherwise don't.
1223         #
1224         if test $have_gregex = yes ; then
1225                 want_pcre=no
1226         else
1227                 want_pcre=ifavailable
1228         fi
1229         pcre_dir=
1230 ])
1231 if test "x$want_pcre" = "xno" ; then
1232         AC_MSG_RESULT(no)
1233 else
1234         AC_MSG_RESULT(yes)
1235         AC_WIRESHARK_LIBPCRE_CHECK
1236         if test "x$want_pcre" = "xno" ; then
1237                 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1238         fi
1239 fi
1240
1241
1242 dnl lua check
1243 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1244
1245 AC_ARG_WITH(lua,
1246   AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1247                   [use liblua (located in directory DIR, if supplied) for the lua scripting plugin.  @<:@default=yes, if available@:>@]),
1248 [
1249         if test $withval = no
1250         then
1251                 want_lua=no
1252         elif test $withval = yes
1253         then
1254                 want_lua=yes
1255         else
1256                 want_lua=yes
1257                 lua_dir=$withval
1258         fi
1259 ],[
1260         #
1261         # Use liblua by default
1262         #
1263         want_lua=ifavailable
1264         lua_dir=
1265 ])
1266 if test "x$want_lua" = "xno" ; then
1267         AC_MSG_RESULT(no)
1268 else
1269         AC_MSG_RESULT(yes)
1270         AC_WIRESHARK_LIBLUA_CHECK
1271         if test "x$want_lua" = "xno" ; then
1272                 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1273         fi
1274 fi
1275 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1276
1277
1278 dnl portaudio check
1279 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1280
1281 AC_ARG_WITH(portaudio,
1282   AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1283                   [use libportaudio (located in directory DIR, if supplied) for the rtp_player.  @<:@default=yes, if available@:>@]),
1284 [
1285         if test $withval = no
1286         then
1287                 want_portaudio=no
1288         elif test $withval = yes
1289         then
1290                 want_portaudio=yes
1291         else
1292                 want_portaudio=yes
1293                 portaudio_dir=$withval
1294         fi
1295 ],[
1296         #
1297         # Use libportaudio by default
1298         #
1299         want_portaudio=ifavailable
1300         portaudio_dir=
1301 ])
1302 if test "x$want_portaudio" = "xno" ; then
1303         AC_MSG_RESULT(no)
1304 else
1305         AC_MSG_RESULT(yes)
1306         AC_WIRESHARK_LIBPORTAUDIO_CHECK
1307         if test "x$want_portaudio" = "xno" ; then
1308                 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1309         fi
1310 fi
1311 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1312
1313
1314 dnl ipv6 check
1315 AC_ARG_ENABLE(ipv6,
1316   AC_HELP_STRING( [--enable-ipv6],
1317                   [use ipv6 name resolution, if available.  @<:@default=yes@:>@]),
1318     enable_ipv6=$enableval,enable_ipv6=yes)
1319
1320 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1321 if test "x$enable_ipv6" = "xno" ; then
1322         AC_MSG_RESULT(no)
1323 else
1324         AC_MSG_RESULT(yes)
1325         AC_WIRESHARK_IPV6_STACK
1326 fi
1327
1328
1329 dnl Check if dumpcap should be installed with filesystem capabilities
1330 AC_PATH_PROG(SETCAP, setcap)
1331 AC_ARG_ENABLE(setcap-install,
1332   AC_HELP_STRING( [--enable-setcap-install],
1333                   [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1334     enable_setcap_install=$enableval,enable_setcap_install=no)
1335
1336 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1337 if test "x$enable_setcap_install" = "xno" ; then
1338         AC_MSG_RESULT(no)
1339 else
1340         if test "x$SETCAP" = "x" ; then
1341                 AC_MSG_RESULT(no. Setcap not found)
1342         elif test "x$enable_dumpcap" = "xno" ; then
1343                 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1344         else
1345                 AC_MSG_RESULT(yes)
1346         fi
1347 fi
1348
1349 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1350
1351 dnl Check if dumpcap should be installed setuid
1352 AC_ARG_ENABLE(setuid-install,
1353   AC_HELP_STRING( [--enable-setuid-install],
1354                   [install dumpcap as setuid @<:@default=no@:>@]),
1355     enable_setuid_install=$enableval,enable_setuid_install=no)
1356
1357 AC_MSG_CHECKING(whether to install dumpcap setuid)
1358 if test "x$enable_setuid_install" = "xno" ; then
1359         AC_MSG_RESULT(no)
1360 else
1361         if test "x$enable_setcap_install" = "xyes" ; then
1362                 enable_setuid_install=no
1363                 AC_MSG_RESULT(no; using setcap instead)
1364         elif test "x$enable_dumpcap" = "xno" ; then
1365                 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1366         else
1367                 AC_MSG_RESULT(yes)
1368         fi
1369 fi
1370
1371 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1372 AC_CHECK_FUNCS(setresuid setresgid)
1373
1374 dnl ...but our Network Operations group is named "no"!
1375 DUMPCAP_GROUP=''
1376 AC_ARG_WITH(dumpcap-group,
1377   AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1378                   [restrict dumpcap to GROUP]),
1379 [
1380   if test "x$withval" = "xyes"; then
1381       AC_MSG_ERROR([No dumpcap group specified.])
1382   elif test "x$withval" != "xno"; then
1383       AC_MSG_RESULT($withval)
1384       DUMPCAP_GROUP="$withval"
1385   fi
1386 ])
1387 AC_SUBST(DUMPCAP_GROUP)
1388 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1389
1390 dnl libcap (not libpcap) check
1391 LIBCAP_LIBS=''
1392 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1393
1394 AC_ARG_WITH(libcap,
1395   AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1396                   [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management.   @<:@default=yes, if present@:>@]),
1397 [
1398 if   test "x$withval" = "xno";  then
1399         want_libcap=no
1400 elif test "x$withval" = "xyes"; then
1401         want_libcap=yes
1402 elif test -d "$withval"; then
1403         want_libcap=yes
1404         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1405 fi
1406 ])
1407 if test "x$with_libcap" = "xno" ; then
1408         AC_MSG_RESULT(no)
1409 else
1410         AC_MSG_RESULT(yes)
1411         AC_WIRESHARK_LIBCAP_CHECK
1412 fi
1413 AC_SUBST(LIBCAP_LIBS)
1414
1415 dnl Checks for header files.
1416 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1417 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)
1418 AC_CHECK_HEADERS(netinet/in.h)
1419 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1420
1421 dnl SSL Check
1422 SSL_LIBS=''
1423 AC_MSG_CHECKING(whether to use SSL library)
1424
1425 AC_ARG_WITH(ssl,
1426   AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1427                   [use SSL crypto library (located in directory DIR, if supplied).   @<:@default=no@:>@]),
1428 [
1429 if test "x$withval" = "xno";  then
1430         want_ssl=no
1431 elif test "x$withval" = "xyes"; then
1432         want_ssl=yes
1433 elif test -d "$withval"; then
1434         want_ssl=yes
1435         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1436 fi
1437 ],[
1438         want_ssl=no
1439 ])
1440 if test "x$want_ssl" = "xyes"; then
1441         AC_MSG_RESULT(yes)
1442         AC_CHECK_LIB(crypto,EVP_md5,
1443             [
1444                 SSL_LIBS=-lcrypto
1445             ],
1446             [
1447                 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1448             ])
1449 else
1450         AC_MSG_RESULT(no)
1451 fi
1452 AC_SUBST(SSL_LIBS)
1453
1454 dnl kerberos check
1455 AC_MSG_CHECKING(whether to use kerberos)
1456
1457 AC_ARG_WITH(krb5,
1458   AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1459                   [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection  @<:@default=yes@:>@]),
1460 [
1461         if test $withval = no
1462         then
1463                 want_krb5=no
1464         elif test $withval = yes
1465         then
1466                 want_krb5=yes
1467         else
1468                 want_krb5=yes
1469                 krb5_dir=$withval
1470         fi
1471 ],[
1472         #
1473         # Use kerberos if specified, otherwise don't.
1474         #
1475         want_krb5=ifavailable
1476         krb5_dir=
1477 ])
1478 if test "x$want_krb5" = "xno" ; then
1479         AC_MSG_RESULT(no)
1480 else
1481         AC_MSG_RESULT(yes)
1482         AC_WIRESHARK_KRB5_CHECK
1483 fi
1484
1485
1486 dnl c-ares Check
1487 C_ARES_LIBS=''
1488 AC_MSG_CHECKING(whether to use the c-ares library if available)
1489
1490 AC_ARG_WITH(c-ares,
1491   AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1492                   [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns.   @<:@default=yes, if present@:>@]),
1493 [
1494 if   test "x$withval" = "xno";  then
1495         want_c_ares=no
1496 elif test "x$withval" = "xyes"; then
1497         want_c_ares=yes
1498 elif test -d "$withval"; then
1499         want_c_ares=yes
1500         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1501 fi
1502 ])
1503 if test "x$want_c_ares" = "xno" ; then
1504         AC_MSG_RESULT(no)
1505 else
1506         AC_MSG_RESULT(yes)
1507         AC_WIRESHARK_C_ARES_CHECK
1508 fi
1509 AC_SUBST(C_ARES_LIBS)
1510
1511 dnl ADNS Check
1512 ADNS_LIBS=''
1513 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1514
1515 AC_ARG_WITH(adns,
1516   AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1517                   [use GNU ADNS (located in directory DIR, if supplied).   @<:@default=yes, if present@:>@]),
1518 [
1519 if   test "x$withval" = "xno";  then
1520         want_adns=no
1521 elif test "x$withval" = "xyes"; then
1522         want_adns=yes
1523 elif test -d "$withval"; then
1524         want_adns=yes
1525         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1526 fi
1527 ])
1528 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1529         AC_MSG_RESULT(no)
1530 else
1531         AC_MSG_RESULT(yes)
1532         AC_WIRESHARK_ADNS_CHECK
1533 fi
1534 AC_SUBST(ADNS_LIBS)
1535
1536 dnl GEOIP Check
1537 GEOIP_LIBS=''
1538 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1539
1540 AC_ARG_WITH(geoip,
1541   AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1542                   [use GeoIP (located in directory DIR, if supplied).   @<:@default=yes, if present@:>@]),
1543 [
1544 if   test "x$withval" = "xno";  then
1545         want_geoip=no
1546 elif test "x$withval" = "xyes"; then
1547         want_geoip=yes
1548 elif test -d "$withval"; then
1549         want_geoip=yes
1550         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1551 fi
1552 ])
1553 if test "x$want_geoip" = "xno"; then
1554         AC_MSG_RESULT(no)
1555 else
1556         AC_MSG_RESULT(yes)
1557         AC_WIRESHARK_GEOIP_CHECK
1558 fi
1559 AC_SUBST(GEOIP_LIBS)
1560
1561 dnl Python devel Check
1562 AC_ARG_WITH(python,
1563     AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1564                     [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1565 [
1566 pythondir='${libdir}/wireshark/python/${VERSION}'
1567 if test "x$withval" = "xno"; then
1568   want_python=no
1569 elif test "x$withval" != "xyes"; then
1570   pythondir="$withval"
1571   want_python=yes
1572   AC_WIRESHARK_PYTHON_CHECK
1573 else
1574   want_python=yes
1575   AC_WIRESHARK_PYTHON_CHECK
1576 fi
1577 ])
1578 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1579 AC_SUBST(pythondir)
1580
1581 #
1582 # Define WS_VAR_IMPORT appropriately for declarations of external
1583 # variables exported from dynamically-linked libraries.
1584 #
1585 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1586
1587 #
1588 # Define WS_MSVC_NORETURN appropriately for declarations of routines that
1589 # never return (just like Charlie on the MTA).
1590 #
1591 # Note that MSVC++ expects __declspec(noreturn) to precede the function
1592 # name and GCC, as far as I know, expects __attribute__((noreturn)) to
1593 # follow the function name, so we need two different flavors of
1594 # noreturn tag.
1595 #
1596 AC_DEFINE(WS_MSVC_NORETURN,, [Define as the string to precede declarations of routines that never return])
1597
1598 AC_ARG_ENABLE(airpcap,
1599   AC_HELP_STRING( [--enable-airpcap],
1600                   [use airpcap in wireshark.  @<:@default=yes@:>@]),
1601   enable_airpcap=$enableval
1602   if test x$enable_airpcap != xno; then
1603         AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1604   fi
1605 )
1606 #
1607 # Define HAVE_AIRPDCAP
1608 # We'll want to remove this eventually.
1609 #
1610 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1611
1612 dnl Checks for typedefs, structures, and compiler characteristics.
1613 # AC_C_CONST
1614
1615 # Check how we can get the time zone abbreviation
1616 AC_WIRESHARK_TIMEZONE_ABBREV
1617
1618 # We need to know whether "struct sockaddr" has an "sa_len" member
1619 # for get_interface_list().
1620
1621 AC_WIRESHARK_STRUCT_SA_LEN
1622
1623 # We must know our byte order
1624 AC_C_BIGENDIAN
1625
1626 # Checks whether "-traditional" is needed when using "ioctl".
1627 # XXX - do we need this?
1628 AC_PROG_GCC_TRADITIONAL
1629
1630 GETOPT_LO=""
1631 AC_CHECK_FUNC(getopt,
1632   [GETOPT_LO=""
1633    AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1634   ],
1635   GETOPT_LO="wsgetopt.lo"
1636 )
1637 if test "$ac_cv_func_getopt" = no ; then
1638   GETOPT_LO="wsgetopt.lo"
1639 fi
1640 AM_CONDITIONAL(NEED_GETOPT_LO, test "x$ac_cv_func_getopt" = "xno")
1641 AC_SUBST(GETOPT_LO)
1642
1643 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1644   [STRERROR_LO="strerror.lo"
1645    AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1646 ])
1647 if test "$ac_cv_func_strerror" = no ; then
1648   STRERROR_LO="strerror.lo"
1649 fi
1650 AM_CONDITIONAL(NEED_STRERROR_LO, test "x$ac_cv_func_strerror" = "xno")
1651 AC_SUBST(STRERROR_LO)
1652
1653 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1654   STRNCASECMP_LO="strncasecmp.lo")
1655 if test "$ac_cv_func_strncasecmp" = no ; then
1656   STRNCASECMP_LO="strncasecmp.lo"
1657 fi
1658 AM_CONDITIONAL(NEED_STRNCASECMP_LO, test "x$ac_cv_func_strncasecmp" = "xno")
1659 AC_SUBST(STRNCASECMP_LO)
1660
1661 AC_CHECK_FUNCS(mkstemp mkdtemp)
1662
1663 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1664     have_inet_aton=no)
1665 if test "$have_inet_aton" = no; then
1666   INET_ATON_LO="inet_aton.lo"
1667   AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1668 else
1669   INET_ATON_LO=""
1670 fi
1671 AM_CONDITIONAL(NEED_INET_ATON_LO, test "x$have_inet_aton" = "xno")
1672 AC_SUBST(INET_ATON_LO)
1673
1674 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1675   dnl check for pre-BIND82 inet_pton() bug.
1676   AC_MSG_CHECKING(for broken inet_pton)
1677   AC_TRY_RUN([#include <sys/types.h>
1678 #include <sys/socket.h>
1679 #include <netinet/in.h>
1680 #include <arpa/inet.h>
1681 int main()
1682 {
1683 #ifdef AF_INET6
1684   char buf[16];
1685   /* this should return 0 (error) */
1686   return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1687 #else
1688   return 1;
1689 #endif
1690 }], [AC_MSG_RESULT(ok);
1691 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1692 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1693 have_inet_pton=no])],
1694 have_inet_pton=no)
1695 if test "$have_inet_pton" = no; then
1696   INET_PTON_LO="inet_pton.lo"
1697 else
1698   INET_PTON_LO=""
1699 fi
1700 AM_CONDITIONAL(NEED_INET_PTON_LO, test "x$have_inet_pton" = "xno")
1701 AC_SUBST(INET_PTON_LO)
1702
1703 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1704   AC_MSG_CHECKING([for inet_ntop prototype])
1705   AC_TRY_COMPILE([#include <stdio.h>
1706 #include <sys/types.h>
1707 #include <sys/socket.h>
1708 #include <netinet/in.h>
1709 #include <arpa/inet.h>
1710
1711 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1712     AC_MSG_RESULT(yes)
1713     AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1714     [Define if inet_ntop() prototype exists])], [
1715     AC_TRY_COMPILE([#include <stdio.h>
1716 #include <sys/types.h>
1717 #include <sys/socket.h>
1718 #include <netinet/in.h>
1719 #include <arpa/inet.h>
1720
1721 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1722       AC_MSG_RESULT(yes)
1723       AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1724       [Define if inet_ntop() prototype exists])], [
1725       AC_MSG_RESULT(no)])])
1726   INET_NTOP_LO=""], [
1727   INET_NTOP_LO="inet_ntop.lo"
1728   AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1729   [Define if inet/v6defs.h needs to be included])])
1730 AM_CONDITIONAL(NEED_INET_NTOP_LO, test "x$INET_NTOP_LO" != "x")
1731 AC_SUBST(INET_NTOP_LO)
1732
1733 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1734   [STRPTIME_LO="strptime.lo"
1735    AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1736 ])
1737 if test "$ac_cv_func_strptime" = no ; then
1738   STRPTIME_LO="strptime.lo"
1739 fi
1740 AC_SUBST(STRPTIME_C)
1741 AM_CONDITIONAL(NEED_STRPTIME_LO, test "x$ac_cv_func_strptime" = "no")
1742 AC_SUBST(STRPTIME_LO)
1743
1744 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1745 AC_CHECK_FUNCS(issetugid)
1746 AC_CHECK_FUNCS(mmap mprotect sysconf)
1747 AC_CHECK_FUNCS(strtoll)
1748
1749 dnl blank for now, but will be used in future
1750 AC_SUBST(wireshark_SUBDIRS)
1751
1752 dnl
1753 dnl check whether plugins should be enabled and, if they should be,
1754 dnl check for plugins directory - stolen from Amanda's configure.in
1755 dnl
1756 dnl we don't wish to expand ${libdir} yet
1757 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1758 AC_ARG_WITH(plugins,
1759   AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1760                   [support plugins (installed in DIR, if supplied).   @<:@default=yes, if possible@:>@]),
1761 [
1762   if test "x$withval" = "xno"; then
1763     have_plugins=no
1764   elif test "x$have_plugins" = "xno"; then
1765       AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1766   elif test "x$withval" != "xyes"; then
1767       plugindir="$withval"
1768   fi
1769 ])
1770 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1771 if test x$have_plugins = xyes
1772 then
1773   AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1774 fi
1775 AC_SUBST(plugindir)
1776 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1777
1778 #
1779 # The plugin dissectors reside in ./plugins/PROTO/
1780 #
1781 PLUGIN_LIBS=""
1782 AC_SUBST(PLUGIN_LIBS)
1783
1784 dnl libtool defs
1785 #
1786 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1787 # (autoconf?  automake?  libtool?) - with the newer version(s), it's
1788 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1789 #
1790 # With older version(s) of those tool(s), however, it's not just an
1791 # alias, and the configure scripts don't work without it.
1792 #
1793 AM_PROG_LIBTOOL
1794 AC_SUBST(LIBTOOL_DEPS)
1795
1796 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1797 if test x$enable_static = xyes -a x$have_plugins = xyes
1798 then
1799   AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1800 fi
1801 AC_SUBST(ENABLE_STATIC)
1802
1803 dnl Save the cacheable configure results to config.cache before recursing
1804 AC_CACHE_SAVE
1805
1806 sinclude(plugins/Custom.m4) dnl
1807 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1808
1809 AM_CONFIG_HEADER(config.h)
1810 AC_OUTPUT(
1811   Makefile
1812   doxygen.cfg
1813   asn1/Makefile
1814   asn1/acp133/Makefile
1815   asn1/acse/Makefile
1816   asn1/ansi_map/Makefile
1817   asn1/ansi_tcap/Makefile
1818   asn1/camel/Makefile
1819   asn1/cdt/Makefile
1820   asn1/charging_ase/Makefile
1821   asn1/cmip/Makefile
1822   asn1/cmp/Makefile
1823   asn1/crmf/Makefile
1824   asn1/cms/Makefile
1825   asn1/dap/Makefile
1826   asn1/disp/Makefile
1827   asn1/dop/Makefile
1828   asn1/dsp/Makefile
1829   asn1/ess/Makefile
1830   asn1/ftam/Makefile
1831   asn1/gnm/Makefile
1832   asn1/goose/Makefile
1833   asn1/gprscdr/Makefile
1834   asn1/gsm_map/Makefile
1835   asn1/h225/Makefile
1836   asn1/h235/Makefile
1837   asn1/h245/Makefile
1838   asn1/h248/Makefile
1839   asn1/h282/Makefile
1840   asn1/h283/Makefile
1841   asn1/h323/Makefile
1842   asn1/h450/Makefile
1843   asn1/h450-ros/Makefile
1844   asn1/h460/Makefile
1845   asn1/h501/Makefile
1846   asn1/HI2Operations/Makefile
1847   asn1/hnbap/Makefile
1848   asn1/idmp/Makefile
1849   asn1/inap/Makefile
1850   asn1/kerberos/Makefile
1851   asn1/ldap/Makefile
1852   asn1/logotypecertextn/Makefile
1853   asn1/lte-rrc/Makefile
1854   asn1/mms/Makefile
1855   asn1/mpeg-audio/Makefile
1856   asn1/mpeg-pes/Makefile
1857   asn1/nbap/Makefile
1858   asn1/ns_cert_exts/Makefile
1859   asn1/ocsp/Makefile
1860   asn1/p1/Makefile
1861   asn1/p22/Makefile
1862   asn1/p7/Makefile
1863   asn1/p772/Makefile
1864   asn1/pcap/Makefile
1865   asn1/pkcs1/Makefile
1866   asn1/pkcs12/Makefile
1867   asn1/pkinit/Makefile
1868   asn1/pkixac/Makefile
1869   asn1/pkix1explicit/Makefile
1870   asn1/pkix1implicit/Makefile
1871   asn1/pkixproxy/Makefile
1872   asn1/pkixqualified/Makefile
1873   asn1/pkixtsp/Makefile
1874   asn1/pres/Makefile
1875   asn1/q932/Makefile
1876   asn1/q932-ros/Makefile
1877   asn1/qsig/Makefile
1878   asn1/ranap/Makefile
1879   asn1/rnsap/Makefile
1880   asn1/ros/Makefile
1881   asn1/rrc/Makefile
1882   asn1/rrlp/Makefile
1883   asn1/rtse/Makefile
1884   asn1/rua/Makefile
1885   asn1/s1ap/Makefile
1886   asn1/sabp/Makefile
1887   asn1/smrse/Makefile
1888   asn1/snmp/Makefile
1889   asn1/spnego/Makefile
1890   asn1/sv/Makefile
1891   asn1/t125/Makefile
1892   asn1/t38/Makefile
1893   asn1/tcap/Makefile
1894   asn1/tetra/Makefile
1895   asn1/ulp/Makefile
1896   asn1/wlancertextn/Makefile
1897   asn1/x2ap/Makefile
1898   asn1/x509af/Makefile
1899   asn1/x509ce/Makefile
1900   asn1/x509if/Makefile
1901   asn1/x509sat/Makefile
1902   asn1/x721/Makefile
1903   doc/Makefile
1904   docbook/Makefile
1905   epan/Makefile
1906   epan/crc/Makefile
1907   epan/crypt/Makefile
1908   epan/doxygen.cfg
1909   epan/dfilter/Makefile
1910   epan/dissectors/Makefile
1911   epan/dissectors/dcerpc/Makefile
1912   epan/dissectors/pidl/Makefile
1913   epan/ftypes/Makefile
1914   epan/wslua/Makefile
1915   epan/wspython/Makefile
1916   codecs/Makefile
1917   gtk/Makefile
1918   gtk/doxygen.cfg
1919   help/Makefile
1920   packaging/Makefile
1921   packaging/macosx/Info.plist
1922   packaging/macosx/Makefile
1923   packaging/nsis/Makefile
1924   packaging/rpm/Makefile
1925   packaging/rpm/SPECS/Makefile
1926   packaging/rpm/SPECS/wireshark.spec
1927   packaging/svr4/Makefile
1928   packaging/svr4/checkinstall
1929   packaging/svr4/pkginfo
1930   plugins/Makefile
1931   plugins/asn1/Makefile
1932   plugins/docsis/Makefile
1933   plugins/ethercat/Makefile
1934   plugins/giop/Makefile
1935   plugins/gryphon/Makefile
1936   plugins/interlink/Makefile
1937   plugins/irda/Makefile
1938   plugins/m2m/Makefile
1939   plugins/mate/Makefile
1940   plugins/opcua/Makefile
1941   plugins/profinet/Makefile
1942   plugins/sercosiii/Makefile
1943   plugins/stats_tree/Makefile
1944   plugins/unistim/Makefile
1945   plugins/wimax/Makefile
1946   plugins/wimaxasncp/Makefile
1947   tools/Makefile
1948   tools/idl2wrs.sh
1949   tools/lemon/Makefile
1950   wiretap/Makefile
1951   wsutil/Makefile
1952   _CUSTOM_AC_OUTPUT_
1953   ,)
1954 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1955
1956
1957 # Pretty messages
1958
1959 if test "x$enable_setcap_install" = "xyes" ; then
1960         setcap_message="yes"
1961 else
1962         setcap_message="no"
1963 fi
1964
1965
1966 if test "x$enable_setuid_install" = "xyes" ; then
1967         setuid_message="yes"
1968 else
1969         setuid_message="no"
1970 fi
1971
1972 if test "x$DUMPCAP_GROUP" = "x" ; then
1973         dumpcap_group_message="(none)"
1974 else
1975         dumpcap_group_message="$DUMPCAP_GROUP"
1976 fi
1977
1978 if test "x$want_zlib" = "xno" ; then
1979         zlib_message="no"
1980 else
1981         zlib_message="yes"
1982 fi
1983
1984 if test "x$want_pcre" = "xno" ; then
1985         if test $have_gregex = yes
1986         then
1987                 pcre_message="no (using GRegex instead)"
1988         else
1989                 pcre_message="no"
1990         fi
1991 else
1992         pcre_message="yes"
1993 fi
1994
1995 if test "x$want_lua" = "xyes" ; then
1996         lua_message="yes"
1997 else
1998         lua_message="no"
1999 fi
2000
2001 if test "x$want_python" = "xyes"; then
2002         python_message="yes"
2003 else
2004         python_message="no"
2005 fi
2006
2007 if test "x$want_portaudio" = "xyes" ; then
2008         portaudio_message="yes"
2009 else
2010         portaudio_message="no"
2011 fi
2012
2013 if test "x$want_ssl" = "xno" ; then
2014         ssl_message="no"
2015 else
2016         ssl_message="yes"
2017 fi
2018
2019 if test "x$want_krb5" = "xno" ; then
2020         krb5_message="no"
2021 else
2022         krb5_message="yes ($ac_krb5_version)"
2023 fi
2024
2025 if test "x$have_good_c_ares" = "xyes" ; then
2026         c_ares_message="yes"
2027 else
2028         c_ares_message="no"
2029 fi
2030
2031 if test "x$have_good_adns" = "xyes" ; then
2032         adns_message="yes"
2033 else
2034         if test "x$have_good_c_ares" = "xyes" ; then
2035                 adns_message="no (using c-ares instead)"
2036         else
2037                 adns_message="no"
2038         fi
2039 fi
2040
2041 if test "x$have_good_libcap" = "xyes" ; then
2042         libcap_message="yes"
2043 else
2044         libcap_message="no"
2045 fi
2046
2047 if test "x$have_good_geoip" = "xyes" ; then
2048         geoip_message="yes"
2049 else
2050         geoip_message="no"
2051 fi
2052
2053 echo ""
2054 echo "The Wireshark package has been configured with the following options."
2055 echo "                    Build wireshark : $enable_wireshark"
2056 echo "                       Build tshark : $enable_tshark"
2057 echo "                     Build capinfos : $enable_capinfos"
2058 echo "                      Build editcap : $enable_editcap"
2059 echo "                      Build dumpcap : $enable_dumpcap"
2060 echo "                     Build mergecap : $enable_mergecap"
2061 echo "                    Build text2pcap : $enable_text2pcap"
2062 echo "                      Build idl2wrs : $enable_idl2wrs"
2063 echo "                      Build randpkt : $enable_randpkt"
2064 echo "                       Build dftest : $enable_dftest"
2065 echo "                     Build rawshark : $enable_rawshark"
2066 echo ""
2067 echo "  Install dumpcap with capabilities : $setcap_message"
2068 echo "             Install dumpcap setuid : $setuid_message"
2069 echo "                  Use dumpcap group : $dumpcap_group_message"
2070 echo "                        Use plugins : $have_plugins"
2071 echo "                    Use lua library : $lua_message"
2072 echo "                 Use python binding : $python_message"
2073 echo "                   Build rtp_player : $portaudio_message"
2074 echo "                        Use threads : $enable_threads"
2075 echo "             Build profile binaries : $enable_profile_build"
2076 echo "                   Use pcap library : $want_pcap"
2077 echo "                   Use zlib library : $zlib_message"
2078 echo "                   Use pcre library : $pcre_message"
2079 echo "               Use kerberos library : $krb5_message"
2080 echo "                 Use c-ares library : $c_ares_message"
2081 echo "               Use GNU ADNS library : $adns_message"
2082 echo "                Use SMI MIB library : $libsmi_message"
2083 echo "             Use GNU crypto library : $gcrypt_message"
2084 echo "             Use SSL crypto library : $ssl_message"
2085 echo "           Use IPv6 name resolution : $enable_ipv6"
2086 echo "                 Use gnutls library : $tls_message"
2087 echo "     Use POSIX capabilities library : $libcap_message"
2088 echo "                  Use GeoIP library : $geoip_message"