diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 208 |
1 files changed, 208 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a055c11 --- /dev/null +++ b/configure.ac @@ -0,0 +1,208 @@ +# This file is part of IPACCT +# Copyright (c) Sergey Poznyakoff +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +AC_PREREQ(2.53) +AC_INIT(ipacct, 0.2, bug-ipacct@cvs.farlep.net) +AC_CONFIG_SRCDIR(src/ipacct.h) +AC_CANONICAL_SYSTEM +AM_INIT_AUTOMAKE(no-exeext) +AM_CONFIG_HEADER(config.h) + +dnl Checks for programs. +AC_PROG_CC +AC_PROG_YACC +AM_PROG_LEX +AC_PROG_INSTALL +AC_PROG_LN_S +AC_PROG_RANLIB + +dnl Checks for header files. +AC_HEADER_STDC +AC_HEADER_DIRENT +AC_HEADER_SYS_WAIT +AC_CHECK_HEADERS(fcntl.h limits.h malloc.h sys/file.h sys/ioctl.h sys/time.h syslog.h unistd.h malloc.h sys/ioccom.h sys/sockio.h getopt.h) +AC_SUBST(INCLUDES) +AC_CHECK_HEADERS(netinet/if_ether.h netinet/ip_var.h, + [], + [INCLUDES=-I'$(top_srcdir)/libpcap/linux-include'; break]) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_C_INLINE +AC_TYPE_OFF_T +AC_TYPE_PID_T +AC_TYPE_SIZE_T +AC_STRUCT_ST_RDEV +AC_HEADER_TIME +AC_STRUCT_TM + +dnl Check for libraries +AC_CHECK_LIB(socket, main) +AC_CHECK_LIB(nsl, main) + +dnl Checks for library functions. +AC_PROG_GCC_TRADITIONAL +AC_HEADER_MAJOR +AC_FUNC_SETPGRP +AC_TYPE_SIGNAL +AC_FUNC_STRFTIME +AC_FUNC_VFORK +AC_FUNC_VPRINTF +AC_FUNC_WAIT3 +AC_CHECK_FUNCS(ftime gethostname gettimeofday getusershell getwd select socket strdup strerror strtol ether_hostton strerror) + +rad_REPLACE_GNU_GETOPT + +dnl libpcap stuff +dnl All the stuff below has been shamelessly stolen from libpcap-0.4 +dnl configure.in +dnl +dnl Not all versions of test support -c (character special) but it's a +dnl better way of testing since the device might be protected. So we +dnl check in our normal order using -r and then check the for the /dev +dnl guys again using -c. +dnl +AC_SUBST(V_PCAP) +AC_ARG_WITH(pcap, [ --with-pcap=TYPE use packet capture TYPE]) +AC_MSG_CHECKING(packet capture type) +if test ! -z "$with_pcap" ; then + V_PCAP="$withval" +elif test -r /dev/bpf0 ; then + V_PCAP=bpf +elif test -r /usr/include/net/pfilt.h ; then + V_PCAP=pf +elif test -r /dev/enet ; then + V_PCAP=enet +elif test -r /dev/nit ; then + V_PCAP=snit +elif test -r /usr/include/sys/net/nit.h ; then + V_PCAP=nit +elif test -r /usr/include/net/raw.h ; then + V_PCAP=snoop +elif test -r /usr/include/sys/dlpi.h ; then + V_PCAP=dlpi +elif test -r /usr/include/linux/socket.h ; then + V_PCAP=linux +elif test -c /dev/bpf0 ; then # check again in case not readable + V_PCAP=bpf +elif test -c /dev/enet ; then # check again in case not readable + V_PCAP=enet +elif test -c /dev/nit ; then # check again in case not readable + V_PCAP=snit +else + V_PCAP=null +fi +AC_MSG_RESULT($V_PCAP) + +case "$V_PCAP" in + +dlpi) + AC_CHECK_HEADERS(sys/bufmod.h sys/dlpi_ext.h) + AC_MSG_CHECKING(for /dev/dlpi device) + if test -c /dev/dlpi ; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_DEV_DLPI,1,[Define this if you have /dev/dlpi]) + else + AC_MSG_RESULT(no) + dir="/dev/dlpi" + AC_MSG_CHECKING(for $dir directory) + if test -d $dir ; then + AC_MSG_RESULT(yes) + AC_DEFINE_UNQUOTED(PCAP_DEV_PREFIX, "$dir", + [Path to pcap device]) + else + AC_MSG_RESULT(no) + fi + fi + ;; + +linux) + AC_CHECK_HEADERS(net/if_arp.h) + 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 + ;; + +null) + AC_MSG_WARN(cannot determine packet capture interface) + AC_MSG_WARN((see the INSTALL doc for more info)) + ;; + +esac + +case "$target_os" in + +aix*) + AC_DEFINE(_SUN,1,[workarounds to enable certain features]) + ;; + +hpux9*) + AC_DEFINE(HAVE_HPUX9,1,[Define this if we are on a HP-UX 9 system]) + ;; + +hpux10.0*) + ;; + +hpux10.1*) + ;; + +hpux*) + dnl HPUX 10.20 and above is similar to HPUX 9... + AC_DEFINE(HAVE_HPUX10_20,1,[Define this if we are on a HP-UX 10.20 system]) + ;; + +sinix*) + AC_MSG_CHECKING(if SINIX compiler defines sinix) + AC_CACHE_VAL(ac_cv_cc_sinix_defined, + AC_TRY_COMPILE( + [], + [int i = sinix;], + ac_cv_cc_sinix_defined=yes, + ac_cv_cc_sinix_defined=no)) + AC_MSG_RESULT($ac_cv_cc_sinix_defined) + if test $ac_cv_cc_sinix_defined = no ; then + AC_DEFINE(sinix,1,[Define this if we are on a sinix system]) + fi + ;; + +solaris*) + AC_DEFINE(HAVE_SOLARIS,1,[Define this if we are on a Solaris]) + ;; + +linux*) + V_INCLS="$V_INCLS -Ilinux-include" + ;; +esac + +AC_MSG_CHECKING(for log facility) +log_facility="LOG_DAEMON" +AC_ARG_WITH(log-facility, + [ --with-log-facility=facility enable logging to the given facility], + AC_TRY_COMPILE([#include <syslog.h>], int lf = $withval, + log_facility=$withval)) +AC_DEFINE_UNQUOTED(LOGFACILITY, $log_facility, + [The syslog facility to be used for diagnostics]) +AC_MSG_RESULT($log_facility) + + +AC_OUTPUT(libpcap/Makefile lib/Makefile src/Makefile m4/Makefile Makefile) + |