1 dnl @(#) $Header: /tcpdump/master/tcpdump/configure.in,v 1.202 2008-09-25 21:45:50 guy Exp $ (LBL)
3 dnl Copyright (c) 1994, 1995, 1996, 1997
4 dnl The Regents of the University of California. All rights reserved.
6 dnl Process this file with autoconf to produce a configure script.
9 AC_REVISION($Revision: 1.202 $)
15 AC_LBL_C_INIT(V_CCOPT, V_INCLS)
18 AC_CHECK_HEADERS(fcntl.h rpc/rpcent.h netdnet/dnetdb.h)
19 AC_CHECK_HEADERS(net/pfvar.h, , , [#include <sys/types.h>
20 #include <sys/socket.h>
22 if test "$ac_cv_header_net_pfvar_h" = yes; then
23 LOCALSRC="print-pflog.c $LOCALSRC"
25 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h>
26 #include <sys/socket.h>])
27 if test "$ac_cv_header_netinet_if_ether_h" != yes; then
29 # The simple test didn't work.
30 # Do we need to include <net/if.h> first?
31 # Unset ac_cv_header_netinet_if_ether_h so we don't
32 # treat the previous failure as a cached value and
33 # suppress the next test.
35 AC_MSG_NOTICE([Rechecking with some additional includes])
36 unset ac_cv_header_netinet_if_ether_h
37 AC_CHECK_HEADERS(netinet/if_ether.h, , , [#include <sys/types.h>
38 #include <sys/socket.h>
39 #include <netinet/in.h>
50 AC_MSG_CHECKING(Linux kernel version)
51 if test "$cross_compiling" = yes; then
52 AC_CACHE_VAL(ac_cv_linux_vers,
53 ac_cv_linux_vers=unknown)
55 AC_CACHE_VAL(ac_cv_linux_vers,
56 ac_cv_linux_vers=`uname -r 2>&1 | \
57 sed -n -e '$s/.* //' -e '$s/\..*//p'`)
59 AC_MSG_RESULT($ac_cv_linux_vers)
60 if test $ac_cv_linux_vers = unknown ; then
61 AC_MSG_ERROR(cannot determine linux version when cross-compiling)
63 if test $ac_cv_linux_vers -lt 2 ; then
64 AC_MSG_ERROR(version 2 or higher required; see the INSTALL doc for more info)
73 AC_CHECK_HEADERS(smi.h)
74 AC_CHECK_LIB(smi, smiInit)
75 if test "$ac_cv_header_smi_h" = yes -a "$ac_cv_lib_smi_smiInit" = yes
77 AC_MSG_CHECKING([whether to enable libsmi])
78 AC_TRY_RUN([ /* libsmi available check */
82 int current, revision, age, n;
83 const int required = 2;
86 if (strcmp(SMI_LIBRARY_VERSION, smi_library_version))
88 n = sscanf(smi_library_version, "%d:%d:%d", ¤t, &revision, &age);
91 if (required < current - age || required > current)
99 dnl autoconf documentation says that $? contains the exit value.
100 dnl reality is that it does not. We leave this in just in case
101 dnl autoconf ever comes back to match the documentation.
103 1) AC_MSG_RESULT(no - smiInit failed) ;;
104 2) AC_MSG_RESULT(no - header/library version mismatch) ;;
105 3) AC_MSG_RESULT(no - can't determine library version) ;;
106 4) AC_MSG_RESULT(no - too old) ;;
107 *) AC_MSG_RESULT(no) ;;
110 [ AC_MSG_RESULT(not when cross-compiling)
115 AC_MSG_CHECKING([whether to enable the possibly-buggy SMB printer])
117 [ --enable-smb enable possibly-buggy SMB printer [default=yes]
118 --disable-smb disable possibly-buggy SMB printer],,
121 yes) AC_MSG_RESULT(yes)
122 AC_WARN([The SMB printer may have exploitable buffer overflows!!!])
123 AC_DEFINE(TCPDUMP_DO_SMB)
124 LOCALSRC="print-smb.c smbutil.c $LOCALSRC"
130 AC_ARG_WITH(user, [ --with-user=USERNAME drop privileges by default to USERNAME])
131 AC_MSG_CHECKING([whether to drop root privileges by default])
132 if test ! -z "$with_user" ; then
133 AC_DEFINE_UNQUOTED(WITH_USER, "$withval")
134 AC_MSG_RESULT(to \"$withval\")
139 AC_ARG_WITH(chroot, [ --with-chroot=DIRECTORY when dropping privileges, chroot to DIRECTORY])
140 AC_MSG_CHECKING([whether to chroot])
141 if test ! -z "$with_chroot" ; then
142 AC_DEFINE_UNQUOTED(WITH_CHROOT, "$withval")
143 AC_MSG_RESULT(to \"$withval\")
148 AC_MSG_CHECKING([whether to enable ipv6])
150 [ --enable-ipv6 enable ipv6 (with ipv4) support
151 --disable-ipv6 disable ipv6 support],
152 [ case "$enableval" in
153 yes) AC_MSG_RESULT(yes)
154 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 $LOCALSRC"
164 AC_TRY_RUN([ /* AF_INET6 available check */
165 #include <sys/types.h>
166 #include <sys/socket.h>
169 if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
176 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 $LOCALSRC"
189 if test "$ipv6" = "yes"; then
190 AC_MSG_CHECKING([ipv6 stack type])
191 for i in inria kame linux-glibc linux-libinet6 toshiba v6d zeta; do
194 dnl http://www.kame.net/
196 [#include <netinet/in.h>
197 #ifdef IPV6_INRIA_VERSION
201 CFLAGS="-DINET6 $CFLAGS"])
204 dnl http://www.kame.net/
206 [#include <netinet/in.h>
212 ipv6libdir=/usr/local/v6/lib;
214 CFLAGS="-DINET6 $CFLAGS"])
217 dnl http://www.v6.linux.or.jp/
219 [#include <features.h>
220 #if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
224 CFLAGS="-DINET6 $CFLAGS"])
227 dnl http://www.v6.linux.or.jp/
229 dnl This also matches Solaris 8 and Tru64 UNIX 5.1,
230 dnl and possibly other versions of those OSes
232 if test -d /usr/inet6 -o -f /usr/include/netinet/ip6.h; then
235 ipv6libdir=/usr/inet6/lib
237 CFLAGS="-DINET6 -I/usr/inet6/include $CFLAGS"
242 [#include <sys/param.h>
243 #ifdef _TOSHIBA_INET6
248 ipv6libdir=/usr/local/v6/lib;
249 CFLAGS="-DINET6 $CFLAGS"])
253 [#include </usr/local/v6/include/sys/v6config.h>
259 ipv6libdir=/usr/local/v6/lib;
260 CFLAGS="-I/usr/local/v6/include $CFLAGS"])
264 [#include <sys/param.h>
265 #ifdef _ZETA_MINAMI_INET6
270 ipv6libdir=/usr/local/v6/lib;
271 CFLAGS="-DINET6 $CFLAGS"])
274 if test "$ipv6type" != "unknown"; then
278 AC_MSG_RESULT($ipv6type)
281 if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
282 if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
283 LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
284 echo "You have $ipv6lib library, using it"
286 if test "$ipv6trylibc" = "yes"; then
287 echo "You do not have $ipv6lib library, using libc"
289 echo 'Fatal: no $ipv6lib library found. cannot continue.'
290 echo "You need to fetch lib$ipv6lib.a from appropriate"
291 echo 'ipv6 kit and compile beforehand.'
298 if test "$ipv6" = "yes"; then
300 # XXX - on Tru64 UNIX 5.1, there is no "getaddrinfo()"
301 # function in libc; there are "ngetaddrinfo()" and
302 # "ogetaddrinfo()" functions, and <netdb.h> #defines
303 # "getaddrinfo" to be either "ngetaddrinfo" or
304 # "ogetaddrinfo", depending on whether _SOCKADDR_LEN
305 # or _XOPEN_SOURCE_EXTENDED are defined or not.
307 # So this test doesn't work on Tru64 5.1, and possibly
308 # on other 5.x releases. This causes the configure
309 # script to become confused, and results in libpcap
312 AC_SEARCH_LIBS(getaddrinfo, socket, [dnl
313 AC_MSG_CHECKING(getaddrinfo bug)
314 AC_CACHE_VAL(td_cv_buggygetaddrinfo, [AC_TRY_RUN([
315 #include <sys/types.h>
318 #include <sys/socket.h>
319 #include <netinet/in.h>
323 int passive, gaierr, inet4 = 0, inet6 = 0;
324 struct addrinfo hints, *ai, *aitop;
325 char straddr[INET6_ADDRSTRLEN], strport[16];
327 for (passive = 0; passive <= 1; passive++) {
328 memset(&hints, 0, sizeof(hints));
329 hints.ai_family = AF_UNSPEC;
330 hints.ai_flags = passive ? AI_PASSIVE : 0;
331 hints.ai_socktype = SOCK_STREAM;
332 hints.ai_protocol = IPPROTO_TCP;
333 if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
334 (void)gai_strerror(gaierr);
337 for (ai = aitop; ai; ai = ai->ai_next) {
338 if (ai->ai_addr == NULL ||
339 ai->ai_addrlen == 0 ||
340 getnameinfo(ai->ai_addr, ai->ai_addrlen,
341 straddr, sizeof(straddr), strport, sizeof(strport),
342 NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
345 switch (ai->ai_family) {
347 if (strcmp(strport, "54321") != 0) {
351 if (strcmp(straddr, "0.0.0.0") != 0) {
355 if (strcmp(straddr, "127.0.0.1") != 0) {
362 if (strcmp(strport, "54321") != 0) {
366 if (strcmp(straddr, "::") != 0) {
370 if (strcmp(straddr, "::1") != 0) {
387 /* another family support? */
393 /* supported family should be 2, unsupported family should be 0 */
394 if (!(inet4 == 0 || inet4 == 2))
396 if (!(inet6 == 0 || inet6 == 2))
409 td_cv_buggygetaddrinfo=no,
410 td_cv_buggygetaddrinfo=yes,
411 td_cv_buggygetaddrinfo=yes)])
412 if test "$td_cv_buggygetaddrinfo" = no; then
418 if test "$td_cv_buggygetaddrinfo" = "yes"; then
420 # XXX - it doesn't appear that "ipv6type" can ever be
421 # set to "linux". Should this be testing for
422 # "linux-glibc", or for that *or* "linux-libinet6"?
423 # If the latter, note that "linux-libinet6" is also
424 # the type given to some non-Linux OSes.
426 if test "$ipv6type" != "linux"; then
427 echo 'Fatal: You must get working getaddrinfo() function.'
428 echo ' or you can specify "--disable-ipv6"'.
431 echo 'Warning: getaddrinfo() implementation on your system seems be buggy.'
432 echo ' Better upgrade your system library to newest version'
433 echo ' of GNU C library (aka glibc).'
437 AC_REPLACE_FUNCS(getaddrinfo getnameinfo)
440 AC_CACHE_CHECK([for dnet_htoa declaration in netdnet/dnetdb.h],
441 [td_cv_decl_netdnet_dnetdb_h_dnet_htoa],
442 [AC_EGREP_HEADER(dnet_htoa, netdnet/dnetdb.h,
443 td_cv_decl_netdnet_dnetdb_h_dnet_htoa=yes,
444 td_cv_decl_netdnet_dnetdb_h_dnet_htoa=no)])
445 if test "$td_cv_decl_netdnet_dnetdb_h_dnet_htoa" = yes; then
446 AC_DEFINE(HAVE_NETDNET_DNETDB_H_DNET_HTOA)
450 dnl check sizeof basic types.
451 dnl They're very likely to be wrong for cross-compiling.
452 AC_CHECK_SIZEOF(char, 1)
453 AC_CHECK_SIZEOF(short, 2)
454 AC_CHECK_SIZEOF(int, 4)
455 AC_CHECK_SIZEOF(long, 4)
456 AC_CHECK_SIZEOF(long long, 8)
459 dnl Checks for u_intXX_t
460 dnl AC_CHECK_BITTYPES(ac_cv_bittypes)
461 dnl if test "$ac_cv_bittypes" = no; then
462 dnl missing_includes=yes
466 dnl Checks for addrinfo structure
467 AC_STRUCT_ADDRINFO(ac_cv_addrinfo)
468 if test "$ac_cv_addrinfo" = no; then
473 dnl Checks for NI_MAXSERV
474 AC_NI_MAXSERV(ac_cv_maxserv)
475 if test "$ac_cv_maxserv" = no; then
480 dnl Checks for NI_NAMEREQD
481 AC_NI_NAMEREQD(ac_cv_namereqd)
482 if test "$ac_cv_namereqd" = no; then
487 dnl Checks for sockaddr_storage structure
488 AC_STRUCT_SA_STORAGE(ac_cv_sa_storage)
489 if test "$ac_cv_sa_storage" = no; then
494 dnl Checks for IN[6]ADDRSZ
495 AC_CHECK_ADDRSZ(ac_cv_addrsz)
496 if test "$ac_cv_addrsz" = no; then
501 dnl Checks for RES_USE_INET6
502 AC_CHECK_RES_USE_INET6(ac_cv_res_inet6)
503 if test "$ac_cv_res_inet6" = no; then
508 dnl Checks for res_state_ext structure
509 AC_STRUCT_RES_STATE_EXT(ac_cv_res_state_ext)
510 if test "$ac_cv_res_state_ext" = no; then
515 dnl Checks if res_state structure has nsort member.
516 AC_STRUCT_RES_STATE(ac_cv_res_state)
519 AC_REPLACE_FUNCS(vfprintf strcasecmp strlcat strlcpy strdup strsep)
520 AC_CHECK_FUNCS(strftime)
521 AC_CHECK_FUNCS(setlinebuf alarm)
524 AC_CHECK_FUNCS(vsnprintf snprintf,,
526 if test $needsnprintf = yes; then
532 AC_SEARCH_LIBS(dnet_htoa, dnet, AC_DEFINE(HAVE_DNET_HTOA))
534 AC_CHECK_LIB(rpc, main) dnl It's unclear why we might need -lrpc
536 dnl Some platforms may need -lnsl for getrpcbynumber.
537 AC_SEARCH_LIBS(getrpcbynumber, nsl, AC_DEFINE(HAVE_GETRPCBYNUMBER))
539 dnl AC_CHECK_LIB(z, uncompress)
540 dnl AC_CHECK_HEADERS(zlib.h)
542 AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
545 # Check for these after AC_LBL_LIBPCAP, so we link with the appropriate
546 # libraries (e.g., "-lsocket -lnsl" on Solaris).
548 # We don't use AC_REPLACE_FUNCS because that uses AC_CHECK_FUNCS which
549 # use AC_CHECK_FUNC which doesn't let us specify the right #includes
550 # to make this work on BSD/OS 4.x. BSD/OS 4.x ships with the BIND8
551 # resolver, and the way it defines inet_{ntop,pton} is rather strange;
552 # it does not ship with a libc symbol "inet_ntop()", it ships with
553 # "_inet_ntop()", and has a #define macro in one of the system headers
556 dnl AC_TRY_COMPILE(inet_ntop inet_pton inet_aton)
557 AC_MSG_CHECKING(for inet_ntop)
558 AC_TRY_LINK([#include <sys/types.h>
559 #include <sys/socket.h>
560 #include <netinet/in.h>
561 #include <arpa/inet.h>], [char src[4], dst[128];
562 inet_ntop(AF_INET, src, dst, sizeof(dst));],
563 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
564 AC_LIBOBJ(inet_ntop)])
565 AC_MSG_CHECKING(for inet_pton)
566 AC_TRY_LINK([#include <sys/types.h>
567 #include <sys/socket.h>
568 #include <netinet/in.h>
569 #include <arpa/inet.h>], [char src[128], dst[4];
570 inet_pton(AF_INET, src, dst);],
571 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
572 AC_LIBOBJ(inet_pton)])
573 AC_MSG_CHECKING(for inet_aton)
574 AC_TRY_LINK([#include <sys/types.h>
575 #include <netinet/in.h>
576 #include <arpa/inet.h>], [char src[128];
578 inet_aton(src, &dst);],
579 [AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)
580 AC_LIBOBJ(inet_aton)])
583 # Check for these after AC_LBL_LIBPCAP, for the same reason.
585 # You are in a twisty little maze of UN*Xes, all different.
586 # Some might not have ether_ntohost().
587 # Some might have it, but not declare it in any header file.
588 # Some might have it, but declare it in <netinet/if_ether.h>.
589 # Some might have it, but declare it in <netinet/ether.h>
590 # (And some might have it but document it as something declared in
591 # <netinet/ethernet.h>, although <netinet/if_ether.h> appears to work.)
593 # Before you is a C compiler.
595 AC_CHECK_FUNCS(ether_ntohost, [
596 AC_CACHE_CHECK(for buggy ether_ntohost, ac_cv_buggy_ether_ntohost, [
599 #include <sys/types.h>
600 #include <sys/param.h>
601 #include <sys/socket.h>
604 main(int argc, char **argv)
606 u_char ea[6] = { 0xff, 0xff, 0xff, 0xff, 0xff };
607 char name[MAXHOSTNAMELEN];
609 ether_ntohost(name, (struct ether_addr *)ea);
612 ], [ac_cv_buggy_ether_ntohost=no],
613 [ac_cv_buggy_ether_ntohost=yes],
614 [ac_cv_buggy_ether_ntohost="not while cross-compiling"])])
615 if test "$ac_cv_buggy_ether_ntohost" = "no"; then
616 AC_DEFINE(USE_ETHER_NTOHOST)
619 if test "$ac_cv_func_ether_ntohost" = yes -a \
620 "$ac_cv_buggy_ether_ntohost" = "no"; then
622 # OK, we have ether_ntohost(). Do we have <netinet/if_ether.h>?
624 if test "$ac_cv_header_netinet_if_ether_h" = yes; then
626 # Yes. Does it declare ether_ntohost()?
628 AC_CHECK_DECL(ether_ntohost,
630 AC_DEFINE(NETINET_IF_ETHER_H_DECLARES_ETHER_NTOHOST,,
631 [Define to 1 if netinet/if_ether.h declares `ether_ntohost'])
634 #include <sys/types.h>
635 #include <sys/socket.h>
636 #include <netinet/in.h>
637 #include <arpa/inet.h>
641 #include <netinet/if_ether.h>
647 if test "$ac_cv_have_decl_ether_ntohost" != yes; then
649 # No, how about <netinet/ether.h>, as on Linux?
651 AC_CHECK_HEADERS(netinet/ether.h)
652 if test "$ac_cv_header_netinet_ether_h" = yes; then
654 # We have it - does it declare ether_ntohost()?
655 # Unset ac_cv_have_decl_ether_ntohost so we don't
656 # treat the previous failure as a cached value and
657 # suppress the next test.
659 unset ac_cv_have_decl_ether_ntohost
660 AC_CHECK_DECL(ether_ntohost,
662 AC_DEFINE(NETINET_ETHER_H_DECLARES_ETHER_NTOHOST,,
663 [Define to 1 if netinet/ether.h declares `ether_ntohost'])
666 #include <netinet/ether.h>
671 # Is ether_ntohost() declared?
673 if test "$ac_cv_have_decl_ether_ntohost" != yes; then
675 # No, we'll have to declare it ourselves.
676 # Do we have "struct ether_addr"?
678 AC_CHECK_TYPES(struct ether_addr,,,
680 #include <sys/types.h>
681 #include <sys/socket.h>
682 #include <netinet/in.h>
683 #include <arpa/inet.h>
687 #include <netinet/if_ether.h>
689 AC_DEFINE(HAVE_DECL_ETHER_NTOHOST, 0,
690 [Define to 1 if you have the declaration of `ether_ntohost', and to 0 if you
693 AC_DEFINE(HAVE_DECL_ETHER_NTOHOST, 1,
694 [Define to 1 if you have the declaration of `ether_ntohost', and to 0 if you
699 # libdlpi is needed for Solaris 11 and later.
700 AC_CHECK_LIB(dlpi, dlpi_walk, LIBS="$LIBS -ldlpi" LDFLAGS="-L/lib $LDFLAGS", ,-L/lib)
702 dnl portability macros for getaddrinfo/getnameinfo
705 AC_CHECK_SA_LEN(ac_cv_sockaddr_has_sa_len)
706 if test "$ac_cv_sockaddr_has_sa_len" = no; then
711 # Do we have the new open API? Check for pcap_create, and assume that,
712 # if we do, we also have pcap_activate() and the other new routines.
713 AC_CHECK_FUNCS(pcap_create)
715 AC_CHECK_FUNCS(pcap_findalldevs pcap_dump_flush pcap_lib_version)
716 if test $ac_cv_func_pcap_findalldevs = "yes" ; then
717 dnl Check for Mac OS X, which may ship pcap.h from 0.6 but libpcap may
718 dnl be 0.8; this means that lib has pcap_findalldevs but header doesn't
720 savedppflags="$CPPLAGS"
721 CPPFLAGS="$CPPFLAGS $V_INCLS"
722 AC_CHECK_TYPES(pcap_if_t, , , [#include <pcap.h>])
723 CPPFLAGS="$savedcppflags"
726 if test $ac_cv_func_pcap_lib_version = "no" ; then
727 AC_MSG_CHECKING(whether pcap_version is defined by libpcap)
730 extern char pcap_version[];
732 return (int)pcap_version;
734 ac_lbl_cv_pcap_version_defined=yes,
735 ac_lbl_cv_pcap_version_defined=no)
736 if test "$ac_lbl_cv_pcap_version_defined" = yes ; then
738 AC_DEFINE(HAVE_PCAP_VERSION)
743 AC_MSG_CHECKING(whether pcap_debug is defined by libpcap)
746 extern int pcap_debug;
750 ac_lbl_cv_pcap_debug_defined=yes,
751 ac_lbl_cv_pcap_debug_defined=no)
752 if test "$ac_lbl_cv_pcap_debug_defined" = yes ; then
754 AC_DEFINE(HAVE_PCAP_DEBUG)
758 # OK, what about "yydebug"?
760 AC_MSG_CHECKING(whether yydebug is defined by libpcap)
767 ac_lbl_cv_yydebug_defined=yes,
768 ac_lbl_cv_yydebug_defined=no)
769 if test "$ac_lbl_cv_yydebug_defined" = yes ; then
771 AC_DEFINE(HAVE_YYDEBUG)
776 AC_REPLACE_FUNCS(bpf_dump) dnl moved to libpcap in 0.6
779 if test -f /etc/group -a ! -z "`grep '^wheel:' /etc/group`" ; then
785 dnl Workaround to enable certain features
802 if test -f /dev/bpf0 ; then
807 # Check for some headers introduced in later versions of libpcap
808 # and used by some printers.
810 savedcppflags="$CPPFLAGS"
811 CPPFLAGS="$CPPFLAGS $V_INCLS"
812 AC_CHECK_HEADERS(pcap/bluetooth.h)
813 CPPFLAGS="$savedcppflags"
815 AC_CHECK_HEADERS(sys/bitypes.h)
817 AC_CHECK_TYPE([int8_t], ,
818 [AC_DEFINE([int8_t], [signed char],
819 [Define to `signed char' if int8_t not defined.])])
820 AC_CHECK_TYPE([u_int8_t], ,
821 [AC_DEFINE([u_int8_t], [unsigned char],
822 [Define to `unsigned char' if u_int8_t not defined.])],
824 #ifdef HAVE_SYS_BITYPES_H
825 #include <sys/bitypes.h>
827 AC_CHECK_TYPE([int16_t], ,
828 [AC_DEFINE([int16_t], [short],
829 [Define to `short' if int16_t not defined.])])
830 AC_CHECK_TYPE([u_int16_t], ,
831 [AC_DEFINE([u_int16_t], [unsigned short],
832 [Define to `unsigned short' if u_int16_t not defined.])],
834 #ifdef HAVE_SYS_BITYPES_H
835 #include <sys/bitypes.h>
837 AC_CHECK_TYPE([int32_t], ,
838 [AC_DEFINE([int32_t], [int],
839 [Define to `int' if int32_t not defined.])])
840 AC_CHECK_TYPE([u_int32_t], ,
841 [AC_DEFINE([u_int32_t], [unsigned int],
842 [Define to `unsigned int' if u_int32_t not defined.])],
844 #ifdef HAVE_SYS_BITYPES_H
845 #include <sys/bitypes.h>
847 AC_CHECK_TYPE([int64_t], ,
848 [AC_DEFINE([int64_t], [long long],
849 [Define to `long long' if int64_t not defined.])])
850 AC_CHECK_TYPE([u_int64_t], ,
851 [AC_DEFINE([u_int64_t], [unsigned long long],
852 [Define to `unsigned long long' if u_int64_t not defined.])],
854 #ifdef HAVE_SYS_BITYPES_H
855 #include <sys/bitypes.h>
859 # We can't just check for <inttypes.h> - some systems have one that
860 # doesn't define all the PRI[doxu]64 macros.
862 AC_CHECK_HEADERS(inttypes.h,
865 # OK, we have inttypes.h, but does it define those macros?
867 AC_MSG_CHECKING([[whether inttypes.h defines the PRI[doxu]64 macros]])
872 #include <inttypes.h>
874 #include <sys/types.h>
875 #ifdef HAVE_SYS_BITYPES_H
876 #include <sys/bitypes.h>
881 printf("%" PRId64 "\n", (u_int64_t)1);
882 printf("%" PRIo64 "\n", (u_int64_t)1);
883 printf("%" PRIx64 "\n", (u_int64_t)1);
884 printf("%" PRIu64 "\n", (u_int64_t)1);
890 ac_lbl_inttypes_h_defines_formats=yes
894 ac_lbl_inttypes_h_defines_formats=no
899 # We don't have inttypes.h, so it obviously can't define those
902 ac_lbl_inttypes_h_defines_formats=no
904 if test "$ac_lbl_inttypes_h_defines_formats" = no; then
905 AC_LBL_CHECK_64BIT_FORMAT(l,
907 AC_LBL_CHECK_64BIT_FORMAT(ll,
909 AC_LBL_CHECK_64BIT_FORMAT(L,
911 AC_LBL_CHECK_64BIT_FORMAT(q,
913 AC_MSG_ERROR([neither %llx nor %Lx nor %qx worked on a 64-bit integer])
922 AC_LBL_DEVEL(V_CCOPT)
924 AC_LBL_SOCKADDR_SA_LEN
926 AC_LBL_UNALIGNED_ACCESS
931 AC_MSG_CHECKING(whether to use SSLeay libcrypto)
932 # Specify location for both includes and libraries.
933 want_libcrypto=youmama
935 AS_HELP_STRING([--with-crypto@<:@=PATH@:>@],
936 [use SSLeay libcrypto (located in directory PATH, if supplied). @<:@default=yes, if available@:>@]),
938 if test $withval = no
942 elif test $withval = yes
953 # Use libcrypto if it's present, otherwise don't.
955 want_libcrypto=ifavailable
956 AC_MSG_RESULT([yes, if available])
958 if test "$want_libcrypto" != "no"; then
961 if test "x$crypto_dir" = x; then
963 # Location not specified; check the default locations.
965 AC_MSG_CHECKING(where SSLeay is located)
966 dirs="/usr /usr/local /usr/local/ssl /usr/pkg"
967 if test "x${host_alias}" != x; then
968 dirs="/usr/${host_alias} $dirs"
973 if test "$ac_cv_ssleay_path" != "no" -a "$incdir" != "no"; then
980 if test "$ac_cv_ssleay_path" != no; then
981 AC_MSG_RESULT($ac_cv_ssleay_path)
984 AC_MSG_CHECKING(for SSLeay in $crypto_dir)
985 AC_LBL_SSLEAY($crypto_dir)
986 if test "$ac_cv_ssleay_path" != no; then
990 if test "$ac_cv_ssleay_path" != no; then
991 V_INCLS="$V_INCLS $incdir"
992 LDFLAGS="-L$dir/lib $LDFLAGS"
993 if test -f $ac_cv_ssleay_path/lib/libRSAglue.a; then
994 LIBS="$LIBS -lRSAglue"
996 if test -f $ac_cv_ssleay_path/lib/librsaref.a; then
997 LIBS="$LIBS -lrsaref"
999 AC_CHECK_LIB(crypto, DES_cbc_encrypt)
1001 CPPFLAGS="$CPPFLAGS $V_INCLS"
1002 AC_CHECK_HEADERS(openssl/evp.h)
1005 # Not found. Did the user explicitly ask for it?
1007 AC_MSG_RESULT(not found)
1008 if test "$want_libcrypto" = yes; then
1009 AC_MSG_ERROR(SSLeay not found)
1015 dnl set additional include path if necessary
1016 if test "$missing_includes" = "yes"; then
1017 CPPFLAGS="$CPPFLAGS -I\$(srcdir)/missing"
1018 V_INCLS="$V_INCLS -I\$(srcdir)/missing"
1030 AC_CONFIG_HEADER(config.h)
1032 AC_OUTPUT_COMMANDS([if test -f .devel; then
1033 echo timestamp > stamp-h
1034 cat Makefile-devel-adds >> Makefile