| AC_INIT([pfring.c], 1.0) |
| |
| AC_PROG_CC |
| AC_CONFIG_FILES(Makefile) |
| |
| AC_CHECK_HEADERS([linux/net_tstamp.h librdi.h]) |
| |
| CFLAGS="" |
| SYS_LIBS="" |
| |
| GCC_VERSION=`$CC --version |grep ^gcc |sed 's/^.* //g'` |
| if test -n "$GCC_VERSION"; then |
| ARCH=`uname -m` |
| if test "$ARCH" = "x86_64"; then |
| GCCMAJOR=`echo $GCC_VERSION |cut -d'.' -f1` |
| GCCMINOR=`echo $GCC_VERSION |cut -d'.' -f2` |
| if test "$GCCMAJOR" -eq 4 && test "$GCCMINOR" -ge 6; then |
| CPUSSE42=`grep -m 1 flags /proc/cpuinfo | grep -o sse4_2` |
| if test "$CPUSSE42" = "sse4_2"; then |
| CPUAVX=`grep -m 1 flags /proc/cpuinfo | grep -o avx` |
| if test "$CPUAVX" = "avx"; then |
| CFLAGS="-march=corei7-avx -mtune=corei7-avx $CFLAGS" |
| LIBARCH="_corei7-avx" |
| else |
| CFLAGS="-march=corei7 -mtune=corei7 $CFLAGS" |
| LIBARCH="_corei7" |
| fi |
| fi |
| fi |
| fi |
| fi |
| |
| MACHINE=`uname -m` |
| ZERO_LIB="libs/libpfring_zero_$MACHINE$LIBARCH.a" |
| DNA_LIB="libs/libpfring_dna_$MACHINE$LIBARCH.a" |
| VIRTUAL_LIB="libs/libpfring_mod_virtual_$MACHINE.a" |
| VIRTUAL_HDR="pfring_mod_virtual.h" |
| |
| dnl> Check for a modern pthread library |
| AC_CHECK_LIB(pthread, pthread_setaffinity_np, AC_DEFINE_UNQUOTED(HAVE_PTHREAD_SETAFFINITY_NP, 1, [libc has pthread_setaffinity_np])) |
| |
| if test "x$ac_cv_lib_pthread_pthread_setaffinity_np" = xyes; then : |
| AC_MSG_CHECKING([Zero support]) |
| if test -f $ZERO_LIB; then |
| HAVE_ZERO="-D HAVE_ZERO" |
| ZERO_OBJS=`ar t $ZERO_LIB | grep -F .o | tr '\n' ' '` |
| ZERO_DEP="extract_zero_lib" |
| AC_MSG_RESULT(yes) |
| else |
| ZERO_LIB="" |
| AC_MSG_RESULT(no) |
| fi |
| |
| dnl> R/W locks are broken on some BSD releases |
| if test "$IS_FREEBSD" != "1"; then |
| AC_MSG_CHECKING([if r/w locks are supported]) |
| AC_TRY_RUN([ |
| #include <pthread.h> |
| |
| int main() |
| { |
| pthread_rwlock_t t; |
| return 0; |
| } |
| |
| ] |
| , [ AC_MSG_RESULT(yes) AC_DEFINE_UNQUOTED(HAVE_RW_LOCK, 1, [pthread has rw locks]) ], [AC_MSG_RESULT(no)], [AC_MSG_RESULT(no)], [AC_MSG_RESULT(no)] |
| ) |
| fi |
| |
| AC_MSG_CHECKING([DNA support]) |
| if test -f $DNA_LIB; then |
| HAVE_DNA="-D HAVE_DNA" |
| DNA_OBJS=`ar t $DNA_LIB | tr '\n' ' '` |
| DNA_OBJS="pfring_mod_dna.o "$DNA_OBJS |
| DNA_DEP="extract_dna_lib" |
| AC_MSG_RESULT(yes) |
| else |
| DNA_LIB="" |
| AC_MSG_RESULT(no) |
| fi |
| |
| AC_MSG_CHECKING([Virtual support]) |
| if test -f $VIRTUAL_LIB && test -f $VIRTUAL_HDR; then |
| HAVE_VIRTUAL="-D HAVE_VIRTUAL" |
| VIRTUAL_OBJS=`ar t $VIRTUAL_LIB | tr '\n' ' '` |
| VIRTUAL_DEP="extract_virtual_lib" |
| AC_MSG_RESULT(yes) |
| else |
| VIRTUAL_LIB="" |
| AC_MSG_RESULT(no) |
| fi |
| |
| dnl> end of pthread_setaffinity_np check |
| fi |
| |
| AC_CHECK_HEADERS([librdi.h]) |
| |
| dnl> Silicom Redirector NIC - Default enabled |
| AC_ARG_ENABLE([rdi], AS_HELP_STRING([--disable-rdi], [Disable Silicom Redirector support in PF_RING])) |
| |
| if test "x$enable_rdi" != "xno"; then : |
| if test "x$ac_cv_header_librdi_h" = x""yes; then : |
| AC_CHECK_LIB( [rdi], [rdi_init]) |
| |
| AC_MSG_CHECKING([Silicom Redirector support]) |
| if test "x$ac_cv_lib_rdi_rdi_init" = x""yes; then : |
| HAVE_REDIRECTOR="-D HAVE_REDIRECTOR" |
| SILICOM_LIBS="-lrdi" |
| AC_MSG_RESULT(yes) |
| else |
| AC_MSG_RESULT(no) |
| fi |
| fi |
| fi |
| |
| AC_CHECK_LIB([hiredis], [redisCommand]) |
| if test "x$ac_cv_lib_hiredis_redisCommand" = xyes; then : |
| REDIS_LIB="-lhiredis" |
| AC_DEFINE_UNQUOTED(HAVE_REDIS, 1, [redis is present]) |
| else |
| REDIS_LIB="" |
| fi |
| |
| AC_CHECK_LIB( [nl], [nl_handle_alloc], [SYSLIBS="$SYSLIBS -lnl"]) |
| |
| AC_CHECK_LIB( [dag], |
| [dag_get_stream_erf_types], |
| [HAVE_DAG="-D HAVE_DAG"; DAG_OBJS="pfring_mod_dag.o"; DAG_LIB="-L/usr/local/lib -ldag"], |
| [], [] ) |
| |
| dnl BPF - Default disabled |
| dnl AC_ARG_ENABLE([bpf], AS_HELP_STRING([--enable-bpf], [Enable BPF support in PF_RING])) |
| dnl AS_IF([test "x$enable_bpf" = "xyes"], [HAVE_BPF="-D ENABLE_BPF"; BPF_INCLUDE="-I../libpcap"; BPF_LIB="-L../libpcap -lpcap"]) |
| |
| dnl BPF - Default enabled |
| AC_ARG_ENABLE([bpf], AS_HELP_STRING([--disable-bpf], [Disable BPF support in PF_RING])) |
| AS_IF([test "x$enable_bpf" != "xno"], [HAVE_BPF="-D ENABLE_BPF"; BPF_INCLUDE="-I../libpcap"; BPF_LIB="-L../libpcap -lpcap"]) |
| |
| dnl BPF - Dynamic |
| dnl AC_CHECK_LIB( [pcap], |
| dnl [pcap_compile_nopcap], |
| dnl [HAVE_BPF="-D ENABLE_BPF"], |
| dnl [], [] ) |
| |
| if test "x$ac_cv_header_linux_net_tstamp_h" = x""yes; then : |
| HAVE_HW_TIMESTAMP="-D ENABLE_HW_TIMESTAMP" |
| fi |
| |
| if test ".${prefix}" = ".NONE"; then |
| INSTALL_PREFIX=${ac_default_prefix}; |
| else |
| INSTALL_PREFIX=${prefix}; |
| fi |
| |
| AC_SUBST(CFLAGS) |
| AC_SUBST(HAVE_ZERO) |
| AC_SUBST(ZERO_LIB) |
| AC_SUBST(ZERO_OBJS) |
| AC_SUBST(ZERO_DEP) |
| AC_SUBST(HAVE_DNA) |
| AC_SUBST(DNA_LIB) |
| AC_SUBST(DNA_OBJS) |
| AC_SUBST(DNA_DEP) |
| AC_SUBST(DAG_LIB) |
| AC_SUBST(HAVE_VIRTUAL) |
| AC_SUBST(VIRTUAL_LIB) |
| AC_SUBST(VIRTUAL_OBJS) |
| AC_SUBST(VIRTUAL_DEP) |
| AC_SUBST(HAVE_DAG) |
| AC_SUBST(DAG_OBJS) |
| AC_SUBST(HAVE_BPF) |
| AC_SUBST(BPF_INCLUDE) |
| AC_SUBST(BPF_LIB) |
| AC_SUBST(REDIS_LIB) |
| AC_SUBST(SYSLIBS) |
| AC_SUBST(INSTALL_PREFIX) |
| AC_SUBST(SILICOM_LIBS) |
| AC_SUBST(HAVE_REDIRECTOR) |
| AC_SUBST(HAVE_HW_TIMESTAMP) |
| |
| dnl> AC_CONFIG_FILES([Makefile]) |
| AC_CONFIG_FILES([../examples/Makefile]) |
| AC_CONFIG_FILES([../c++/Makefile]) |
| |
| AC_CONFIG_HEADERS(config.h) |
| AC_OUTPUT |