summaryrefslogtreecommitdiffstats
path: root/contrib/tcpdump/configure.in
diff options
context:
space:
mode:
authorfenner <fenner@FreeBSD.org>2000-01-30 00:45:58 +0000
committerfenner <fenner@FreeBSD.org>2000-01-30 00:45:58 +0000
commit54c4a9c9f2aca2e032cbf41f5eb012e2e9628dd4 (patch)
treed25e1fd8c818bfce397a4c7e3f2c66229c814b2a /contrib/tcpdump/configure.in
parent0c669098d078c88cf703bade2263846b39e01d83 (diff)
downloadFreeBSD-src-54c4a9c9f2aca2e032cbf41f5eb012e2e9628dd4.zip
FreeBSD-src-54c4a9c9f2aca2e032cbf41f5eb012e2e9628dd4.tar.gz
Virgin import of tcpdump.org tcpdump v3.5
Diffstat (limited to 'contrib/tcpdump/configure.in')
-rwxr-xr-xcontrib/tcpdump/configure.in484
1 files changed, 475 insertions, 9 deletions
diff --git a/contrib/tcpdump/configure.in b/contrib/tcpdump/configure.in
index f2a2126..6161766 100755
--- a/contrib/tcpdump/configure.in
+++ b/contrib/tcpdump/configure.in
@@ -1,4 +1,4 @@
-dnl @(#) $Header: configure.in,v 1.71 97/07/27 22:17:59 leres Exp $ (LBL)
+dnl @(#) $Header: /tcpdump/master/tcpdump/configure.in,v 1.87.2.4 2000/01/25 18:39:02 itojun Exp $ (LBL)
dnl
dnl Copyright (c) 1994, 1995, 1996, 1997
dnl The Regents of the University of California. All rights reserved.
@@ -17,6 +17,7 @@ if test -z "$PWD" ; then
fi
AC_LBL_C_INIT(V_CCOPT, V_INCLS)
+AC_C_INLINE
AC_CHECK_HEADERS(fcntl.h malloc.h memory.h rpc/rpcent.h)
AC_HEADER_TIME
@@ -40,14 +41,404 @@ linux*)
;;
esac
+
+AC_CHECK_HEADERS(smi.h)
+AC_CHECK_LIB(smi, main)
+AC_MSG_CHECKING([whether to enable libsmi])
+ AC_TRY_RUN([ /* libsmi available check */
+#include <smi.h>
+main()
+{
+ if (smiInit(""))
+ exit(1);
+ else
+ exit(0);
+}
+],
+[ AC_MSG_RESULT(yes)
+ AC_DEFINE(LIBSMI)
+ libsmi=yes],
+[ AC_MSG_RESULT(no)
+ libsmi=no]
+)
+
+
+CFLAGS="$CFLAGS -Dss_family=__ss_family -Dss_len=__ss_len"
+AC_MSG_CHECKING([whether to enable ipv6])
+AC_ARG_ENABLE(ipv6,
+[ --enable-ipv6 enable ipv6 (with ipv4) support
+ --disable-ipv6 disable ipv6 support],
+[ case "$enableval" in
+yes) AC_MSG_RESULT(yes)
+ AC_DEFINE(ENABLE_IPV6)
+ LOCALSRC="print-ip6.c print-ip6opts.c print-ripng.c print-icmp6.c print-frag6.c print-rt6.c print-ospf6.c print-dhcp6.c $LOCALSRC"
+ AC_DEFINE(INET6)
+ ipv6=yes
+ ;;
+*)
+ AC_MSG_RESULT(no)
+ ipv6=no
+ ;;
+ esac ],
+
+ AC_TRY_RUN([ /* AF_INET6 available check */
+#include <sys/types.h>
+#include <sys/socket.h>
+main()
+{
+ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
+ exit(1);
+ else
+ exit(0);
+}
+],
+[ AC_MSG_RESULT(yes)
+ AC_DEFINE(ENABLE_IPV6)
+ LOCALSRC="print-ip6.c print-ip6opts.c print-ripng.c print-icmp6.c print-frag6.c print-rt6.c print-ospf6.c print-dhcp6.c $LOCALSRC"
+ AC_DEFINE(INET6)
+ ipv6=yes],
+[ AC_MSG_RESULT(no)
+ ipv6=no],
+[ AC_MSG_RESULT(no)
+ ipv6=no]
+))
+
+ipv6type=unknown
+ipv6lib=none
+ipv6trylibc=no
+
+if test "$ipv6" = "yes"; then
+ AC_MSG_CHECKING([ipv6 stack type])
+ for i in inria kame linux-glibc linux-libinet6 toshiba v6d zeta; do
+ case $i in
+ inria)
+ dnl http://www.kame.net/
+ AC_EGREP_CPP(yes, [dnl
+#include <netinet/in.h>
+#ifdef IPV6_INRIA_VERSION
+yes
+#endif],
+ [ipv6type=$i;
+ CFLAGS="-DINET6 $CFLAGS"])
+ ;;
+ kame)
+ dnl http://www.kame.net/
+ AC_EGREP_CPP(yes, [dnl
+#include <netinet/in.h>
+#ifdef __KAME__
+yes
+#endif],
+ [ipv6type=$i;
+ ipv6lib=inet6;
+ ipv6libdir=/usr/local/v6/lib;
+ ipv6trylibc=yes;
+ CFLAGS="-DINET6 $CFLAGS"])
+ ;;
+ linux-glibc)
+ dnl http://www.v6.linux.or.jp/
+ AC_EGREP_CPP(yes, [dnl
+#include <features.h>
+#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+yes
+#endif],
+ [ipv6type=$i;
+ CFLAGS="-DINET6 $CFLAGS"])
+ ;;
+ linux-libinet6)
+ dnl http://www.v6.linux.or.jp/
+ if test -d /usr/inet6 -o -f /usr/include/netinet/ip6.h; then
+ ipv6type=$i
+ ipv6lib=inet6
+ ipv6libdir=/usr/inet6/lib
+ ipv6trylibc=yes;
+ CFLAGS="-DINET6 -I/usr/inet6/include $CFLAGS"
+ fi
+ ;;
+ toshiba)
+ AC_EGREP_CPP(yes, [dnl
+#include <sys/param.h>
+#ifdef _TOSHIBA_INET6
+yes
+#endif],
+ [ipv6type=$i;
+ ipv6lib=inet6;
+ ipv6libdir=/usr/local/v6/lib;
+ CFLAGS="-DINET6 $CFLAGS"])
+ ;;
+ v6d)
+ AC_EGREP_CPP(yes, [dnl
+#include </usr/local/v6/include/sys/v6config.h>
+#ifdef __V6D__
+yes
+#endif],
+ [ipv6type=$i;
+ ipv6lib=v6;
+ ipv6libdir=/usr/local/v6/lib;
+ CFLAGS="-I/usr/local/v6/include $CFLAGS"])
+ ;;
+ zeta)
+ AC_EGREP_CPP(yes, [dnl
+#include <sys/param.h>
+#ifdef _ZETA_MINAMI_INET6
+yes
+#endif],
+ [ipv6type=$i;
+ ipv6lib=inet6;
+ ipv6libdir=/usr/local/v6/lib;
+ CFLAGS="-DINET6 $CFLAGS"])
+ ;;
+ esac
+ if test "$ipv6type" != "unknown"; then
+ break
+ fi
+ done
+ AC_MSG_RESULT($ipv6type)
+fi
+
+if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
+ if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
+ LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
+ echo "You have $ipv6lib library, using it"
+ else
+ if test "$ipv6trylibc" = "yes"; then
+ echo "You do not have $ipv6lib library, using libc"
+ else
+ echo 'Fatal: no $ipv6lib library found. cannot continue.'
+ echo "You need to fetch lib$ipv6lib.a from appropriate"
+ echo 'ipv6 kit and compile beforehand.'
+ exit 1
+ fi
+ fi
+fi
+
+
+if test "$ipv6" = "yes"; then
+ AC_CHECK_FUNCS(getaddrinfo, [dnl
+ AC_MSG_CHECKING(getaddrinfo bug)
+ AC_TRY_RUN([
+#include <sys/types.h>
+#include <netdb.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+main()
+{
+ int passive, gaierr, inet4 = 0, inet6 = 0;
+ struct addrinfo hints, *ai, *aitop;
+ char straddr[INET6_ADDRSTRLEN], strport[16];
+
+ for (passive = 0; passive <= 1; passive++) {
+ memset(&hints, 0, sizeof(hints));
+ hints.ai_family = AF_UNSPEC;
+ hints.ai_flags = passive ? AI_PASSIVE : 0;
+ hints.ai_socktype = SOCK_STREAM;
+ if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
+ (void)gai_strerror(gaierr);
+ goto bad;
+ }
+ for (ai = aitop; ai; ai = ai->ai_next) {
+ if (ai->ai_addr == NULL ||
+ ai->ai_addrlen == 0 ||
+ getnameinfo(ai->ai_addr, ai->ai_addrlen,
+ straddr, sizeof(straddr), strport, sizeof(strport),
+ NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
+ goto bad;
+ }
+ switch (ai->ai_family) {
+ case AF_INET:
+ if (strcmp(strport, "54321") != 0) {
+ goto bad;
+ }
+ if (passive) {
+ if (strcmp(straddr, "0.0.0.0") != 0) {
+ goto bad;
+ }
+ } else {
+ if (strcmp(straddr, "127.0.0.1") != 0) {
+ goto bad;
+ }
+ }
+ inet4++;
+ break;
+ case AF_INET6:
+ if (strcmp(strport, "54321") != 0) {
+ goto bad;
+ }
+ if (passive) {
+ if (strcmp(straddr, "::") != 0) {
+ goto bad;
+ }
+ } else {
+ if (strcmp(straddr, "::1") != 0) {
+ goto bad;
+ }
+ }
+ inet6++;
+ break;
+ case AF_UNSPEC:
+ goto bad;
+ break;
+#ifdef AF_UNIX
+ case AF_UNIX:
+#else
+#ifdef AF_LOCAL
+ case AF_LOCAL:
+#endif
+#endif
+ default:
+ /* another family support? */
+ break;
+ }
+ }
+ }
+
+ /* supported family should be 2, unsupported family should be 0 */
+ if (!(inet4 == 0 || inet4 == 2))
+ goto bad;
+ if (!(inet6 == 0 || inet6 == 2))
+ goto bad;
+
+ if (aitop)
+ freeaddrinfo(aitop);
+ exit(0);
+
+ bad:
+ if (aitop)
+ freeaddrinfo(aitop);
+ exit(1);
+}
+],
+ AC_MSG_RESULT(good)
+ buggygetaddrinfo=no,
+ AC_MSG_RESULT(buggy)
+ buggygetaddrinfo=yes,
+ AC_MSG_RESULT(buggy)
+ buggygetaddrinfo=yes)], [buggygetaddrinfo=yes])
+
+ if test "$buggygetaddrinfo" = "yes"; then
+ if test "$ipv6type" != "linux"; then
+ echo 'Fatal: You must get working getaddrinfo() function.'
+ echo ' or you can specify "--disable-ipv6"'.
+ exit 1
+ else
+ echo 'Warning: getaddrinfo() implementation on your system seems be buggy.'
+ echo ' Better upgreade your system library to newest version'
+ echo ' of GNU C library (aka glibc).'
+ fi
+ fi
+ AC_REPLACE_FUNCS(getaddrinfo getnameinfo)
+fi
+AC_REPLACE_FUNCS(inet_ntop inet_pton inet_aton)
+
+dnl portability macros for getaddrinfo/getnameinfo
+dnl
+dnl Check for sa_len
+AC_CHECK_SA_LEN(ac_cv_sockaddr_has_sa_len)
+if test "$ac_cv_sockaddr_has_sa_len" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl check __P macro
+AC_CHECK_PORTABLE_PROTO(ac_cv_portable_proto)
+if test "$ac_cv_portable_proto" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl check sizeof basic types.
+dnl They're very likely to be wrong for cross-compiling.
+AC_CHECK_SIZEOF(char, 1)
+AC_CHECK_SIZEOF(short, 2)
+AC_CHECK_SIZEOF(int, 4)
+AC_CHECK_SIZEOF(long, 4)
+
+dnl
+dnl Checks for u_intXX_t
+dnl AC_CHECK_BITTYPES(ac_cv_bittypes)
+dnl if test "$ac_cv_bittypes" = no; then
+dnl missing_includes=yes
+dnl fi
+
+dnl
+dnl Checks for addrinfo structure
+AC_STRUCT_ADDRINFO(ac_cv_addrinfo)
+if test "$ac_cv_addrinfo" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for NI_MAXSERV
+AC_NI_MAXSERV(ac_cv_maxserv)
+if test "$ac_cv_maxserv" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for NI_NAMEREQD
+AC_NI_NAMEREQD(ac_cv_namereqd)
+if test "$ac_cv_namereqd" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for sockaddr_storage structure
+AC_STRUCT_SA_STORAGE(ac_cv_sa_storage)
+if test "$ac_cv_sa_storage" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for IN[6]ADDRSZ
+AC_CHECK_ADDRSZ(ac_cv_addrsz)
+if test "$ac_cv_addrsz" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for RES_USE_INET6
+AC_CHECK_RES_USE_INET6(ac_cv_res_inet6)
+if test "$ac_cv_res_inet6" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks for AAAA
+AC_CHECK_AAAA(ac_cv_aaaa)
+if test "$ac_cv_aaaa" = no; then
+ AC_DEFINE(T_AAAA, 28)
+fi
+
+dnl
+dnl Checks for res_state_ext structure
+AC_STRUCT_RES_STATE_EXT(ac_cv_res_state_ext)
+if test "$ac_cv_res_state_ext" = no; then
+ missing_includes=yes
+fi
+
+dnl
+dnl Checks if res_state structure has nsort member.
+AC_STRUCT_RES_STATE(ac_cv_res_state)
+
+dnl
+dnl set additional include path if necessary
+if test "$missing_includes" = "yes"; then
+ CPPFLAGS="$CPPFLAGS -I\$(srcdir)/missing"
+ V_INCLS="$V_INCLS -I\$(srcdir)/missing"
+fi
+
+
AC_REPLACE_FUNCS(vfprintf strcasecmp)
-AC_CHECK_FUNCS(ether_ntoa setlinebuf)
+AC_CHECK_FUNCS(ether_ntohost setlinebuf gethostbyname2)
dnl The following generates a warning from autoconf...
AC_C_BIGENDIAN
AC_CHECK_LIB(dnet, main)
AC_CHECK_LIB(rpc, main)
+AC_CHECK_LIB(z, uncompress)
+AC_CHECK_HEADERS(zlib.h)
AC_LBL_TYPE_SIGNAL
@@ -69,7 +460,7 @@ irix*)
;;
linux*)
- V_INCLS="$V_INCLS -Ilinux-include"
+ V_INCLS="$V_INCLS -I\$(srcdir)/linux-include"
;;
osf*)
@@ -87,6 +478,9 @@ if test -f /dev/bpf0 ; then
V_GROUP=bpf
fi
+AC_LBL_CHECK_TYPE(u_int8_t, u_char)
+AC_LBL_CHECK_TYPE(int16_t, short)
+AC_LBL_CHECK_TYPE(u_int16_t, u_short)
AC_LBL_CHECK_TYPE(int32_t, int)
AC_LBL_CHECK_TYPE(u_int32_t, u_int)
@@ -170,24 +564,96 @@ fi
AC_LBL_UNALIGNED_ACCESS
-if test "${srcdir}" = "." ; then
- srcdirprefix=""
-else
- srcdirprefix="./"
+AC_VAR_H_ERRNO
+
+AC_MSG_CHECKING(for SSLeay)
+ac_cv_ssleay_path=no
+incdir=no
+for dir in /usr/local /usr/local/ssl /usr/pkg; do
+ if test -d $dir/lib -a -f $dir/lib/libcrypto.a; then
+ ac_cv_ssleay_path=$dir
+ fi
+ if test -d $dir/include -a -f $dir/include/des.h; then
+ incdir="-I$dir/include"
+ else
+ if test -d $dir/include/ssleay -a -f $dir/include/ssleay/des.h; then
+ incdir="-I$dir/include/ssleay"
+ elif test -d $dir/include/openssl -a -f $dir/include/openssl/des.h; then
+ incdir="-I$dir/include -I$dir/include/openssl"
+ fi
+ fi
+ if test "$ac_cv_ssleay_path" != "no" -a "$incdir" != "no"; then
+ break;
+ else
+ ac_cv_ssleay_path=no
+ incdir=no
+ fi
+done
+AC_MSG_RESULT($ac_cv_ssleay_path)
+if test "$ac_cv_ssleay_path" != no; then
+ V_INCLS="$V_INCLS $incdir"
+ LIBS="$LIBS -L$dir/lib"
+ if test -f $ac_cv_ssleay_path/lib/libRSAglue.a; then
+ LIBS="$LIBS -lRSAglue"
+ fi
+ if test -f $ac_cv_ssleay_path/lib/librsaref.a; then
+ LIBS="$LIBS -lrsaref"
+ fi
+ AC_CHECK_LIB(crypto, des_cbc_encrypt)
+ AC_DEFINE(CRYPTO)
+
+ bak_CPPFLAGS=$CPPFLAGS
+ CPPFLAGS="$CPPFLAGS $V_INCLS"
+ AC_CHECK_HEADERS(cast.h rc5.h)
+
+ if test "$ac_cv_header_cast_h" = "yes"; then
+ AC_MSG_CHECKING(for buggy CAST128)
+ AC_TRY_RUN(dnl
+[
+#include <cast.h>
+main()
+{
+ unsigned char key[] = {0x01,0x23,0x45,0x67,0x12};
+ unsigned char in[] = {0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF};
+ unsigned char out[sizeof(in)];
+ unsigned char ok[] = {0x7A,0xC8,0x16,0xD1,0x6E,0x9B,0x30,0x2E};
+ CAST_KEY ks;
+ CAST_set_key(&ks, sizeof(key), key);
+ CAST_ecb_encrypt(in, out, &ks, CAST_ENCRYPT);
+ if (memcmp(out, ok, sizeof(ok)) != 0)
+ return 0;
+ else
+ return 1;
+}],
+ [buggy_cast128=yes],
+ [buggy_cast128=no],
+ [buggy_cast128="cross-compiling, assume yes"])
+ AC_MSG_RESULT($buggy_cast128)
+ if test "$buggy_cast128" != no; then
+ echo "NOTE: SSLeay 0.9.0b has a bug in CAST128 en/decoding routine."
+ echo "disabling CAST128 support."
+ AC_DEFINE(HAVE_BUGGY_CAST128)
+ fi
+ fi
+
+ CPPFLAGS=$bak_CPPFLAGS
fi
-if test -r ${srcdirprefix}lbl/gnuc.h ; then
+if test -r ${srcdir}/lbl/gnuc.h ; then
rm -f gnuc.h
- ln -s ${srcdirprefix}lbl/gnuc.h gnuc.h
+ ln -s ${srcdir}/lbl/gnuc.h gnuc.h
fi
AC_SUBST(V_CCOPT)
AC_SUBST(V_GROUP)
AC_SUBST(V_INCLS)
AC_SUBST(V_PCAPDEP)
+AC_SUBST(LOCALSRC)
AC_PROG_INSTALL
+AC_CONFIG_HEADER(config.h)
+
AC_OUTPUT(Makefile)
if test -f .devel ; then
OpenPOWER on IntegriCloud