1dnl 2dnl configure.in 3dnl 4dnl Copyright (c) 2001 Dug Song <dugsong@monkey.org> 5dnl 6dnl $Id: configure.in,v 1.18 2002/04/13 05:20:49 dugsong Exp $ 7 8AC_INIT(fragroute.c) 9 10AM_INIT_AUTOMAKE(fragroute, 1.2) 11AM_CONFIG_HEADER(config.h) 12 13dnl Initialize prefix. 14if test "$prefix" = "NONE"; then 15 prefix="/usr/local" 16fi 17 18dnl Checks for programs. 19AC_PROG_AWK 20AC_PROG_CC 21AC_PROG_INSTALL 22AC_PROG_LN_S 23AC_PROG_RANLIB 24 25dnl XXX - we need MingW32 under Cygwin for win32 26AC_CYGWIN 27if test "$CYGWIN" = yes ; then 28 if test -d /usr/include/mingw; then 29 CPPFLAGS="$CPPFLAGS -mno-cygwin" 30 CFLAGS="$CFLAGS -mno-cygwin" 31 AC_DEFINE(WIN32_LEAN_AND_MEAN, 1, 32 [Define for faster code generation.]) 33 AC_DEFINE(snprintf, _snprintf, [Use MingW32's internal snprintf]) 34 AC_DEFINE(vsnprintf, _vsnprintf, [Use MingW32's internal vsnprintf]) 35 else 36 AC_MSG_ERROR([need MingW32 package to build under Cygwin]) 37 fi 38 dnl XXX - use our internal event-win32 hack 39 EVENTINC="-I${srcdir}/win32" 40 LIBOBJS="$LIBOBJS event-win32.o" 41 AC_SUBST(EVENTINC) 42 43else 44dnl XXX - BEGIN !CYGWIN 45 46AC_LBL_LIBRARY_NET 47 48dnl Checks for libevent 49AC_MSG_CHECKING(for libevent) 50AC_ARG_WITH(libevent, 51[ --with-libevent=DIR use libevent in DIR], 52[ case "$withval" in 53 yes|no) 54 AC_MSG_RESULT(no) 55 ;; 56 *) 57 AC_MSG_RESULT($withval) 58 if test -f $withval/include/event.h -a -f $withval/lib/libevent.a; then 59 owd=`pwd` 60 if cd $withval; then withval=`pwd`; cd $owd; fi 61 EVENTINC="-I$withval/include" 62 EVENTLIB="-L$withval/lib -levent" 63 elif test -f $withval/event.h -a -f $withval/libevent.a; then 64 owd=`pwd` 65 if cd $withval; then withval=`pwd`; cd $owd; fi 66 EVENTINC="-I$withval" 67 EVENTLIB="-L$withval -levent" 68 else 69 AC_ERROR(event.h or libevent.a not found in $withval) 70 fi 71 ;; 72 esac ], 73[ if test -f ${prefix}/include/event.h -a -f ${prefix}/lib/libevent.a; then 74 EVENTINC="-I${prefix}/include" 75 EVENTLIB="-L${prefix}/lib -levent" 76 else 77 AC_MSG_RESULT(no) 78 AC_ERROR(libevent not found) 79 fi 80 AC_MSG_RESULT(yes) ] 81) 82AC_SUBST(EVENTINC) 83AC_SUBST(EVENTLIB) 84 85dnl XXX - END !CYGWIN 86fi 87 88dnl Checks for libpcap 89AC_MSG_CHECKING(for libpcap) 90AC_ARG_WITH(libpcap, 91[ --with-libpcap=DIR use libpcap in DIR], 92[ case "$withval" in 93 yes|no) 94 AC_MSG_RESULT(no) 95 ;; 96 *) 97 AC_MSG_RESULT($withval) 98 if test -f $withval/pcap.h -a -f $withval/libpcap.a; then 99 owd=`pwd` 100 if cd $withval; then withval=`pwd`; cd $owd; fi 101 PCAPINC="-I$withval -I$withval/bpf" 102 PCAPLIB="-L$withval -lpcap" 103 elif test -f $withval/include/pcap.h -a \ 104 -f $withval/include/net/bpf.h; then 105 owd=`pwd` 106 if cd $withval; then withval=`pwd`; cd $owd; fi 107 PCAPINC="-I$withval/include" 108 if test -f $withval/lib/libwpcap.a; then 109 PCAPLIB="-L$withval/lib -lwpcap" 110 else 111 PCAPLIB="-L$withval/lib -lpcap" 112 fi 113 else 114 AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval) 115 fi 116 ;; 117 esac ], 118[ if test -f ${prefix}/include/pcap.h; then 119 PCAPINC="-I${prefix}/include" 120 if test -f ${prefix}/lib/libwpcap.a; then 121 PCAPLIB="-L${prefix}/lib -lwpcap" 122 else 123 PCAPLIB="-L${prefix}/lib -lpcap" 124 fi 125 elif test -f /usr/include/pcap/pcap.h; then 126 PCAPINC="-I/usr/include/pcap" 127 PCAPLIB="-lpcap" 128 elif test -f /usr/include/pcap.h; then 129 PCAPLIB="-lpcap" 130 else 131 AC_MSG_RESULT(no) 132 AC_ERROR(libpcap not found) 133 fi 134 AC_MSG_RESULT(yes) ] 135) 136AC_SUBST(PCAPINC) 137AC_SUBST(PCAPLIB) 138 139dnl Checks for (installed) libdnet 140AC_MSG_CHECKING(for libdnet) 141AC_ARG_WITH(libdnet, 142[ --with-libdnet=DIR use libdnet in DIR], 143[ case "$withval" in 144 yes|no) 145 AC_MSG_RESULT(no) 146 ;; 147 *) 148 AC_MSG_RESULT($withval) 149 if test -f $withval/src/libdnet.a; then 150 DNETINC="-I$withval/include" 151 DNETLIB="-L$withval/src -ldnet `$withval/dnet-config --libs`" 152 elif test -x $withval/bin/dnet-config; then 153 DNETINC="`$withval/bin/dnet-config --cflags`" 154 DNETLIB="`$withval/bin/dnet-config --libs`" 155 else 156 AC_ERROR(dnet-config not found in $withval/bin) 157 fi 158 ;; 159 esac ], 160[ if test -x ${prefix}/bin/dnet-config; then 161 DNETINC="`${prefix}/bin/dnet-config --cflags`" 162 DNETLIB="`${prefix}/bin/dnet-config --libs`" 163 else 164 AC_MSG_RESULT(no) 165 AC_ERROR(libdnet not found) 166 fi 167 AC_MSG_RESULT(yes) ] 168) 169AC_SUBST(DNETINC) 170AC_SUBST(DNETLIB) 171 172dnl Check for tunnel interface 173AC_MSG_CHECKING(for tunnel interface) 174if test -c /dev/ip -a -c /dev/tun -a -f /usr/include/net/if_tun.h; then 175 AC_MSG_RESULT(Universal TUN/TAP driver on Solaris) 176 LIBOBJS="$LIBOBJS tun-solaris.o" 177elif test "$CYGWIN" = yes ; then 178 AC_MSG_RESULT(win32 - assume CIPE driver is installed) 179 LIBOBJS="$LIBOBJS tun-win32.o" 180else 181 AC_MSG_RESULT(using loopback) 182 LIBOBJS="$LIBOBJS tun-loop.o" 183fi 184 185dnl Checks for header files. 186AC_HEADER_STDC 187AC_CHECK_HEADERS(fcntl.h inttypes.h malloc.h stdint.h strings.h) 188AC_CHECK_HEADERS(sys/ioctl.h sys/time.h unistd.h) 189AC_CHECK_HEADERS(windows.h winsock.h) 190 191dnl Checks for typedefs, structures, and compiler characteristics. 192AC_C_CONST 193AC_TYPE_OFF_T 194AC_TYPE_SIZE_T 195AC_HEADER_TIME 196AC_STRUCT_TM 197AC_PROG_GCC_TRADITIONAL 198if test "$GCC" = yes; then 199 CFLAGS="$CFLAGS -Wall" 200fi 201 202dnl Checks for library functions. 203AC_TYPE_SIGNAL 204AC_CHECK_FUNCS(arc4random gettimeofday select strdup) 205AC_REPLACE_FUNCS(getopt strlcat strlcpy) 206 207dnl Set system-wide configuration file. 208FRAGROUTE_CONF=`eval echo ${sysconfdir}/fragroute.conf` 209AC_SUBST(FRAGROUTE_CONF) 210AC_DEFINE_UNQUOTED(FRAGROUTE_CONF, "$FRAGROUTE_CONF", 211 [Location of configuration file.]) 212 213AC_OUTPUT(Makefile scripts/Makefile win32/Makefile fragroute.8) 214