1 dnl Copyright (c) 1994, 1995, 1996, 1997
2 dnl The Regents of the University of California. All rights reserved.
4 dnl Process this file with autoconf to produce a configure script.
10 # http://ftp.gnu.org/gnu/config/README
12 # for the URLs to use to fetch new versions of config.guess and
21 AC_LBL_C_INIT_BEFORE_CC(V_INCLS)
23 AC_LBL_C_INIT(V_CCOPT, V_INCLS)
26 if test "$ac_cv___attribute__" = "yes"; then
27 AC_C___ATTRIBUTE___UNUSED
28 AC_C___ATTRIBUTE___NORETURN_FUNCTION_POINTER
29 AC_C___ATTRIBUTE___FORMAT
30 if test "$ac_cv___attribute___format" = "yes"; then
31 AC_C___ATTRIBUTE___FORMAT_FUNCTION_POINTER
35 AC_CHECK_HEADERS(fcntl.h rpc/rpc.h rpc/rpcent.h netdnet/dnetdb.h)
36 AC_CHECK_HEADERS(net/pfvar.h, , , [#include <sys/types.h>
37 #include <sys/socket.h>
39 if test "$ac_cv_header_net_pfvar_h" = yes; then
40 LOCALSRC="print-pflog.c $LOCALSRC"
42 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h>
43 #include <sys/socket.h>])
44 if test "$ac_cv_header_netinet_if_ether_h" != yes; then
46 # The simple test didn't work.
47 # Do we need to include <net/if.h> first?
48 # Unset ac_cv_header_netinet_if_ether_h so we don't
49 # treat the previous failure as a cached value and
50 # suppress the next test.
52 AC_MSG_NOTICE([Rechecking with some additional includes])
53 unset ac_cv_header_netinet_if_ether_h
54 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h>
55 #include <sys/socket.h>
56 #include <netinet/in.h>
67 AC_ARG_ENABLE(universal,
68 AC_HELP_STRING([--disable-universal],[don't build universal on OS X]))
69 if test "$enable_universal" != "no"; then
74 # Leopard. Build for x86 and 32-bit PowerPC, with
75 # x86 first. (That's what Apple does.)
77 V_CCOPT="$V_CCOPT -arch i386 -arch ppc"
78 LDFLAGS="$LDFLAGS -arch i386 -arch ppc"
83 # Snow Leopard. Build for x86-64 and x86, with
84 # x86-64 first. (That's what Apple does.)
86 V_CCOPT="$V_CCOPT -arch x86_64 -arch i386"
87 LDFLAGS="$LDFLAGS -arch x86_64 -arch i386"
96 [ --with-smi link with libsmi (allows to load MIBs on the fly to decode SNMP packets. [default=yes]
97 --without-smi don't link with libsmi],,
100 if test "x$with_smi" != "xno" ; then
101 AC_CHECK_HEADERS(smi.h)
102 AC_CHECK_LIB(smi, smiInit)
103 if test "$ac_cv_header_smi_h" = yes -a "$ac_cv_lib_smi_smiInit" = yes
105 AC_MSG_CHECKING([whether to enable libsmi])
106 AC_TRY_RUN([ /* libsmi available check */
110 int current, revision, age, n;
111 const int required = 2;
114 if (strcmp(SMI_LIBRARY_VERSION, smi_library_version))
116 n = sscanf(smi_library_version, "%d:%d:%d", ¤t, &revision, &age);
119 if (required < current - age || required > current)
125 AC_DEFINE(LIBSMI, 1, [Define if you enable support for libsmi])
127 dnl autoconf documentation says that $? contains the exit value.
128 dnl reality is that it does not. We leave this in just in case
129 dnl autoconf ever comes back to match the documentation.
131 1) AC_MSG_RESULT(no - smiInit failed) ;;
132 2) AC_MSG_RESULT(no - header/library version mismatch) ;;
133 3) AC_MSG_RESULT(no - can't determine library version) ;;
134 4) AC_MSG_RESULT(no - too old) ;;
135 *) AC_MSG_RESULT(no) ;;
138 [ AC_MSG_RESULT(not when cross-compiling)
144 AC_MSG_CHECKING([whether to enable the possibly-buggy SMB printer])
146 [ --enable-smb enable possibly-buggy SMB printer [default=yes]
147 --disable-smb disable possibly-buggy SMB printer],,
150 yes) AC_MSG_RESULT(yes)
151 AC_WARN([The SMB printer may have exploitable buffer overflows!!!])
152 AC_DEFINE(TCPDUMP_DO_SMB, 1,
153 [define if you want to build the possibly-buggy SMB printer])
154 LOCALSRC="print-smb.c smbutil.c $LOCALSRC"
160 AC_ARG_WITH(user, [ --with-user=USERNAME drop privileges by default to USERNAME])
161 AC_MSG_CHECKING([whether to drop root privileges by default])
162 if test ! -z "$with_user" ; then
163 AC_DEFINE_UNQUOTED(WITH_USER, "$withval",
164 [define if should drop privileges by default])
165 AC_MSG_RESULT(to \"$withval\")
170 AC_ARG_WITH(chroot, [ --with-chroot=DIRECTORY when dropping privileges, chroot to DIRECTORY])
171 AC_MSG_CHECKING([whether to chroot])
172 if test ! -z "$with_chroot" && test "$with_chroot" != "no" ; then
173 AC_DEFINE_UNQUOTED(WITH_CHROOT, "$withval",
174 [define if should chroot when dropping privileges])
175 AC_MSG_RESULT(to \"$withval\")
180 AC_ARG_WITH(sandbox-capsicum, [ --with-sandbox-capsicum ])
182 # Check whether various functions are available. If any are, set
183 # ac_lbl_capsicum_function_seen to yes; if any are not, set
184 # ac_lbl_capsicum_function_not_seen to yes.
186 # All of them must be available in order to enable capsicum sandboxing.
188 if test ! -z "$with_sandbox-capsicum" && test "$with_sandbox-capsicum" != "no" ; then
189 AC_CHECK_FUNCS(cap_enter cap_rights_init cap_rights_limit cap_ioctls_limit openat,
190 ac_lbl_capsicum_function_seen=yes,
191 ac_lbl_capsicum_function_not_seen=yes)
193 AC_MSG_CHECKING([whether to sandbox using capsicum])
194 if test "x$ac_lbl_capsicum_function_seen" = "xyes" -a "x$ac_lbl_capsicum_function_not_seen" != "xyes"; then
195 AC_DEFINE(HAVE_CAPSICUM, 1, [capsicum support available])
202 # We must check this before checking whether to enable IPv6, because,
203 # on some platforms (such as SunOS 5.x), the test program requires
204 # the extra networking libraries.
208 AC_MSG_CHECKING([whether to enable ipv6])
210 [ --enable-ipv6 enable ipv6 (with ipv4) support
211 --disable-ipv6 disable ipv6 support],
212 [ case "$enableval" in
213 yes) AC_MSG_RESULT(yes)
214 LOCALSRC="print-ip6.c print-ip6opts.c print-mobility.c print-ripng.c print-icmp6.c print-frag6.c print-rt6.c print-ospf6.c print-dhcp6.c print-babel.c $LOCALSRC"
215 AC_DEFINE(INET6, 1, [Define if you enable IPv6 support])
227 [[/* AF_INET6 available check */
228 #include <sys/types.h>
229 #include <sys/socket.h>
230 #include <netinet/in.h>
233 foo(struct in6_addr *addr)
235 memset(addr, 0, sizeof (struct in6_addr));
238 #error "AF_INET6 not defined"
243 LOCALSRC="print-ip6.c print-ip6opts.c print-mobility.c print-ripng.c print-icmp6.c print-frag6.c print-rt6.c print-ospf6.c print-dhcp6.c print-babel.c $LOCALSRC"
244 AC_DEFINE(INET6, 1, [Define if you enable IPv6 support])
256 if test "$ipv6" = "yes"; then
257 AC_MSG_CHECKING([ipv6 stack type])
258 for i in inria kame linux-glibc linux-libinet6 toshiba v6d zeta; do
261 dnl http://www.kame.net/
263 [#include <netinet/in.h>
264 #ifdef IPV6_INRIA_VERSION
268 CFLAGS="-DINET6 $CFLAGS"])
271 dnl http://www.kame.net/
273 [#include <netinet/in.h>
279 ipv6libdir=/usr/local/v6/lib;
281 CFLAGS="-DINET6 $CFLAGS"])
284 dnl http://www.v6.linux.or.jp/
286 [#include <features.h>
287 #if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
291 CFLAGS="-DINET6 $CFLAGS"])
294 dnl http://www.v6.linux.or.jp/
296 dnl This also matches Solaris 8 and Tru64 UNIX 5.1,
297 dnl and possibly other versions of those OSes
299 if test -d /usr/inet6 -o -f /usr/include/netinet/ip6.h; then
302 ipv6libdir=/usr/inet6/lib
304 CFLAGS="-DINET6 -I/usr/inet6/include $CFLAGS"
309 [#include <sys/param.h>
310 #ifdef _TOSHIBA_INET6
315 ipv6libdir=/usr/local/v6/lib;
316 CFLAGS="-DINET6 $CFLAGS"])
320 [#include </usr/local/v6/include/sys/v6config.h>
326 ipv6libdir=/usr/local/v6/lib;
327 CFLAGS="-I/usr/local/v6/include $CFLAGS"])
331 [#include <sys/param.h>
332 #ifdef _ZETA_MINAMI_INET6
337 ipv6libdir=/usr/local/v6/lib;
338 CFLAGS="-DINET6 $CFLAGS"])
341 if test "$ipv6type" != "unknown"; then
345 AC_MSG_RESULT($ipv6type)
348 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
349 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
350 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
351 echo "You have $ipv6lib library, using it"
353 if test "$ipv6trylibc" = "yes"; then
354 echo "You do not have $ipv6lib library, using libc"
356 echo 'Fatal: no $ipv6lib library found. cannot continue.'
357 echo "You need to fetch lib$ipv6lib.a from appropriate"
358 echo 'ipv6 kit and compile beforehand.'
365 if test "$ipv6" = "yes"; then
367 # XXX - on Tru64 UNIX 5.1, there is no "getaddrinfo()"
368 # function in libc; there are "ngetaddrinfo()" and
369 # "ogetaddrinfo()" functions, and <netdb.h> #defines
370 # "getaddrinfo" to be either "ngetaddrinfo" or
371 # "ogetaddrinfo", depending on whether _SOCKADDR_LEN
372 # or _XOPEN_SOURCE_EXTENDED are defined or not.
374 # So this test doesn't work on Tru64 5.1, and possibly
375 # on other 5.x releases. This causes the configure
376 # script to become confused, and results in libpcap
379 AC_SEARCH_LIBS(getaddrinfo, socket, [dnl
380 AC_MSG_CHECKING(getaddrinfo bug)
381 AC_CACHE_VAL(td_cv_buggygetaddrinfo, [AC_TRY_RUN([
382 #include <sys/types.h>
385 #include <sys/socket.h>
386 #include <netinet/in.h>
390 int passive, gaierr, inet4 = 0, inet6 = 0;
391 struct addrinfo hints, *ai, *aitop;
392 char straddr[INET6_ADDRSTRLEN], strport[16];
394 for (passive = 0; passive <= 1; passive++) {
395 memset(&hints, 0, sizeof(hints));
396 hints.ai_family = AF_UNSPEC;
397 hints.ai_flags = passive ? AI_PASSIVE : 0;
398 hints.ai_socktype = SOCK_STREAM;
399 hints.ai_protocol = IPPROTO_TCP;
400 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
401 (void)gai_strerror(gaierr);
404 for (ai = aitop; ai; ai = ai->ai_next) {
405 if (ai->ai_addr == NULL ||
406 ai->ai_addrlen == 0 ||
407 getnameinfo(ai->ai_addr, ai->ai_addrlen,
408 straddr, sizeof(straddr), strport, sizeof(strport),
409 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
412 switch (ai->ai_family) {
414 if (strcmp(strport, "54321") != 0) {
418 if (strcmp(straddr, "0.0.0.0") != 0) {
422 if (strcmp(straddr, "127.0.0.1") != 0) {
429 if (strcmp(strport, "54321") != 0) {
433 if (strcmp(straddr, "::") != 0) {
437 if (strcmp(straddr, "::1") != 0) {
454 /* another family support? */
460 /* supported family should be 2, unsupported family should be 0 */
461 if (!(inet4 == 0 || inet4 == 2))
463 if (!(inet6 == 0 || inet6 == 2))
476 td_cv_buggygetaddrinfo=no,
477 td_cv_buggygetaddrinfo=yes,
478 td_cv_buggygetaddrinfo=yes)])
479 if test "$td_cv_buggygetaddrinfo" = no; then
485 if test "$td_cv_buggygetaddrinfo" = "yes"; then
487 # XXX - it doesn't appear that "ipv6type" can ever be
488 # set to "linux". Should this be testing for
489 # "linux-glibc", or for that *or* "linux-libinet6"?
490 # If the latter, note that "linux-libinet6" is also
491 # the type given to some non-Linux OSes.
493 if test "$ipv6type" != "linux"; then
494 echo 'Fatal: You must get working getaddrinfo() function.'
495 echo ' or you can specify "--disable-ipv6"'.
498 echo 'Warning: getaddrinfo() implementation on your system seems be buggy.'
499 echo ' Better upgrade your system library to newest version'
500 echo ' of GNU C library (aka glibc).'
504 AC_REPLACE_FUNCS(getnameinfo)
507 AC_CACHE_CHECK([for dnet_htoa declaration in netdnet/dnetdb.h],
508 [td_cv_decl_netdnet_dnetdb_h_dnet_htoa],
509 [AC_EGREP_HEADER(dnet_htoa, netdnet/dnetdb.h,
510 td_cv_decl_netdnet_dnetdb_h_dnet_htoa=yes,
511 td_cv_decl_netdnet_dnetdb_h_dnet_htoa=no)])
512 if test "$td_cv_decl_netdnet_dnetdb_h_dnet_htoa" = yes; then
513 AC_DEFINE(HAVE_NETDNET_DNETDB_H_DNET_HTOA, 1,
514 [define if you have a dnet_htoa declaration in <netdnet/dnetdb.h>])
518 dnl Checks for addrinfo structure
519 AC_STRUCT_ADDRINFO(ac_cv_addrinfo)
520 if test "$ac_cv_addrinfo" = no; then
525 dnl Checks for NI_MAXSERV
526 AC_NI_MAXSERV(ac_cv_maxserv)
527 if test "$ac_cv_maxserv" = no; then
532 dnl Checks for NI_NAMEREQD
533 AC_NI_NAMEREQD(ac_cv_namereqd)
534 if test "$ac_cv_namereqd" = no; then
538 AC_REPLACE_FUNCS(vfprintf strcasecmp strlcat strlcpy strdup strsep getopt_long)
539 AC_CHECK_FUNCS(fork vfork strftime)
540 AC_CHECK_FUNCS(setlinebuf alarm)
543 AC_CHECK_FUNCS(vsnprintf snprintf,,
545 if test $needsnprintf = yes; then
551 AC_SEARCH_LIBS(dnet_htoa, dnet,
552 AC_DEFINE(HAVE_DNET_HTOA, 1, [define if you have the dnet_htoa function]))
554 AC_CHECK_LIB(rpc, main) dnl It's unclear why we might need -lrpc
556 dnl Some platforms may need -lnsl for getrpcbynumber.
557 AC_SEARCH_LIBS(getrpcbynumber, nsl,
558 AC_DEFINE(HAVE_GETRPCBYNUMBER, 1, [define if you have getrpcbynumber()]))
560 dnl AC_CHECK_LIB(z, uncompress)
561 dnl AC_CHECK_HEADERS(zlib.h)
563 AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
566 # Check for these after AC_LBL_LIBPCAP, so we link with the appropriate
567 # libraries (e.g., "-lsocket -lnsl" on Solaris).
569 # We don't use AC_REPLACE_FUNCS because that uses AC_CHECK_FUNCS which
570 # use AC_CHECK_FUNC which doesn't let us specify the right #includes
571 # to make this work on BSD/OS 4.x. BSD/OS 4.x ships with the BIND8
572 # resolver, and the way it defines inet_{ntop,pton} is rather strange;
573 # it does not ship with a libc symbol "inet_ntop()", it ships with
574 # "_inet_ntop()", and has a #define macro in one of the system headers
577 dnl AC_TRY_COMPILE(inet_ntop inet_pton inet_aton)
578 AC_MSG_CHECKING(for inet_ntop)
579 AC_TRY_LINK([#include <sys/types.h>
580 #include <sys/socket.h>
581 #include <netinet/in.h>
582 #include <arpa/inet.h>], [char src[4], dst[128];
583 inet_ntop(AF_INET, src, dst, sizeof(dst));],
584 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
585 AC_LIBOBJ(inet_ntop)])
586 AC_MSG_CHECKING(for inet_pton)
587 AC_TRY_LINK([#include <sys/types.h>
588 #include <sys/socket.h>
589 #include <netinet/in.h>
590 #include <arpa/inet.h>], [char src[128], dst[4];
591 inet_pton(AF_INET, src, dst);],
592 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
593 AC_LIBOBJ(inet_pton)])
594 AC_MSG_CHECKING(for inet_aton)
595 AC_TRY_LINK([#include <sys/types.h>
596 #include <netinet/in.h>
597 #include <arpa/inet.h>], [char src[128];
599 inet_aton(src, &dst);],
600 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
601 AC_LIBOBJ(inet_aton)])
604 # Check for these after AC_LBL_LIBPCAP, for the same reason.
606 # You are in a twisty little maze of UN*Xes, all different.
607 # Some might not have ether_ntohost().
608 # Some might have it, but not declare it in any header file.
609 # Some might have it, but declare it in <netinet/if_ether.h>.
610 # Some might have it, but declare it in <netinet/ether.h>
611 # (And some might have it but document it as something declared in
612 # <netinet/ethernet.h>, although <netinet/if_ether.h> appears to work.)
614 # Before you is a C compiler.
616 AC_CHECK_FUNCS(ether_ntohost, [
617 AC_CACHE_CHECK(for buggy ether_ntohost, ac_cv_buggy_ether_ntohost, [
620 #include <sys/types.h>
621 #include <sys/param.h>
622 #include <sys/socket.h>
625 main(int argc, char **argv)
627 u_char ea[6] = { 0xff, 0xff, 0xff, 0xff, 0xff };
628 char name[MAXHOSTNAMELEN];
630 ether_ntohost(name, (struct ether_addr *)ea);
633 ], [ac_cv_buggy_ether_ntohost=no],
634 [ac_cv_buggy_ether_ntohost=yes],
635 [ac_cv_buggy_ether_ntohost="not while cross-compiling"])])
636 if test "$ac_cv_buggy_ether_ntohost" = "no"; then
637 AC_DEFINE(USE_ETHER_NTOHOST, 1,
638 [define if you have ether_ntohost() and it works])
641 if test "$ac_cv_func_ether_ntohost" = yes -a \
642 "$ac_cv_buggy_ether_ntohost" = "no"; then
644 # OK, we have ether_ntohost(). Do we have <netinet/if_ether.h>?
646 if test "$ac_cv_header_netinet_if_ether_h" = yes; then
648 # Yes. Does it declare ether_ntohost()?
650 AC_CHECK_DECL(ether_ntohost,
652 AC_DEFINE(NETINET_IF_ETHER_H_DECLARES_ETHER_NTOHOST,,
653 [Define to 1 if netinet/if_ether.h declares `ether_ntohost'])
656 #include <sys/types.h>
657 #include <sys/socket.h>
658 #include <netinet/in.h>
659 #include <arpa/inet.h>
663 #include <netinet/if_ether.h>
669 if test "$ac_cv_have_decl_ether_ntohost" != yes; then
671 # No, how about <netinet/ether.h>, as on Linux?
673 AC_CHECK_HEADERS(netinet/ether.h)
674 if test "$ac_cv_header_netinet_ether_h" = yes; then
676 # We have it - does it declare ether_ntohost()?
677 # Unset ac_cv_have_decl_ether_ntohost so we don't
678 # treat the previous failure as a cached value and
679 # suppress the next test.
681 unset ac_cv_have_decl_ether_ntohost
682 AC_CHECK_DECL(ether_ntohost,
684 AC_DEFINE(NETINET_ETHER_H_DECLARES_ETHER_NTOHOST,,
685 [Define to 1 if netinet/ether.h declares `ether_ntohost'])
688 #include <netinet/ether.h>
693 # Is ether_ntohost() declared?
695 if test "$ac_cv_have_decl_ether_ntohost" != yes; then
697 # No, we'll have to declare it ourselves.
698 # Do we have "struct ether_addr"?
700 AC_CHECK_TYPES(struct ether_addr,,,
702 #include <sys/types.h>
703 #include <sys/socket.h>
704 #include <netinet/in.h>
705 #include <arpa/inet.h>
709 #include <netinet/if_ether.h>
711 AC_DEFINE(HAVE_DECL_ETHER_NTOHOST, 0,
712 [Define to 1 if you have the declaration of `ether_ntohost', and to 0 if you
715 AC_DEFINE(HAVE_DECL_ETHER_NTOHOST, 1,
716 [Define to 1 if you have the declaration of `ether_ntohost', and to 0 if you
721 # libdlpi is needed for Solaris 11 and later.
722 AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
724 dnl portability macros for getaddrinfo/getnameinfo
727 AC_CHECK_SA_LEN(ac_cv_sockaddr_has_sa_len)
728 if test "$ac_cv_sockaddr_has_sa_len" = no; then
733 # Do we have the new open API? Check for pcap_create, and assume that,
734 # if we do, we also have pcap_activate() and the other new routines
735 # introduced in libpcap 1.0.0.
737 AC_CHECK_FUNCS(pcap_create)
738 if test $ac_cv_func_pcap_create = "yes" ; then
740 # OK, do we have pcap_set_tstamp_type? If so, assume we have
741 # pcap_list_tstamp_types and pcap_free_tstamp_types as well.
743 AC_CHECK_FUNCS(pcap_set_tstamp_type)
745 # And do we have pcap_set_tstamp_precision? If so, we assume
746 # we also have pcap_open_offline_with_tstamp_precision.
748 AC_CHECK_FUNCS(pcap_set_tstamp_precision)
751 AC_CHECK_FUNCS(pcap_findalldevs pcap_dump_flush pcap_lib_version pcap_setdirection)
752 if test $ac_cv_func_pcap_findalldevs = "yes" ; then
753 dnl Check for Mac OS X, which may ship pcap.h from 0.6 but libpcap may
754 dnl be 0.8; this means that lib has pcap_findalldevs but header doesn't
756 savedcppflags="$CPPFLAGS"
757 CPPFLAGS="$CPPFLAGS $V_INCLS"
758 AC_CHECK_TYPES(pcap_if_t, , , [#include <pcap.h>])
759 CPPFLAGS="$savedcppflags"
762 if test $ac_cv_func_pcap_lib_version = "no" ; then
763 AC_MSG_CHECKING(whether pcap_version is defined by libpcap)
766 extern char pcap_version[];
768 return (int)pcap_version;
770 ac_lbl_cv_pcap_version_defined=yes,
771 ac_lbl_cv_pcap_version_defined=no)
772 if test "$ac_lbl_cv_pcap_version_defined" = yes ; then
774 AC_DEFINE(HAVE_PCAP_VERSION, 1, [define if libpcap has pcap_version])
779 AC_MSG_CHECKING(whether pcap_debug is defined by libpcap)
782 extern int pcap_debug;
786 ac_lbl_cv_pcap_debug_defined=yes,
787 ac_lbl_cv_pcap_debug_defined=no)
788 if test "$ac_lbl_cv_pcap_debug_defined" = yes ; then
790 AC_DEFINE(HAVE_PCAP_DEBUG, 1, [define if libpcap has pcap_debug])
794 # OK, what about "yydebug"?
796 AC_MSG_CHECKING(whether yydebug is defined by libpcap)
803 ac_lbl_cv_yydebug_defined=yes,
804 ac_lbl_cv_yydebug_defined=no)
805 if test "$ac_lbl_cv_yydebug_defined" = yes ; then
807 AC_DEFINE(HAVE_YYDEBUG, 1, [define if libpcap has yydebug])
812 AC_REPLACE_FUNCS(bpf_dump) dnl moved to libpcap in 0.6
815 if test -f /etc/group -a ! -z "`grep '^wheel:' /etc/group`" ; then
819 # Assume V7/BSD convention for man pages (file formats in section 5,
820 # miscellaneous info in section 7).
827 dnl Workaround to enable certain features
828 AC_DEFINE(_SUN,1,[define on AIX to get certain functions])
833 # Use System V conventions for man pages.
843 # Use System V conventions for man pages.
853 # Use System V conventions for man pages.
863 # Use System V conventions for man pages.
870 if test -f /dev/bpf0 ; then
875 # Make sure we have definitions for all the C99 specified-width types
876 # (regardless of whether the environment is a C99 environment or not).
888 # Define the old BSD specified-width types in terms of the C99 types;
889 # we may need them with libpcap include files.
891 AC_CHECK_TYPE([u_int8_t], ,
892 [AC_DEFINE([u_int8_t], [uint8_t],
893 [Define to `uint8_t' if u_int8_t not defined.])],
895 #include <sys/types.h>
897 AC_CHECK_TYPE([u_int16_t], ,
898 [AC_DEFINE([u_int16_t], [uint16_t],
899 [Define to `uint16_t' if u_int16_t not defined.])],
901 #include <sys/types.h>
903 AC_CHECK_TYPE([u_int32_t], ,
904 [AC_DEFINE([u_int32_t], [uint32_t],
905 [Define to `uint32_t' if u_int32_t not defined.])],
907 #include <sys/types.h>
909 AC_CHECK_TYPE([u_int64_t], ,
910 [AC_DEFINE([u_int64_t], [uint64_t],
911 [Define to `uint64_t' if u_int64_t not defined.])],
913 #include <sys/types.h>
917 # Check for <inttypes.h>
919 AC_CHECK_HEADERS(inttypes.h,
922 # OK, we have inttypes.h, but does it define all the PRI[doxu]64 macros?
923 # Some systems have an inttypes.h that doesn't define all of them.
925 AC_MSG_CHECKING([[whether inttypes.h defines the PRI[doxu]64 macros]])
930 #include <inttypes.h>
932 #include <sys/types.h>
936 printf("%" PRId64 "\n", (uint64_t)1);
937 printf("%" PRIo64 "\n", (uint64_t)1);
938 printf("%" PRIx64 "\n", (uint64_t)1);
939 printf("%" PRIu64 "\n", (uint64_t)1);
945 ac_lbl_inttypes_h_defines_formats=yes
949 ac_lbl_inttypes_h_defines_formats=no
954 # We don't have inttypes.h, so it obviously can't define those
957 ac_lbl_inttypes_h_defines_formats=no
959 if test "$ac_lbl_inttypes_h_defines_formats" = no; then
960 AC_LBL_CHECK_64BIT_FORMAT(l,
962 AC_LBL_CHECK_64BIT_FORMAT(ll,
964 AC_LBL_CHECK_64BIT_FORMAT(L,
966 AC_LBL_CHECK_64BIT_FORMAT(q,
968 AC_MSG_ERROR([neither %llx nor %Lx nor %qx worked on a 64-bit integer])
976 # Check for some headers introduced in later versions of libpcap
977 # and used by some printers.
979 # Those headers use the {u_}intN_t types, so we must do this after
980 # we check for what's needed to get them defined.
982 savedcppflags="$CPPFLAGS"
983 CPPFLAGS="$CPPFLAGS $V_INCLS"
984 AC_CHECK_HEADERS(pcap/bluetooth.h,,,[#include "tcpdump-stdinc.h"])
985 AC_CHECK_HEADERS(pcap/nflog.h,,,[#include "tcpdump-stdinc.h"])
986 AC_CHECK_HEADERS(pcap/usb.h,,,[#include "tcpdump-stdinc.h"])
987 CPPFLAGS="$savedcppflags"
990 AC_CHECK_TOOL([AR], [ar])
992 AC_LBL_DEVEL(V_CCOPT)
994 AC_LBL_SOCKADDR_SA_LEN
996 AC_LBL_UNALIGNED_ACCESS
1000 # Check for OpenSSL libcrypto
1001 AC_MSG_CHECKING(whether to use OpenSSL libcrypto)
1002 # Specify location for both includes and libraries.
1003 want_libcrypto=ifavailable
1005 AS_HELP_STRING([--with-crypto],
1006 [use OpenSSL libcrypto @<:@default=yes, if available@:>@]),
1008 if test $withval = no
1012 elif test $withval = yes
1019 # Use libcrypto if it's present, otherwise don't.
1021 want_libcrypto=ifavailable
1022 AC_MSG_RESULT([yes, if available])
1024 if test "$want_libcrypto" != "no"; then
1025 AC_CHECK_LIB(crypto, DES_cbc_encrypt)
1026 AC_CHECK_HEADERS(openssl/evp.h)
1030 dnl set additional include path if necessary
1031 if test "$missing_includes" = "yes"; then
1032 CPPFLAGS="$CPPFLAGS -I$srcdir/missing"
1033 V_INCLS="$V_INCLS -I$srcdir/missing"
1042 AC_SUBST(MAN_FILE_FORMATS)
1043 AC_SUBST(MAN_MISC_INFO)
1047 AC_CONFIG_HEADER(config.h)
1049 AC_OUTPUT_COMMANDS([if test -f .devel; then
1050 echo timestamp > stamp-h
1051 cat Makefile-devel-adds >> Makefile
1054 AC_OUTPUT(Makefile tcpdump.1)