File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libnet / configure.in
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:14:23 2012 UTC (12 years, 4 months ago) by misho
Branches: libnet, MAIN
CVS tags: v1_1_2_1, HEAD
libnet

    1: dnl $Id: configure.in,v 1.1.1.1 2012/02/21 22:14:23 misho 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>