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