Move make-manuf to the tools directory.
[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 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                 AC_DEFINE(HAVE_GTK, 1, [Define to 1 if compiling with GTK])
678         ], GTK_OK=no, gthread)
679 else
680         GTK_OK=no
681 fi
682
683 # GLib checks; we require GLib 2.4 or later, and require gmodule
684 # support, as we need that for dynamically loading plugins.
685 # If we found GTK+, this doesn't add GLIB_CFLAGS to CFLAGS, because
686 # AM_PATH_GTK will add GTK_CFLAGS to CFLAGS, and GTK_CFLAGS is a
687 # superset of GLIB_CFLAGS.  If we didn't find GTK+, it does add
688 # GLIB_CFLAGS to CFLAGS.
689 # However, this means that both @GLIB_LIBS@ and @GTK_LIBS@ will be
690 # set when generating the Makefile, so we can make programs that require
691 # only GLib link with @GLIB_LIBS@ and make programs that require GTK+
692 # link with @GTK_LIBS@ (which includes @GLIB_LIBS@).
693 # We don't add $GLIB_LIBS to LIBS, because we don't want to force all
694 # programs to be built with GLib.
695 #
696 if test "$GTK_OK" = "no" ; then
697         #
698         # We don't have GTK+.
699         # If they didn't explicitly say "--disable-wireshark", fail (so
700         # that, unless they explicitly indicated that they don't want
701         # Wireshark, we stop so they know they won't be getting
702         # Wireshark unless they fix the GTK+ problem).
703         #
704         if test "x$enable_wireshark" = "xyes"; then
705                 AC_MSG_ERROR([GTK+ 2.4 or later isn't available, so Wireshark can't be compiled])
706         fi
707         wireshark_bin=""
708         wireshark_man=""
709         # Use GLIB_CFLAGS
710         AM_PATH_GLIB_2_0(2.4.0,
711         [
712                 CFLAGS="$CFLAGS $GLIB_CFLAGS"
713                 CXXFLAGS="$CXXFLAGS $GLIB_CFLAGS"
714         ], AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
715 else
716         #
717         # We have GTK+, and thus will be building Wireshark unless the
718         # user explicitly disabled it.
719         #
720         wireshark_bin="wireshark\$(EXEEXT)"
721         wireshark_man="wireshark.1"
722         wireshark_SUBDIRS="codecs gtk"
723         # Don't use GLIB_CFLAGS
724         AM_PATH_GLIB_2_0(2.4.0, , AC_MSG_ERROR(GLib 2.4 or later distribution not found.), gmodule)
725 fi
726
727 #
728 # Check whether GLib includes GRegex support.
729 # We just assume that everybody builds GLib 2.14.0 and later
730 # with GRegex support; it's possible to compile GLib without
731 # GRegex but it doesn't look as if anyone does.
732 #
733 AC_MSG_CHECKING(for GLIB - version >= 2.14.0)
734 if test x$PKG_CONFIG != xno ; then
735     ## don't try to run the test against uninstalled libtool libs
736     if $PKG_CONFIG --uninstalled $pkg_config_args; then
737         echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
738         enable_glibtest=no
739     fi
740
741     if $PKG_CONFIG --atleast-version 2.14.0 glib-2.0; then
742         have_gregex=yes
743     else
744         have_gregex=no
745     fi
746     AC_MSG_RESULT($have_gregex)
747 fi
748
749 #
750 # Check whether GLib modules are supported, to determine whether we
751 # can support plugins.
752 #
753 AC_MSG_CHECKING(whether GLib supports loadable modules)
754 ac_save_CFLAGS="$CFLAGS"
755 ac_save_LIBS="$LIBS"
756 CFLAGS="$CFLAGS $GLIB_CFLAGS"
757 LIBS="$GLIB_LIBS $LIBS"
758 AC_TRY_RUN([
759 #include <glib.h>
760 #include <gmodule.h>
761 #include <stdio.h>
762 #include <stdlib.h>
763
764 int
765 main ()
766 {
767   if (g_module_supported())
768     return 0;   /* success */
769   else
770     return 1;   /* failure */
771 }
772 ], ac_cv_glib_supports_modules=yes, ac_cv_glib_supports_modules=no,
773    [echo $ac_n "cross compiling; assumed OK... $ac_c"
774     ac_cv_glib_supports_modules=yes])
775 CFLAGS="$ac_save_CFLAGS"
776 LIBS="$ac_save_LIBS"
777 if test "$ac_cv_glib_supports_modules" = yes ; then
778   AC_MSG_RESULT(yes)
779   have_plugins=yes
780 else
781   AC_MSG_RESULT(no)
782   have_plugins=no
783 fi
784
785 #
786 # If we have <dlfcn.h>, check whether we can use dladdr to find a
787 # filename (hopefully, a full pathname, but no guarantees) for
788 # the executable.
789 #
790 if test "$ac_cv_header_dlfcn_h" = "yes"
791 then
792         AC_MSG_CHECKING(whether dladdr can be used to find the pathname of an executable)
793         ac_save_CFLAGS="$CFLAGS"
794         ac_save_LIBS="$LIBS"
795         CFLAGS="$CFLAGS $GLIB_CFLAGS"
796         LIBS="$GLIB_LIBS $LIBS"
797         AC_TRY_RUN([
798 #define _GNU_SOURCE     /* required on Linux, sigh */
799 #include <dlfcn.h>
800
801 int
802 main(void)
803 {
804         Dl_info info;
805
806         if (!dladdr((void *)main, &info))
807                 return 1;       /* failure */
808         return 0;               /* assume success */
809 }
810 ], ac_cv_dladdr_finds_executable_path=yes, ac_cv_dladdr_finds_executable_path=no,
811    [echo $ac_n "cross compiling; assumed OK... $ac_c"
812     ac_cv_dladdr_finds_executable_path=yes])
813         CFLAGS="$ac_save_CFLAGS"
814         LIBS="$ac_save_LIBS"
815         if test x$ac_cv_dladdr_finds_executable_path = xyes
816         then
817                 AC_DEFINE(DLADDR_FINDS_EXECUTABLE_PATH, 1, [Define if dladdr can be used to find the path of the executable])
818         fi
819         AC_MSG_RESULT($ac_cv_dladdr_finds_executable_path)
820 fi
821
822 if test "x$no_gtk" != "xyes"
823 then
824     #
825     # We have GTK+; do we want the OS X integration functions and,
826     # if so, do we have them and, if so, which versions do we have,
827     # the old Carbon-based ones or the new Cocoa-based ones?
828     #
829     AC_MSG_CHECKING(whether to use OS X integration functions)
830
831     AC_ARG_WITH(osx-integration,
832       AC_HELP_STRING( [--with-osx-integration],
833                       [use OS X integration functions (@<:@default=yes, if available@:>@]),
834     [
835         if test $withval = no
836         then
837             want_osx_integration=no
838         else
839             want_osx_integration=yes
840         fi
841     ],[
842         want_osx_integration=yes
843     ])
844     if test "x$want_osx_integration" = "xno"; then
845         AC_MSG_RESULT(no)
846     else
847         AC_MSG_RESULT(yes)
848         AC_WIRESHARK_OSX_INTEGRATION_CHECK
849     fi
850 fi
851
852 AC_SUBST(wireshark_bin)
853 AC_SUBST(wireshark_man)
854
855
856 # Enable/disable tshark
857
858 AC_ARG_ENABLE(tshark,
859   AC_HELP_STRING( [--enable-tshark],
860                   [build tshark.  @<:@default=yes@:>@]),
861     tshark=$enableval,enable_tshark=yes)
862
863 if test "x$enable_tshark" = "xyes" ; then
864         tshark_bin="tshark\$(EXEEXT)"
865         tshark_man="tshark.1"
866         wiresharkfilter_man="wireshark-filter.4"
867 else
868         tshark_bin=""
869         tshark_man=""
870 fi
871 AC_SUBST(tshark_bin)
872 AC_SUBST(tshark_man)
873 AC_SUBST(wiresharkfilter_man)
874
875
876
877 # Enable/disable editcap
878
879 AC_ARG_ENABLE(editcap,
880   AC_HELP_STRING( [--enable-editcap],
881                   [build editcap.  @<:@default=yes@:>@]),
882     enable_editcap=$enableval,enable_editcap=yes)
883
884 if test "x$enable_editcap" = "xyes" ; then
885         editcap_bin="editcap\$(EXEEXT)"
886         editcap_man="editcap.1"
887 else
888         editcap_bin=""
889         editcap_man=""
890 fi
891 AC_SUBST(editcap_bin)
892 AC_SUBST(editcap_man)
893
894 # Enabling/disabling of dumpcap is done later (after we know if we have PCAP
895 # or not)
896
897 # Enable/disable capinfos
898
899 AC_ARG_ENABLE(capinfos,
900   AC_HELP_STRING( [--enable-capinfos],
901                   [build capinfos.  @<:@default=yes@:>@]),
902     enable_capinfos=$enableval,enable_capinfos=yes)
903
904 if test "x$enable_capinfos" = "xyes" ; then
905         capinfos_bin="capinfos\$(EXEEXT)"
906         capinfos_man="capinfos.1"
907 else
908         capinfos_bin=""
909         capinfos_man=""
910 fi
911 AC_SUBST(capinfos_bin)
912 AC_SUBST(capinfos_man)
913
914
915 # Enable/disable mergecap
916
917 AC_ARG_ENABLE(mergecap,
918   AC_HELP_STRING( [--enable-mergecap],
919                   [build mergecap.  @<:@default=yes@:>@]),
920     enable_mergecap=$enableval,enable_mergecap=yes)
921
922 if test "x$enable_mergecap" = "xyes" ; then
923         mergecap_bin="mergecap\$(EXEEXT)"
924         mergecap_man="mergecap.1"
925 else
926         mergecap_bin=""
927         mergecap_man=""
928 fi
929 AC_SUBST(mergecap_bin)
930 AC_SUBST(mergecap_man)
931
932
933 # Enable/disable text2pcap
934
935 AC_ARG_ENABLE(text2pcap,
936   AC_HELP_STRING( [--enable-text2pcap],
937                   [build text2pcap.  @<:@default=yes@:>@]),
938     text2pcap=$enableval,enable_text2pcap=yes)
939
940 if test "x$enable_text2pcap" = "xyes" ; then
941         text2pcap_bin="text2pcap\$(EXEEXT)"
942         text2pcap_man="text2pcap.1"
943 else
944         text2pcap_bin=""
945         text2pcap_man=""
946 fi
947 AC_SUBST(text2pcap_bin)
948 AC_SUBST(text2pcap_man)
949
950 # Enable/disable idl2wrs
951
952 AC_ARG_ENABLE(idl2wrs,
953   AC_HELP_STRING( [--enable-idl2wrs],
954                   [build idl2wrs.  @<:@default=yes@:>@]),
955     enable_idl2wrs=$enableval,enable_idl2wrs=yes)
956
957 if test "x$enable_idl2wrs" = "xyes" ; then
958         idl2wrs_bin="idl2wrs"
959         idl2wrs_man="idl2wrs.1"
960 else
961         idl2wrs_bin=""
962         idl2wrs_man=""
963 fi
964 AC_SUBST(idl2wrs_bin)
965 AC_SUBST(idl2wrs_man)
966
967
968 # Enable/disable dftest
969
970 AC_ARG_ENABLE(dftest,
971   AC_HELP_STRING( [--enable-dftest],
972                   [build dftest.  @<:@default=yes@:>@]),
973     enable_dftest=$enableval,enable_dftest=yes)
974
975 if test "x$enable_dftest" = "xyes" ; then
976         dftest_bin="dftest\$(EXEEXT)"
977         dftest_man="dftest.1"
978 else
979         dftest_bin=""
980         dftest_man=""
981 fi
982 AC_SUBST(dftest_bin)
983 AC_SUBST(dftest_man)
984
985
986 # Enable/disable randpkt
987
988 AC_ARG_ENABLE(randpkt,
989   AC_HELP_STRING( [--enable-randpkt],
990                   [build randpkt.  @<:@default=yes@:>@]),
991     enable_randpkt=$enableval,enable_randpkt=yes)
992
993 if test "x$enable_randpkt" = "xyes" ; then
994         randpkt_bin="randpkt\$(EXEEXT)"
995         randpkt_man="randpkt.1"
996 else
997         randpkt_bin=""
998         randpkt_man=""
999 fi
1000 AC_SUBST(randpkt_bin)
1001 AC_SUBST(randpkt_man)
1002
1003
1004
1005 dnl Checks for "gethostbyname()" - and "-lnsl", if we need it to get
1006 dnl "gethostbyname()".
1007 AC_WIRESHARK_GETHOSTBY_LIB_CHECK
1008
1009 dnl Checks for "connect()", used as a proxy for "socket()" - and
1010 dnl "-lsocket", if we need it to get "connect()".
1011 AC_WIRESHARK_SOCKET_LIB_CHECK
1012
1013 dnl pcap check
1014 AC_MSG_CHECKING(whether to use libpcap for packet capture)
1015
1016 AC_ARG_WITH(pcap,
1017   AC_HELP_STRING( [--with-pcap@<:@=DIR@:>@],
1018                   [use libpcap for packet capturing.  @<:@default=yes@:>@]),
1019 [
1020         if test $withval = no
1021         then
1022                 want_pcap=no
1023         elif test $withval = yes
1024         then
1025                 want_pcap=yes
1026         else
1027                 want_pcap=yes
1028                 pcap_dir=$withval
1029         fi
1030 ],[
1031         want_pcap=yes
1032         pcap_dir=
1033 ])
1034 if test "x$want_pcap" = "xno" ; then
1035         AC_MSG_RESULT(no)
1036 else
1037         AC_MSG_RESULT(yes)
1038         AC_WIRESHARK_PCAP_CHECK
1039 fi
1040
1041 # Enable/disable dumpcap
1042
1043 dnl dumpcap check
1044 AC_MSG_CHECKING(whether to build dumpcap)
1045
1046 AC_ARG_ENABLE(dumpcap,
1047   AC_HELP_STRING( [--enable-dumpcap],
1048                   [build dumpcap.  @<:@default=yes@:>@]),
1049     enable_dumpcap=$enableval,enable_dumpcap=yes)
1050
1051 if test "x$enable_dumpcap" = "xyes" ; then
1052         if test "x$want_pcap" = "xno" ; then
1053                 enable_dumpcap=no
1054                 AC_MSG_RESULT(pcap not available - disabling dumpcap)
1055         else
1056                 AC_MSG_RESULT(yes)
1057         fi
1058 else
1059         AC_MSG_RESULT(no)
1060 fi
1061
1062 if test "x$enable_dumpcap" = "xyes" ; then
1063         dumpcap_bin="dumpcap\$(EXEEXT)"
1064         dumpcap_man="dumpcap.1"
1065 else
1066         dumpcap_bin=""
1067         dumpcap_man=""
1068 fi
1069 AC_SUBST(dumpcap_bin)
1070 AC_SUBST(dumpcap_man)
1071
1072 # Enable/disable rawshark
1073
1074 dnl rawshark check
1075 AC_MSG_CHECKING(whether to build rawshark)
1076
1077 AC_ARG_ENABLE(rawshark,
1078   AC_HELP_STRING( [--enable-rawshark],
1079                   [build rawshark.  @<:@default=yes@:>@]),
1080     rawshark=$enableval,enable_rawshark=yes)
1081
1082 if test "x$enable_rawshark" = "xyes" ; then
1083         if test "x$want_pcap" = "xno" ; then
1084                 enable_rawshark=no
1085                 AC_MSG_RESULT(pcap not available - disabling rawshark)
1086         else
1087                 AC_MSG_RESULT(yes)
1088         fi
1089 else
1090         AC_MSG_RESULT(no)
1091 fi
1092
1093 if test "x$enable_rawshark" = "xyes" ; then
1094         rawshark_bin="rawshark\$(EXEEXT)"
1095         rawshark_man="rawshark.1"
1096 else
1097         rawshark_bin=""
1098         rawshark_man=""
1099 fi
1100 AC_SUBST(rawshark_bin)
1101 AC_SUBST(rawshark_man)
1102
1103
1104 dnl pcap remote check
1105 AC_MSG_CHECKING(whether to use libpcap remote capturing feature)
1106
1107 AC_ARG_WITH(pcap-remote,
1108     AC_HELP_STRING([--with-pcap-remote],
1109                    [use libpcap remote capturing (requires libpcap)]),
1110 [
1111     if test $withval = no
1112     then
1113         want_pcap_remote=no
1114     else
1115         want_pcap_remote=yes
1116     fi
1117 ],[
1118     want_pcap_remote=no
1119 ])
1120 if test "x$want_pcap_remote" = "xno" -o "x$want_pcap" = "xno" ; then
1121     AC_MSG_RESULT(no)
1122 else
1123     AC_MSG_RESULT(yes)
1124     AC_WIRESHARK_PCAP_REMOTE_CHECK
1125 fi
1126
1127 dnl zlib check
1128 AC_MSG_CHECKING(whether to use zlib for reading compressed capture files)
1129
1130 AC_ARG_WITH(zlib,
1131   AC_HELP_STRING([--with-zlib@<:@=DIR@:>@],
1132                  [use zlib (located in directory DIR, if supplied) to read compressed data.  @<:@default=yes, if available@:>@]),
1133 [
1134         if test $withval = no
1135         then
1136                 want_zlib=no
1137         elif test $withval = yes
1138         then
1139                 want_zlib=yes
1140         else
1141                 want_zlib=yes
1142                 zlib_dir=$withval
1143         fi
1144 ],[
1145         #
1146         # Use zlib if it's present, otherwise don't.
1147         #
1148         want_zlib=ifavailable
1149         zlib_dir=
1150 ])
1151 if test "x$want_zlib" = "xno" ; then
1152         AC_MSG_RESULT(no)
1153 else
1154         AC_MSG_RESULT(yes)
1155         AC_WIRESHARK_ZLIB_CHECK
1156         if test "x$want_zlib" = "xno" ; then
1157                 AC_MSG_RESULT(zlib not found - disabling compressed capture file support)
1158         fi
1159 fi
1160
1161 if test "x$want_zlib" != "xno" ; then
1162         AC_CHECK_LIB(z, gzclearerr,
1163         [
1164                 AC_DEFINE(HAVE_GZCLEARERR, 1, [Define if we have gzclearerr])
1165         ])
1166 fi
1167
1168 dnl pcre check
1169 AC_MSG_CHECKING(whether to use libpcre for regular expressions in dfilters)
1170
1171 AC_ARG_WITH(pcre,
1172   AC_HELP_STRING( [--with-pcre@<:@=DIR@:>@],
1173                   [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@:>@]),
1174 [
1175         if test $withval = no
1176         then
1177                 want_pcre=no
1178         elif test $withval = yes
1179         then
1180                 want_pcre=yes
1181         else
1182                 want_pcre=yes
1183                 pcre_dir=$withval
1184         fi
1185 ],[
1186         #
1187         # Use libpcre if it's present and GRegex isn't, otherwise don't.
1188         #
1189         if test $have_gregex = yes ; then
1190                 want_pcre=no
1191         else
1192                 want_pcre=ifavailable
1193         fi
1194         pcre_dir=
1195 ])
1196 if test "x$want_pcre" = "xno" ; then
1197         AC_MSG_RESULT(no)
1198 else
1199         AC_MSG_RESULT(yes)
1200         AC_WIRESHARK_LIBPCRE_CHECK
1201         if test "x$want_pcre" = "xno" ; then
1202                 AC_MSG_RESULT(libpcre not found - disabling support for perl compatible regular expressions in dfilters)
1203         fi
1204 fi
1205
1206
1207 dnl lua check
1208 AC_MSG_CHECKING(whether to use liblua for the lua scripting plugin)
1209
1210 AC_ARG_WITH(lua,
1211   AC_HELP_STRING( [--with-lua@<:@=DIR@:>@],
1212                   [use liblua (located in directory DIR, if supplied) for the lua scripting plugin.  @<:@default=yes, if available@:>@]),
1213 [
1214         if test $withval = no
1215         then
1216                 want_lua=no
1217         elif test $withval = yes
1218         then
1219                 want_lua=yes
1220         else
1221                 want_lua=yes
1222                 lua_dir=$withval
1223         fi
1224 ],[
1225         #
1226         # Use liblua by default
1227         #
1228         want_lua=ifavailable
1229         lua_dir=
1230 ])
1231 if test "x$want_lua" = "xno" ; then
1232         AC_MSG_RESULT(no)
1233 else
1234         AC_MSG_RESULT(yes)
1235         AC_WIRESHARK_LIBLUA_CHECK
1236         if test "x$want_lua" = "xno" ; then
1237                 AC_MSG_RESULT(liblua not found - disabling support for the lua scripting plugin)
1238         fi
1239 fi
1240 AM_CONDITIONAL(HAVE_LIBLUA, test x$want_lua = xyes)
1241
1242
1243 dnl portaudio check
1244 AC_MSG_CHECKING(whether to use libportaudio for the rtp_player)
1245
1246 AC_ARG_WITH(portaudio,
1247   AC_HELP_STRING( [--with-portaudio@<:@=DIR@:>@],
1248                   [use libportaudio (located in directory DIR, if supplied) for the rtp_player.  @<:@default=yes, if available@:>@]),
1249 [
1250         if test $withval = no
1251         then
1252                 want_portaudio=no
1253         elif test $withval = yes
1254         then
1255                 want_portaudio=yes
1256         else
1257                 want_portaudio=yes
1258                 portaudio_dir=$withval
1259         fi
1260 ],[
1261         #
1262         # Use libportaudio by default
1263         #
1264         want_portaudio=ifavailable
1265         portaudio_dir=
1266 ])
1267 if test "x$want_portaudio" = "xno" ; then
1268         AC_MSG_RESULT(no)
1269 else
1270         AC_MSG_RESULT(yes)
1271         AC_WIRESHARK_LIBPORTAUDIO_CHECK
1272         if test "x$want_portaudio" = "xno" ; then
1273                 AC_MSG_RESULT(libportaudio not found - disabling support for the rtp_player)
1274         fi
1275 fi
1276 AM_CONDITIONAL(HAVE_LIBPORTAUDIO, test x$want_portaudio = xyes)
1277
1278
1279 dnl ipv6 check
1280 AC_ARG_ENABLE(ipv6,
1281   AC_HELP_STRING( [--enable-ipv6],
1282                   [use ipv6 name resolution, if available.  @<:@default=yes@:>@]),
1283     enable_ipv6=$enableval,enable_ipv6=yes)
1284
1285 AC_MSG_CHECKING(whether to enable ipv6 name resolution if available)
1286 if test "x$enable_ipv6" = "xno" ; then
1287         AC_MSG_RESULT(no)
1288 else
1289         AC_MSG_RESULT(yes)
1290         AC_WIRESHARK_IPV6_STACK
1291 fi
1292
1293
1294 dnl Check if dumpcap should be installed with filesystem capabilities
1295 AC_PATH_PROG(SETCAP, setcap)
1296 AC_ARG_ENABLE(setcap-install,
1297   AC_HELP_STRING( [--enable-setcap-install],
1298                   [install dumpcap with cap_net_admin and cap_net_raw @<:@default=no@:>@]),
1299     enable_setcap_install=$enableval,enable_setcap_install=no)
1300
1301 AC_MSG_CHECKING(whether to install dumpcap with cap_net_admin and cap_net_raw capabilities)
1302 if test "x$enable_setcap_install" = "xno" ; then
1303         AC_MSG_RESULT(no)
1304 else
1305         if test "x$SETCAP" = "x" ; then
1306                 AC_MSG_RESULT(no. Setcap not found)
1307         elif test "x$enable_dumpcap" = "xno" ; then
1308                 AC_MSG_ERROR(Setcap install works only with dumpcap but dumpcap is disabled)
1309         else
1310                 AC_MSG_RESULT(yes)
1311         fi
1312 fi
1313
1314 AM_CONDITIONAL(SETCAP_INSTALL, test x$enable_setcap_install = xyes)
1315
1316 dnl Check if dumpcap should be installed setuid
1317 AC_ARG_ENABLE(setuid-install,
1318   AC_HELP_STRING( [--enable-setuid-install],
1319                   [install dumpcap as setuid @<:@default=no@:>@]),
1320     enable_setuid_install=$enableval,enable_setuid_install=no)
1321
1322 AC_MSG_CHECKING(whether to install dumpcap setuid)
1323 if test "x$enable_setuid_install" = "xno" ; then
1324         AC_MSG_RESULT(no)
1325 else
1326         if test "x$enable_setcap_install" = "xyes" ; then
1327                 enable_setuid_install=no
1328                 AC_MSG_RESULT(no; using setcap instead)
1329         elif test "x$enable_dumpcap" = "xno" ; then
1330                 AC_MSG_ERROR(Setuid install works only with dumpcap but dumpcap is disabled)
1331         else
1332                 AC_MSG_RESULT(yes)
1333         fi
1334 fi
1335
1336 AM_CONDITIONAL(SETUID_INSTALL, test x$enable_setuid_install = xyes)
1337 AC_CHECK_FUNCS(setresuid setresgid)
1338
1339 dnl ...but our Network Operations group is named "no"!
1340 DUMPCAP_GROUP=''
1341 AC_ARG_WITH(dumpcap-group,
1342   AC_HELP_STRING( [--with-dumpcap-group=GROUP],
1343                   [restrict dumpcap to GROUP]),
1344 [
1345   if test "x$withval" = "xyes"; then
1346       AC_MSG_ERROR([No dumpcap group specified.])
1347   elif test "x$withval" != "xno"; then
1348       AC_MSG_RESULT($withval)
1349       DUMPCAP_GROUP="$withval"
1350   fi
1351 ])
1352 AC_SUBST(DUMPCAP_GROUP)
1353 AM_CONDITIONAL(HAVE_DUMPCAP_GROUP, test x$DUMPCAP_GROUP != x)
1354
1355 dnl libcap (not libpcap) check
1356 LIBCAP_LIBS=''
1357 AC_MSG_CHECKING(whether to use the libcap capabilities library)
1358
1359 AC_ARG_WITH(libcap,
1360   AC_HELP_STRING( [--with-libcap@<:@=DIR@:>@],
1361                   [use libcap (located in directory DIR, if supplied) for POSIX.1e capabilities management.   @<:@default=yes, if present@:>@]),
1362 [
1363 if   test "x$withval" = "xno";  then
1364         want_libcap=no
1365 elif test "x$withval" = "xyes"; then
1366         want_libcap=yes
1367 elif test -d "$withval"; then
1368         want_libcap=yes
1369         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1370 fi
1371 ])
1372 if test "x$with_libcap" = "xno" ; then
1373         AC_MSG_RESULT(no)
1374 else
1375         AC_MSG_RESULT(yes)
1376         AC_WIRESHARK_LIBCAP_CHECK
1377 fi
1378 AC_SUBST(LIBCAP_LIBS)
1379
1380 dnl Checks for header files.
1381 AC_CHECK_HEADERS(direct.h dirent.h fcntl.h grp.h inttypes.h netdb.h pwd.h stdarg.h stddef.h unistd.h)
1382 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)
1383 AC_CHECK_HEADERS(netinet/in.h)
1384 AC_CHECK_HEADERS(arpa/inet.h arpa/nameser.h)
1385
1386 dnl SSL Check
1387 SSL_LIBS=''
1388 AC_MSG_CHECKING(whether to use SSL library)
1389
1390 AC_ARG_WITH(ssl,
1391   AC_HELP_STRING( [--with-ssl@<:@=DIR@:>@],
1392                   [use SSL crypto library (located in directory DIR, if supplied).   @<:@default=no@:>@]),
1393 [
1394 if test "x$withval" = "xno";  then
1395         want_ssl=no
1396 elif test "x$withval" = "xyes"; then
1397         want_ssl=yes
1398 elif test -d "$withval"; then
1399         want_ssl=yes
1400         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1401 fi
1402 ],[
1403         want_ssl=no
1404 ])
1405 if test "x$want_ssl" = "xyes"; then
1406         AC_MSG_RESULT(yes)
1407         AC_CHECK_LIB(crypto,EVP_md5,
1408             [
1409                 SSL_LIBS=-lcrypto
1410             ],
1411             [
1412                 AC_MSG_ERROR([SSL crypto library was requested, but is not available])
1413             ])
1414 else
1415         AC_MSG_RESULT(no)
1416 fi
1417 AC_SUBST(SSL_LIBS)
1418
1419 dnl kerberos check
1420 AC_MSG_CHECKING(whether to use kerberos)
1421
1422 AC_ARG_WITH(krb5,
1423   AC_HELP_STRING( [--with-krb5@<:@=DIR@:>@],
1424                   [use kerberos (located in directory DIR, if supplied) to use in kerberos dissection  @<:@default=yes@:>@]),
1425 [
1426         if test $withval = no
1427         then
1428                 want_krb5=no
1429         elif test $withval = yes
1430         then
1431                 want_krb5=yes
1432         else
1433                 want_krb5=yes
1434                 krb5_dir=$withval
1435         fi
1436 ],[
1437         #
1438         # Use kerberos if specified, otherwise don't.
1439         #
1440         want_krb5=ifavailable
1441         krb5_dir=
1442 ])
1443 if test "x$want_krb5" = "xno" ; then
1444         AC_MSG_RESULT(no)
1445 else
1446         AC_MSG_RESULT(yes)
1447         AC_WIRESHARK_KRB5_CHECK
1448 fi
1449
1450
1451 dnl c-ares Check
1452 C_ARES_LIBS=''
1453 AC_MSG_CHECKING(whether to use the c-ares library if available)
1454
1455 AC_ARG_WITH(c-ares,
1456   AC_HELP_STRING( [--with-c-ares@<:@=DIR@:>@],
1457                   [use c-ares (located in directory DIR, if supplied). Supersedes --with-adns.   @<:@default=yes, if present@:>@]),
1458 [
1459 if   test "x$withval" = "xno";  then
1460         want_c_ares=no
1461 elif test "x$withval" = "xyes"; then
1462         want_c_ares=yes
1463 elif test -d "$withval"; then
1464         want_c_ares=yes
1465         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1466 fi
1467 ])
1468 if test "x$want_c_ares" = "xno" ; then
1469         AC_MSG_RESULT(no)
1470 else
1471         AC_MSG_RESULT(yes)
1472         AC_WIRESHARK_C_ARES_CHECK
1473 fi
1474 AC_SUBST(C_ARES_LIBS)
1475
1476 dnl ADNS Check
1477 ADNS_LIBS=''
1478 AC_MSG_CHECKING(whether to use the GNU ADNS library if available)
1479
1480 AC_ARG_WITH(adns,
1481   AC_HELP_STRING( [--with-adns@<:@=DIR@:>@],
1482                   [use GNU ADNS (located in directory DIR, if supplied).   @<:@default=yes, if present@:>@]),
1483 [
1484 if   test "x$withval" = "xno";  then
1485         want_adns=no
1486 elif test "x$withval" = "xyes"; then
1487         want_adns=yes
1488 elif test -d "$withval"; then
1489         want_adns=yes
1490         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1491 fi
1492 ])
1493 if test "x$want_adns" = "xno" -o "x$have_good_c_ares" = "xyes" ; then
1494         AC_MSG_RESULT(no)
1495 else
1496         AC_MSG_RESULT(yes)
1497         AC_WIRESHARK_ADNS_CHECK
1498 fi
1499 AC_SUBST(ADNS_LIBS)
1500
1501 dnl GEOIP Check
1502 GEOIP_LIBS=''
1503 AC_MSG_CHECKING(whether to use the GeoIP IP address mapping library if available)
1504
1505 AC_ARG_WITH(geoip,
1506   AC_HELP_STRING( [--with-geoip@<:@=DIR@:>@],
1507                   [use GeoIP (located in directory DIR, if supplied).   @<:@default=yes, if present@:>@]),
1508 [
1509 if   test "x$withval" = "xno";  then
1510         want_geoip=no
1511 elif test "x$withval" = "xyes"; then
1512         want_geoip=yes
1513 elif test -d "$withval"; then
1514         want_geoip=yes
1515         AC_WIRESHARK_ADD_DASH_L(LDFLAGS, ${withval}/lib)
1516 fi
1517 ])
1518 if test "x$want_geoip" = "xno"; then
1519         AC_MSG_RESULT(no)
1520 else
1521         AC_MSG_RESULT(yes)
1522         AC_WIRESHARK_GEOIP_CHECK
1523 fi
1524 AC_SUBST(GEOIP_LIBS)
1525
1526 dnl Python devel Check
1527 AC_ARG_WITH(python,
1528     AC_HELP_STRING( [--with-python@<:@=DIR@:>@],
1529                     [use python interpreter (installed in DIR, if supplied). @<:@default=yes@:>@ (EXPERIMENTAL)]),
1530 [
1531 pythondir='${libdir}/wireshark/python/${VERSION}'
1532 if test "x$withval" = "xno"; then
1533   want_python=no
1534 elif test "x$withval" != "xyes"; then
1535   pythondir="$withval"
1536   want_python=yes
1537   AC_WIRESHARK_PYTHON_CHECK
1538 else
1539   want_python=yes
1540   AC_WIRESHARK_PYTHON_CHECK
1541 fi
1542 ])
1543 AM_CONDITIONAL(HAVE_LIBPY, test x$want_python = xyes)
1544 AC_SUBST(pythondir)
1545
1546 #
1547 # Define WS_VAR_IMPORT appropriately for declarations of external
1548 # variables exported from dynamically-linked libraries.
1549 #
1550 AC_DEFINE(WS_VAR_IMPORT, extern, [Define as the string to precede external variable declarations in dynamically-linked libraries])
1551
1552 AC_ARG_ENABLE(airpcap,
1553   AC_HELP_STRING( [--enable-airpcap],
1554                   [use airpcap in wireshark.  @<:@default=yes@:>@]),
1555   enable_airpcap=$enableval
1556   if test x$enable_airpcap != xno; then
1557         AC_DEFINE(HAVE_AIRPCAP, 1, [Enable AirPcap])
1558   fi
1559 )
1560 #
1561 # Define HAVE_AIRPDCAP
1562 # We'll want to remove this eventually.
1563 #
1564 AC_DEFINE(HAVE_AIRPDCAP, 1, [Enable AirPDcap (WPA/WPA2 decryption)])
1565
1566 dnl Checks for typedefs, structures, and compiler characteristics.
1567 # AC_C_CONST
1568
1569 # Check how we can get the time zone abbreviation
1570 AC_WIRESHARK_TIMEZONE_ABBREV
1571
1572 # We need to know whether "struct sockaddr" has an "sa_len" member
1573 # for get_interface_list().
1574
1575 AC_WIRESHARK_STRUCT_SA_LEN
1576
1577 # We must know our byte order
1578 AC_C_BIGENDIAN
1579
1580 # Checks whether "-traditional" is needed when using "ioctl".
1581 # XXX - do we need this?
1582 AC_PROG_GCC_TRADITIONAL
1583
1584 GETOPT_LO=""
1585 AC_CHECK_FUNC(getopt,
1586   [GETOPT_LO=""
1587    AC_DEFINE(HAVE_GETOPT_H, 1, [Define to 1 if you have the <getopt.h> header file.])
1588   ],
1589   GETOPT_LO="wsgetopt.lo"
1590 )
1591 if test "$ac_cv_func_getopt" = no ; then
1592   GETOPT_LO="wsgetopt.lo"
1593 fi
1594 AC_SUBST(GETOPT_LO)
1595
1596 AC_CHECK_FUNC(strerror, STRERROR_LO="",
1597   [STRERROR_LO="strerror.lo"
1598    AC_DEFINE(NEED_STRERROR_H, 1, [Define if strerror.h needs to be included])
1599 ])
1600 if test "$ac_cv_func_strerror" = no ; then
1601   STRERROR_LO="strerror.lo"
1602 fi
1603 AC_SUBST(STRERROR_LO)
1604
1605 AC_CHECK_FUNC(strncasecmp, STRNCASECMP_LO="",
1606   STRNCASECMP_LO="strncasecmp.lo")
1607 if test "$ac_cv_func_strncasecmp" = no ; then
1608   STRNCASECMP_LO="strncasecmp.lo"
1609 fi
1610 AC_SUBST(STRNCASECMP_LO)
1611
1612 AC_CHECK_FUNCS(mkstemp mkdtemp)
1613
1614 AC_SEARCH_LIBS(inet_aton, [socket nsl], have_inet_aton=yes,
1615     have_inet_aton=no)
1616 if test "$have_inet_aton" = no; then
1617   INET_ATON_LO="inet_aton.lo"
1618   AC_DEFINE(NEED_INET_ATON_H, 1, [Define if inet/aton.h needs to be included])
1619 else
1620   INET_ATON_LO=""
1621 fi
1622 AC_SUBST(INET_ATON_LO)
1623
1624 AC_SEARCH_LIBS(inet_pton, [socket nsl], [
1625   dnl check for pre-BIND82 inet_pton() bug.
1626   AC_MSG_CHECKING(for broken inet_pton)
1627   AC_TRY_RUN([#include <sys/types.h>
1628 #include <sys/socket.h>
1629 #include <netinet/in.h>
1630 #include <arpa/inet.h>
1631 int main()
1632 {
1633 #ifdef AF_INET6
1634   char buf[16];
1635   /* this should return 0 (error) */
1636   return inet_pton(AF_INET6, "0:1:2:3:4:5:6:7:", buf);
1637 #else
1638   return 1;
1639 #endif
1640 }], [AC_MSG_RESULT(ok);
1641 have_inet_pton=yes], [AC_MSG_RESULT(broken);
1642 have_inet_pton=no], [AC_MSG_RESULT(cross compiling, assume it is broken);
1643 have_inet_pton=no])],
1644 have_inet_pton=no)
1645 if test "$have_inet_pton" = no; then
1646   INET_PTON_LO="inet_pton.lo"
1647 else
1648   INET_PTON_LO=""
1649 fi
1650 AC_SUBST(INET_PTON_LO)
1651
1652 AC_SEARCH_LIBS(inet_ntop, [socket nsl], [
1653   AC_MSG_CHECKING([for inet_ntop prototype])
1654   AC_TRY_COMPILE([#include <stdio.h>
1655 #include <sys/types.h>
1656 #include <sys/socket.h>
1657 #include <netinet/in.h>
1658 #include <arpa/inet.h>
1659
1660 extern const char *inet_ntop(int, const void *, char *, size_t);],, [
1661     AC_MSG_RESULT(yes)
1662     AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1663     [Define if inet_ntop() prototype exists])], [
1664     AC_TRY_COMPILE([#include <stdio.h>
1665 #include <sys/types.h>
1666 #include <sys/socket.h>
1667 #include <netinet/in.h>
1668 #include <arpa/inet.h>
1669
1670 extern const char *inet_ntop(int, const void *, char *, socklen_t);],, [
1671       AC_MSG_RESULT(yes)
1672       AC_DEFINE(HAVE_INET_NTOP_PROTO, 1,
1673       [Define if inet_ntop() prototype exists])], [
1674       AC_MSG_RESULT(no)])])
1675   INET_NTOP_LO=""], [
1676   INET_NTOP_LO="inet_ntop.lo"
1677   AC_DEFINE(NEED_INET_V6DEFS_H, 1,
1678   [Define if inet/v6defs.h needs to be included])])
1679 AC_SUBST(INET_NTOP_LO)
1680
1681 AC_CHECK_FUNC(strptime, STRPTIME_LO="",
1682   [STRPTIME_LO="strptime.lo"
1683    AC_DEFINE(NEED_STRPTIME_H, 1, [Define if strptime.h needs to be included])
1684 ])
1685 if test "$ac_cv_func_strptime" = no ; then
1686   STRPTIME_LO="strptime.lo"
1687 fi
1688 AC_SUBST(STRPTIME_C)
1689 AC_SUBST(STRPTIME_LO)
1690
1691 AC_CHECK_FUNCS(getprotobynumber gethostbyname2)
1692 AC_CHECK_FUNCS(issetugid)
1693 AC_CHECK_FUNCS(mmap mprotect sysconf)
1694 AC_CHECK_FUNCS(strtoll)
1695
1696 dnl blank for now, but will be used in future
1697 AC_SUBST(wireshark_SUBDIRS)
1698
1699 dnl
1700 dnl check whether plugins should be enabled and, if they should be,
1701 dnl check for plugins directory - stolen from Amanda's configure.in
1702 dnl
1703 dnl we don't wish to expand ${libdir} yet
1704 plugindir='${libdir}/wireshark/plugins/${VERSION}'
1705 AC_ARG_WITH(plugins,
1706   AC_HELP_STRING( [--with-plugins@<:@=DIR@:>@],
1707                   [support plugins (installed in DIR, if supplied).   @<:@default=yes, if possible@:>@]),
1708 [
1709   if test "x$withval" = "xno"; then
1710     have_plugins=no
1711   elif test "x$have_plugins" = "xno"; then
1712       AC_MSG_ERROR([GLib on this platform doesn't support loadable modules, so you can't enable plugins.])
1713   elif test "x$withval" != "xyes"; then
1714       plugindir="$withval"
1715   fi
1716 ])
1717 AM_CONDITIONAL(HAVE_PLUGINS, test "x$have_plugins" = "xyes")
1718 if test x$have_plugins = xyes
1719 then
1720   AC_DEFINE(HAVE_PLUGINS, 1, [Define if plugins are enabled])
1721 fi
1722 AC_SUBST(plugindir)
1723 CPPFLAGS="$CPPFLAGS '-DPLUGIN_DIR=\"\$(plugindir)\"'"
1724
1725 #
1726 # The plugin dissectors reside in ./plugins/PROTO/
1727 #
1728 PLUGIN_LIBS=""
1729 AC_SUBST(PLUGIN_LIBS)
1730
1731 dnl libtool defs
1732 #
1733 # Yes, AM_PROG_LIBTOOL is redundant with newer version(s) of some tool(s)
1734 # (autoconf?  automake?  libtool?) - with the newer version(s), it's
1735 # just an alias for AC_PROG_LIBTOOL, which is called earlier.
1736 #
1737 # With older version(s) of those tool(s), however, it's not just an
1738 # alias, and the configure scripts don't work without it.
1739 #
1740 AM_PROG_LIBTOOL
1741 AC_SUBST(LIBTOOL_DEPS)
1742
1743 AM_CONDITIONAL(ENABLE_STATIC, test x$enable_static = xyes)
1744 if test x$enable_static = xyes -a x$have_plugins = xyes
1745 then
1746   AC_DEFINE(ENABLE_STATIC, 1, [Link plugins statically into Wireshark])
1747 fi
1748 AC_SUBST(ENABLE_STATIC)
1749
1750 AC_ARG_ENABLE(new-packet-list,
1751   AC_HELP_STRING( [--enable-new-packet-list],
1752                   [use new packet list feature.  @<:@default=yes@:>@]),
1753                   new_packet_list=$enableval,new_packet_list=yes)
1754 AC_MSG_CHECKING(if new packet list is used);
1755 if test "x$new_packet_list" = "xyes" ; then
1756         AC_MSG_RESULT(yes)
1757         AC_DEFINE(NEW_PACKET_LIST, 1,
1758             [Use the new packet list code])
1759 else
1760         AC_MSG_RESULT(no)
1761 fi
1762
1763 dnl Save the cacheable configure results to config.cache before recursing
1764 AC_CACHE_SAVE
1765
1766 sinclude(plugins/Custom.m4) dnl
1767 ifdef(_CUSTOM_AC_OUTPUT_,, define(_CUSTOM_AC_OUTPUT_, )) dnl
1768
1769 AM_CONFIG_HEADER(config.h)
1770 AC_OUTPUT(
1771   Makefile
1772   doxygen.cfg
1773   asn1/Makefile
1774   asn1/acp133/Makefile
1775   asn1/acse/Makefile
1776   asn1/ansi_map/Makefile
1777   asn1/ansi_tcap/Makefile
1778   asn1/camel/Makefile
1779   asn1/cdt/Makefile
1780   asn1/charging_ase/Makefile
1781   asn1/cmip/Makefile
1782   asn1/cmp/Makefile
1783   asn1/crmf/Makefile
1784   asn1/cms/Makefile
1785   asn1/dap/Makefile
1786   asn1/disp/Makefile
1787   asn1/dop/Makefile
1788   asn1/dsp/Makefile
1789   asn1/ess/Makefile
1790   asn1/ftam/Makefile
1791   asn1/gnm/Makefile
1792   asn1/goose/Makefile
1793   asn1/gsm_map/Makefile
1794   asn1/h225/Makefile
1795   asn1/h235/Makefile
1796   asn1/h245/Makefile
1797   asn1/h248/Makefile
1798   asn1/h282/Makefile
1799   asn1/h283/Makefile
1800   asn1/h323/Makefile
1801   asn1/h450/Makefile
1802   asn1/h450-ros/Makefile
1803   asn1/h460/Makefile
1804   asn1/h501/Makefile
1805   asn1/HI2Operations/Makefile
1806   asn1/hnbap/Makefile
1807   asn1/idmp/Makefile
1808   asn1/inap/Makefile
1809   asn1/kerberos/Makefile
1810   asn1/ldap/Makefile
1811   asn1/logotypecertextn/Makefile
1812   asn1/lte-rrc/Makefile
1813   asn1/mms/Makefile
1814   asn1/mpeg-audio/Makefile
1815   asn1/mpeg-pes/Makefile
1816   asn1/nbap/Makefile
1817   asn1/ns_cert_exts/Makefile
1818   asn1/ocsp/Makefile
1819   asn1/p7/Makefile
1820   asn1/pcap/Makefile
1821   asn1/pkcs1/Makefile
1822   asn1/pkcs12/Makefile
1823   asn1/pkinit/Makefile
1824   asn1/pkixac/Makefile
1825   asn1/pkix1explicit/Makefile
1826   asn1/pkix1implicit/Makefile
1827   asn1/pkixproxy/Makefile
1828   asn1/pkixqualified/Makefile
1829   asn1/pkixtsp/Makefile
1830   asn1/pres/Makefile
1831   asn1/q932/Makefile
1832   asn1/q932-ros/Makefile
1833   asn1/qsig/Makefile
1834   asn1/ranap/Makefile
1835   asn1/rnsap/Makefile
1836   asn1/ros/Makefile
1837   asn1/rrc/Makefile
1838   asn1/rrlp/Makefile
1839   asn1/rtse/Makefile
1840   asn1/rua/Makefile
1841   asn1/s1ap/Makefile
1842   asn1/s4406/Makefile
1843   asn1/sabp/Makefile
1844   asn1/smrse/Makefile
1845   asn1/snmp/Makefile
1846   asn1/spnego/Makefile
1847   asn1/sv/Makefile
1848   asn1/t125/Makefile
1849   asn1/t38/Makefile
1850   asn1/tcap/Makefile
1851   asn1/ulp/Makefile
1852   asn1/wlancertextn/Makefile
1853   asn1/x2ap/Makefile
1854   asn1/x411/Makefile
1855   asn1/x420/Makefile
1856   asn1/x509af/Makefile
1857   asn1/x509ce/Makefile
1858   asn1/x509if/Makefile
1859   asn1/x509sat/Makefile
1860   asn1/x721/Makefile
1861   doc/Makefile
1862   docbook/Makefile
1863   epan/Makefile
1864   epan/crc/Makefile
1865   epan/crypt/Makefile
1866   epan/doxygen.cfg
1867   epan/dfilter/Makefile
1868   epan/dissectors/Makefile
1869   epan/dissectors/dcerpc/Makefile
1870   epan/dissectors/pidl/Makefile
1871   epan/ftypes/Makefile
1872   epan/wslua/Makefile
1873   epan/wspython/Makefile
1874   codecs/Makefile
1875   gtk/Makefile
1876   gtk/doxygen.cfg
1877   help/Makefile
1878   packaging/Makefile
1879   packaging/macosx/Info.plist
1880   packaging/macosx/Makefile
1881   packaging/nsis/Makefile
1882   packaging/rpm/Makefile
1883   packaging/rpm/SPECS/Makefile
1884   packaging/rpm/SPECS/wireshark.spec
1885   packaging/svr4/Makefile
1886   packaging/svr4/checkinstall
1887   packaging/svr4/pkginfo
1888   plugins/Makefile
1889   plugins/asn1/Makefile
1890   plugins/docsis/Makefile
1891   plugins/ethercat/Makefile
1892   plugins/giop/Makefile
1893   plugins/gryphon/Makefile
1894   plugins/interlink/Makefile
1895   plugins/irda/Makefile
1896   plugins/m2m/Makefile
1897   plugins/mate/Makefile
1898   plugins/opcua/Makefile
1899   plugins/profinet/Makefile
1900   plugins/sercosiii/Makefile
1901   plugins/stats_tree/Makefile
1902   plugins/unistim/Makefile
1903   plugins/wimax/Makefile
1904   plugins/wimaxasncp/Makefile
1905   tools/Makefile
1906   tools/idl2wrs.sh
1907   tools/lemon/Makefile
1908   wiretap/Makefile
1909   wsutil/Makefile
1910   _CUSTOM_AC_OUTPUT_
1911   ,)
1912 dnl AC_CONFIG_FILES([tools/setuid-root.pl], [chmod +x tools/setuid-root.pl])
1913
1914
1915 # Pretty messages
1916
1917 if test "x$enable_setcap_install" = "xyes" ; then
1918         setcap_message="yes"
1919 else
1920         setcap_message="no"
1921 fi
1922
1923
1924 if test "x$enable_setuid_install" = "xyes" ; then
1925         setuid_message="yes"
1926 else
1927         setuid_message="no"
1928 fi
1929
1930 if test "x$DUMPCAP_GROUP" = "x" ; then
1931         dumpcap_group_message="(none)"
1932 else
1933         dumpcap_group_message="$DUMPCAP_GROUP"
1934 fi
1935
1936 if test "x$want_zlib" = "xno" ; then
1937         zlib_message="no"
1938 else
1939         zlib_message="yes"
1940 fi
1941
1942 if test "x$want_pcre" = "xno" ; then
1943         if test $have_gregex = yes
1944         then
1945                 pcre_message="no (using GRegex instead)"
1946         else
1947                 pcre_message="no"
1948         fi
1949 else
1950         pcre_message="yes"
1951 fi
1952
1953 if test "x$want_lua" = "xyes" ; then
1954         lua_message="yes"
1955 else
1956         lua_message="no"
1957 fi
1958
1959 if test "x$want_python" = "xyes"; then
1960         python_message="yes"
1961 else
1962         python_message="no"
1963 fi
1964
1965 if test "x$want_portaudio" = "xyes" ; then
1966         portaudio_message="yes"
1967 else
1968         portaudio_message="no"
1969 fi
1970
1971 if test "x$want_ssl" = "xno" ; then
1972         ssl_message="no"
1973 else
1974         ssl_message="yes"
1975 fi
1976
1977 if test "x$want_krb5" = "xno" ; then
1978         krb5_message="no"
1979 else
1980         krb5_message="yes ($ac_krb5_version)"
1981 fi
1982
1983 if test "x$have_good_c_ares" = "xyes" ; then
1984         c_ares_message="yes"
1985 else
1986         c_ares_message="no"
1987 fi
1988
1989 if test "x$have_good_adns" = "xyes" ; then
1990         adns_message="yes"
1991 else
1992         adns_message="no"
1993 fi
1994
1995 if test "x$have_good_libcap" = "xyes" ; then
1996         libcap_message="yes"
1997 else
1998         libcap_message="no"
1999 fi
2000
2001 if test "x$have_good_geoip" = "xyes" ; then
2002         geoip_message="yes"
2003 else
2004         geoip_message="no"
2005 fi
2006
2007 echo ""
2008 echo "The Wireshark package has been configured with the following options."
2009 echo "                    Build wireshark : $enable_wireshark"
2010 echo "                       Build tshark : $enable_tshark"
2011 echo "                     Build capinfos : $enable_capinfos"
2012 echo "                      Build editcap : $enable_editcap"
2013 echo "                      Build dumpcap : $enable_dumpcap"
2014 echo "                     Build mergecap : $enable_mergecap"
2015 echo "                    Build text2pcap : $enable_text2pcap"
2016 echo "                      Build idl2wrs : $enable_idl2wrs"
2017 echo "                      Build randpkt : $enable_randpkt"
2018 echo "                       Build dftest : $enable_dftest"
2019 echo "                     Build rawshark : $enable_rawshark"
2020 echo ""
2021 echo "  Install dumpcap with capabilities : $setcap_message"
2022 echo "             Install dumpcap setuid : $setuid_message"
2023 echo "                  Use dumpcap group : $dumpcap_group_message"
2024 echo "                        Use plugins : $have_plugins"
2025 echo "                    Use lua library : $lua_message"
2026 echo "                 Use python binding : $python_message"
2027 echo "                   Build rtp_player : $portaudio_message"
2028 echo "                        Use threads : $enable_threads"
2029 echo "             Build profile binaries : $enable_profile_build"
2030 echo "                   Use pcap library : $want_pcap"
2031 echo "                   Use zlib library : $zlib_message"
2032 echo "                   Use pcre library : $pcre_message"
2033 echo "               Use kerberos library : $krb5_message"
2034 echo "                 Use c-ares library : $c_ares_message"
2035 echo "               Use GNU ADNS library : $adns_message"
2036 echo "                Use SMI MIB library : $libsmi_message"
2037 echo "             Use GNU crypto library : $gcrypt_message"
2038 echo "             Use SSL crypto library : $ssl_message"
2039 echo "           Use IPv6 name resolution : $enable_ipv6"
2040 echo "                 Use gnutls library : $tls_message"
2041 echo "     Use POSIX capabilities library : $libcap_message"
2042 echo "                  Use GeoIP library : $geoip_message"