dnl @(#) $Header$ (LBL) dnl dnl Copyright (c) 1994, 1995, 1996, 1997 dnl The Regents of the University of California. All rights reserved. dnl dnl Process this file with autoconf to produce a configure script. dnl AC_INIT(tcpdump.c) AC_CANONICAL_SYSTEM umask 002 if test -z "$PWD" ; then PWD=`pwd` fi AC_LBL_C_INIT(V_CCOPT, V_INCLS) AC_CHECK_HEADERS(fcntl.h malloc.h memory.h rpc/rpcent.h) AC_HEADER_TIME case "$target_os" in linux*) AC_MSG_CHECKING(Linux kernel version) AC_CACHE_VAL(ac_cv_linux_vers, ac_cv_linux_vers=`uname -r 2>&1 | \ sed -n -e '$s/.* //' -e '$s/\..*//p'`) AC_MSG_RESULT($ac_cv_linux_vers) if test $ac_cv_linux_vers -lt 2 ; then AC_MSG_ERROR(version 2 or higher required; see the INSTALL doc for more info) fi AC_DEFINE(HAVE_NET_SLIP_H) ;; *) AC_CHECK_HEADERS(net/slip.h) ;; esac AC_REPLACE_FUNCS(vfprintf strcasecmp) AC_CHECK_FUNCS(ether_ntoa setlinebuf) dnl The following generates a warning from autoconf... AC_C_BIGENDIAN AC_CHECK_LIB(dnet, main) AC_CHECK_LIB(rpc, main) AC_CHECK_LIB(pcap, main) AC_LBL_TYPE_SIGNAL V_GROUP=0 if test -f /etc/group -a ! -z "`grep '^wheel:' /etc/group`" ; then V_GROUP=wheel fi case "$target_os" in aix*) dnl Workaround to enable certain features AC_DEFINE(_SUN) ;; irix*) V_GROUP=sys ;; linux*) V_INCLS="$V_INCLS -I\$(srcdir)/linux-include" ;; osf*) V_GROUP=system dnl Workaround around ip_hl vs. ip_vhl problem in netinet/ip.h AC_DEFINE(__STDC__,2) ;; solaris*) V_GROUP=sys ;; esac if test -f /dev/bpf0 ; then V_GROUP=bpf fi AC_LBL_CHECK_TYPE(int32_t, int) AC_LBL_CHECK_TYPE(u_int32_t, u_int) AC_LBL_DEVEL(V_CCOPT) AC_LBL_SOCKADDR_SA_LEN AC_MSG_CHECKING(if ether_header uses ether_addr structs) AC_CACHE_VAL(ac_cv_ether_header_has_ea, LBL_SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $V_INCLS" AC_TRY_COMPILE([ # include # if __STDC__ /* osf3 has REALLY good prototyes */ struct mbuf; struct rtentry; # endif # include # include # include # include ], [u_int i = sizeof(((struct ether_header *)0)->ether_dhost.ether_addr_octet)], ac_cv_ether_header_has_ea=yes, ac_cv_ether_header_has_ea=no) CFLAGS="$LBL_SAVE_CFLAGS") AC_MSG_RESULT($ac_cv_ether_header_has_ea) if test $ac_cv_ether_header_has_ea = yes ; then AC_DEFINE(ETHER_HEADER_HAS_EA) fi AC_MSG_CHECKING(if ether_arp uses ether_addr structs) AC_CACHE_VAL(ac_cv_ether_arp_has_ea, LBL_SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $V_INCLS" AC_TRY_COMPILE([ # include # if __STDC__ /* osf3 has REALLY good prototyes */ struct mbuf; struct rtentry; # endif # include # include # include # include ], [u_int i = sizeof(((struct ether_arp *)0)->arp_sha.ether_addr_octet)], ac_cv_ether_arp_has_ea=yes, ac_cv_ether_arp_has_ea=no) CFLAGS="$LBL_SAVE_CFLAGS") AC_MSG_RESULT($ac_cv_ether_arp_has_ea) if test $ac_cv_ether_arp_has_ea = yes ; then AC_DEFINE(ETHER_ARP_HAS_EA) fi AC_MSG_CHECKING(if ether_arp uses erp_xsha member) AC_CACHE_VAL(ac_cv_struct_ether_arp_x, LBL_SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $V_INCLS" AC_TRY_COMPILE([ # include # include # if __STDC__ /* osf3 has REALLY good prototyes */ struct mbuf; struct rtentry; # endif # include # include # include ], [u_int i = sizeof( ((struct ether_arp *)0)->arp_xsha)], ac_cv_struct_ether_arp_x=yes, ac_cv_struct_ether_arp_x=no) CFLAGS="$LBL_SAVE_CFLAGS") AC_MSG_RESULT($ac_cv_struct_ether_arp_x) if test $ac_cv_struct_ether_arp_x = yes ; then AC_DEFINE(ETHER_ARP_HAS_X) fi dnl Does not work on cross compiles, so just assume dnl AC_LBL_UNALIGNED_ACCESS AC_DEFINE(LBL_ALIGN) if test "${srcdir}" = "." ; then srcdirprefix="" else srcdirprefix="./" fi if test -r ${srcdirprefix}lbl/gnuc.h ; then rm -f gnuc.h ln -s ${srcdirprefix}lbl/gnuc.h gnuc.h fi AC_SUBST(V_CCOPT) AC_SUBST(V_GROUP) AC_SUBST(V_INCLS) AC_SUBST(V_PCAPDEP) AC_PROG_INSTALL AC_OUTPUT(Makefile) if test -f .devel ; then make depend fi exit 0