Annotation of embedaddon/libnet/configure.in, revision 1.1.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>