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