Annotation of embedaddon/libnet/configure.in, revision 1.1

1.1     ! misho       1: dnl $Id: configure.in,v 1.9 2004/03/01 20:26:11 mike Exp $
        !             2: dnl
        !             3: dnl Libnet autoconfiguration information file
        !             4: dnl Copyright (c) 1998 - 2002 Mike D. Schiffman <mike@infonexus.com>
        !             5: dnl All rights reserved.
        !             6: dnl
        !             7: dnl Process this file with autoconf to produce a configure script.
        !             8: 
        !             9: 
        !            10: AC_INIT(src/libnet_build_ip.c)
        !            11: LIBNET_VERSION=`cat VERSION`
        !            12: AC_MSG_RESULT(beginning autoconfiguration process for libnet-$LIBNET_VERSION...)
        !            13: AC_CANONICAL_SYSTEM
        !            14: 
        !            15: AM_INIT_AUTOMAKE(libnet, $LIBNET_VERSION)
        !            16: AM_CONFIG_HEADER(include/config.h)
        !            17: AM_MAINTAINER_MODE
        !            18: 
        !            19: dnl
        !            20: dnl Check for the usual programs
        !            21: dnl
        !            22: AC_PROG_CC
        !            23: AC_PROG_INSTALL
        !            24: AC_PROG_RANLIB
        !            25: 
        !            26: AC_CHECK_HEADERS(sys/sockio.h)
        !            27: 
        !            28: dnl
        !            29: dnl And some custom things
        !            30: dnl
        !            31: 
        !            32: AC_LIBNET_ENDIAN_CHECK
        !            33: AC_LBL_UNALIGNED_ACCESS
        !            34: dnl AC_LBL_LIBRARY_NET
        !            35: 
        !            36: AC_SUBST(ENDIANESS)
        !            37: AC_SUBST(LIBNET_VERSION)
        !            38: AC_SUBST(HAVE_PACKET_SOCKET)
        !            39: AC_SUBST(ADDITIONAL_LIBS)
        !            40: AC_SUBST(LIBNET_CONFIG_DEFINES)
        !            41: AC_SUBST(LIBNET_CONFIG_LIBS)
        !            42: AC_SUBST(LIBNET_CONFIG_CFLAGS)
        !            43: 
        !            44: dnl
        !            45: dnl Check for typedefs, structures, and compiler characteristics
        !            46: dnl
        !            47: AC_PROG_GCC_TRADITIONAL
        !            48: if test "$GCC" = yes ; then
        !            49:     CFLAGS="$CFLAGS -Wall"
        !            50: fi
        !            51: 
        !            52: dnl
        !            53: dnl Set the root install directory
        !            54: dnl
        !            55: AC_PREFIX_DEFAULT(/usr)
        !            56: dnl if test "$prefix" = "NONE"; then
        !            57: dnl     prefix="/usr"
        !            58: dnl fi
        !            59: 
        !            60: dnl
        !            61: dnl Check for library functions.
        !            62: dnl
        !            63: AC_CHECK_FUNCS(strerror)
        !            64: 
        !            65: dnl
        !            66: dnl Get link-layer interface type
        !            67: dnl
        !            68: AC_MSG_CHECKING(link-layer packet interface type)
        !            69: 
        !            70: if test -r /dev/bpf0 ; then
        !            71:     AC_LIBOBJ([libnet_link_bpf])
        !            72:     AC_MSG_RESULT(found bpf)
        !            73: elif test -r /usr/include/net/pfilt.h ; then
        !            74:     AC_LIBOBJ([libnet_link_pf])
        !            75:     AC_MSG_RESULT(found pf)
        !            76: elif test -r /dev/nit ; then
        !            77:     AC_LIBOBJ([libnet_link_snit])
        !            78:     AC_MSG_RESULT(found snit)
        !            79: elif test -r /usr/include/sys/net/nit.h ; then
        !            80:     AC_LIBOBJ([libnet_link_nit])
        !            81:     AC_MSG_RESULT(found nit)
        !            82: elif test -r /usr/include/net/raw.h ; then
        !            83:     AC_LIBOBJ([libnet_link_snoop])
        !            84:     AC_MSG_RESULT(found snoop)
        !            85: elif test -r /usr/include/sys/dlpi.h ; then
        !            86:     AC_LIBOBJ([libnet_link_dlpi])
        !            87:     AC_MSG_RESULT(found dlpi)
        !            88:     AC_DEFINE(HAVE_DLPI)
        !            89: elif test -r /usr/include/linux/socket.h ; then
        !            90:     AC_LIBOBJ([libnet_link_linux])
        !            91:     AC_MSG_RESULT(found linux primitives)
        !            92:     AC_LIBNET_CHECK_PF_PACKET
        !            93:     AC_LIBNET_LINUX_PROCFS
        !            94: elif test -c /dev/bpf0 ; then           # check again in case not readable
        !            95:     AC_LIBOBJ([libnet_link_bpf])
        !            96:     AC_MSG_RESULT(found bpf)
        !            97: elif test -c /dev/nit ; then            # check again in case not readable
        !            98:     AC_LIBOBJ([libnet_link_snit])
        !            99:     AC_MSG_RESULT(found snit)
        !           100: elif test "$target_os" = "cygwin" ; then
        !           101:      AC_LIBOBJ([libnet_link_win32])
        !           102:      AC_MSG_RESULT(found win32 wpcap)
        !           103: else
        !           104:     AC_LIBOBJ([libnet_link_none])
        !           105:     AC_MSG_WARN(could not find a link-layer packet interface)
        !           106:     AC_MSG_WARN(link-layer packet injection will not be available)
        !           107: fi
        !           108: 
        !           109: dnl
        !           110: dnl Inform user about the packet builders we've got
        !           111: dnl
        !           112: echo -n "scanning available packet construction modules: "
        !           113: for dir in src/*build*c ; do
        !           114:     echo $dir | sed -e /src\\/libnet_build_/s/// | sed -e /\\.c/s/// | tr \\n \\040
        !           115: done
        !           116: echo ""
        !           117: 
        !           118: dnl
        !           119: dnl Check and set OS specific parameters
        !           120: dnl
        !           121: 
        !           122: case "$target_os" in
        !           123: 
        !           124: *linux*)
        !           125:     AC_DEFINE(_BSD_SOURCE)
        !           126:     AC_DEFINE(__BSD_SOURCE)
        !           127:     AC_DEFINE(__FAVOR_BSD)
        !           128:     LIBNET_CONFIG_DEFINES="-D_BSD_SOURCE -D__BSD_SOURCE -D__FAVOR_BSD"
        !           129:     AC_CHECK_HEADERS(net/ethernet.h, \
        !           130:         LIBNET_CONFIG_DEFINES="$LIBNET_CONFIG_DEFINES -DHAVE_NET_ETHERNET_H")
        !           131:     ;;
        !           132: 
        !           133: *freebsd*)
        !           134:     AC_DEFINE(LIBNET_BSDISH_OS)
        !           135:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP)
        !           136:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
        !           137:     LIBNET_CONFIG_DEFINES="-DLIBNET_BSDISH_OS -DLIBNET_BSD_BYTE_SWAP -DHAVE_SOCKADDR_SA_LEN"
        !           138:     ;;
        !           139: 
        !           140: *netbsd*)
        !           141:     AC_DEFINE(LIBNET_BSDISH_OS)
        !           142:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP)
        !           143:     LIBNET_CONFIG_DEFINES="-DLIBNET_BSDISH_OS -DLIBNET_BSD_BYTE_SWAP"
        !           144:     ;;
        !           145: 
        !           146: *openbsd*)
        !           147:     AC_DEFINE(LIBNET_BSDISH_OS)
        !           148:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
        !           149:     LIBNET_CONFIG_DEFINES="-DLIBNET_BSDISH_OS"
        !           150:     ;;
        !           151: 
        !           152: *bsdi*)
        !           153:     AC_DEFINE(LIBNET_BSDISH_OS)
        !           154:     AC_DEFINE(LIBNET_BSD_BYTE_SWAP)
        !           155:     LIBNET_CONFIG_DEFINES="-DLIBNET_BSDISH_OS -DLIBNET_BSD_BYTE_SWAP"
        !           156:     ;;
        !           157: 
        !           158: *darwin*)
        !           159:     AC_DEFINE(HAVE_SOCKADDR_SA_LEN)
        !           160:     LIBNET_CONFIG_DEFINES="-DHAVE_SOCKADDR_SA_LEN"
        !           161:     ;;
        !           162: 
        !           163: *solaris*)
        !           164:     AC_DEFINE(HAVE_SOLARIS)
        !           165:     AC_CHECK_HEADERS(sys/bufmod.h sys/dlpi_ext.h)
        !           166:     AC_MSG_CHECKING(for /dev/dlpi device)
        !           167:     if test -c /dev/dlpi; then
        !           168:         AC_MSG_RESULT(yes)
        !           169:         AC_DEFINE(HAVE_DEV_DLPI)
        !           170:     else
        !           171:         AC_MSG_RESULT(no)
        !           172:         dir="/dev/dlpi"
        !           173:         AC_MSG_CHECKING(for $dir directory)
        !           174:         if test -d $dir ; then
        !           175:             AC_MSG_RESULT(yes)
        !           176:             AC_DEFINE_UNQUOTED(DLPI_DEV_PREFIX, "$dir")
        !           177:         else
        !           178:             AC_MSG_RESULT(no)
        !           179:         fi
        !           180:     fi
        !           181:     AC_CHECK_LIB(socket, socket, ,AC_MSG_ERROR(libsocket not found.))
        !           182:     AC_CHECK_LIB(nsl, gethostbyname, ,AC_MSG_ERROR(libnsl not found.))
        !           183: 
        !           184: dnl 
        !           185: dnl Broken checksums?
        !           186: dnl
        !           187:     case "`uname -r`" in
        !           188:     5.4)
        !           189:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
        !           190:         ;;
        !           191:     5.5*)
        !           192:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
        !           193:         ;;
        !           194:     5.8)
        !           195:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
        !           196:        AC_DEFINE(HAVE_SOLARIS_IPV6)
        !           197:         ;;
        !           198:     5.9)
        !           199:         AC_DEFINE(STUPID_SOLARIS_CHECKSUM_BUG)
        !           200:        AC_DEFINE(HAVE_SOLARIS_IPV6)
        !           201:         ;;
        !           202: 
        !           203:     esac
        !           204: 
        !           205:     ADDITIONAL_LIBS='-lsocket -lnsl'
        !           206:     LIBNET_CONFIG_LIBS="$LIBNET_CONFIG_LIBS -lsocket -lnsl"
        !           207:     ;;
        !           208: 
        !           209: *hpux11*)
        !           210:     AC_DEFINE(HAVE_HPUX11)
        !           211:     AC_CHECK_HEADERS(sys/dlpi_ext.h)
        !           212:     ;;
        !           213: 
        !           214: *cygwin*)
        !           215:      AC_DEFINE(LIBNET_BSDISH_OS)
        !           216:      AC_DEFINE(NO_SNPRINTF)
        !           217:      LIBNET_CONFIG_DEFINES="-DLIBNET_BSDISH_OS -DNO_SNPRINTF"
        !           218:      CFLAGS="$CFLAGS -mno-cygwin -O0 -fnative-struct -DNO_SNPRINTF -I/usr/include/pcap"
        !           219:      AC_CHECK_LIB(packet, PacketSetMode, ,AC_MSG_ERROR(packet lib not found.))
        !           220:      AC_CHECK_LIB(wpcap, pcap_setmode, ,AC_MSG_ERROR(pcap lib not found.))
        !           221:      LIBS="$LIBS -lws2_32"
        !           222:      ;;
        !           223: 
        !           224: *)
        !           225:     AC_MSG_WARN(apparently your OS is not officially supported yet)
        !           226:     AC_MSG_WARN(this may not work)
        !           227:     AC_MSG_RESULT(please send diffs to mike@infonexus.com)
        !           228:     ;;
        !           229: 
        !           230: esac
        !           231: 
        !           232: AC_OUTPUT(Makefile src/Makefile include/Makefile \
        !           233:     include/libnet/Makefile sample/Makefile version.h include/libnet.h \
        !           234:     libnet-config, chmod +x libnet-config)
        !           235: dnl EOF

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>