diff --git a/configure.ac b/configure.ac
index ab8135f08773d7453a1ade7cf400c877d33f85a4..9560bbbb6ac34392f193919f066f2ee7e5f77319 100644 (file)
--- a/configure.ac
+++ b/configure.ac
@@ -2429,41 +2429,60 @@ AC_ARG_WITH(libdpdk, [AS_HELP_STRING([--with-libdpdk@<:@=PREFIX@:>@], [Path to t
if test "x$with_libdpdk" = "xyes"
then
RTE_BUILD="$with_dpdk_path"
- DPDK_INCLUDE="$RTE_BUILD/include/dpdk"
+ DPDK_INCLUDE="$RTE_BUILD/include"
+ AC_CHECK_FILE([$DPDK_INCLUDE/rte_config.h], [LOCAL_DPDK_INSTALL=true],
+ [AC_CHECK_FILE([$DPDK_INCLUDE/dpdk/rte_config.h],
+ [DPDK_INCLUDE=$DPDK_INCLUDE/dpdk], [])])
DPDK_LIB_DIR="$RTE_BUILD/lib"
- DPDK_LIB="-ldpdk"
+ DPDK_EXTRA_LIB=""
SAVE_CFLAGS="$CFLAGS"
SAVE_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR"
- CFLAGS="$CFLAGS -I$DPDK_INCLUDE"
+ CFLAGS="$CFLAGS -mavx -I$DPDK_INCLUDE"
+ if test "x$LOCAL_DPDK_INSTALL" != "xtrue"
+ then
+ LDFLAGS="$LDFLAGS -L$DPDK_LIB_DIR"
+ fi
FOUND_DPDK=false
SAVE_LIBS="$LIBS"
- LIBS="$LIBS $DPDK_LIB"
- AC_LINK_IFELSE(
+ LIBS="$DPDK_LIB $LIBS"
+ AC_CHECK_LIB(dpdk, rte_eal_init,
+ [FOUND_DPDK=true],
+ [AC_MSG_ERROR([did not find dpdk libs ])])
+
+ CFLAGS="$SAVE_CFLAGS"
+ LDFLAGS="$SAVE_LDFLAGS"
+ LIBS="$SAVE_LIBS"
+ if test "x$FOUND_DPDK" != "xtrue"
+ then
+ AC_MSG_ERROR([cannot link with dpdk in $DPDK_LIB_DIR])
+ fi
+ BUILD_WITH_DPDK_CFLAGS=""
+ AC_MSG_NOTICE([Checking for avx instructions])
+ AC_RUN_IFELSE(
[AC_LANG_PROGRAM(
[[
-#include <rte_config.h>
-#include <rte_eal.h>
+#include <immintrin.h>
]],
[[
-int rte_argc;
-char ** rte_argv;
-rte_eal_init(rte_argc, rte_argv);
+__m128i zero = _mm_setzero_si128();
]]
)],
- [FOUND_DPDK=true])
- CFLAGS="$SAVE_CFLAGS"
- LDFLAGS="$SAVE_LDFLAGS"
- LIBS="$SAVE_LIBS"
- if test "x$FOUND_DPDK" != "xtrue"
- then
- AC_MSG_ERROR([cannot link with dpdk])
+ [HAVE_AVX=true], [HAVE_AVX=false])
+ if test "x$HAVE_AVX" = "xtrue"
+ then
+ BUILD_WITH_DPDK_CFLAGS="-mavx "
+ AC_MSG_NOTICE([avx instructions supported])
fi
- DPDK_LDFLAGS="-ldpdk"
- BUILD_WITH_DPDK_CFLAGS="-I$DPDK_INCLUDE"
- BUILD_WITH_DPDK_LDFLAGS="-L$DPDK_LIB_DIR"
- BUILD_WITH_DPDK_LIBS="$DPDK_LDFLAGS"
+
+ BUILD_WITH_DPDK_CFLAGS+="-fPIC -I$DPDK_INCLUDE"
+ if test "x$LOCAL_DPDK_INSTALL" != "xtrue"
+ then
+ BUILD_WITH_DPDK_LDFLAGS="-Wl,--no-as-needed"
+ else
+ BUILD_WITH_DPDK_LDFLAGS="-L$DPDK_LIB_DIR -Wl,--no-as-needed"
+ fi
+ BUILD_WITH_DPDK_LIBS="-Wl,-ldpdk"
AC_SUBST(BUILD_WITH_DPDK_CFLAGS)
AC_SUBST(BUILD_WITH_DPDK_LDFLAGS)
AC_SUBST(BUILD_WITH_DPDK_LIBS)
AC_PLUGIN([df], [$plugin_df], [Filesystem usage statistics])
AC_PLUGIN([disk], [$plugin_disk], [Disk usage statistics])
AC_PLUGIN([dns], [$with_libpcap], [DNS traffic analysis])
-AC_PLUGIN([dpdkstat], [$with_libdpdk], [Stats & Status from DPDK])
+AC_PLUGIN([dpdkstat], [$with_libdpdk], [Stats & Status from DPDK])
AC_PLUGIN([drbd], [$plugin_drbd], [DRBD statistics])
AC_PLUGIN([email], [yes], [EMail statistics])
AC_PLUGIN([entropy], [$plugin_entropy], [Entropy statistics])
AC_MSG_RESULT([ libatasmart . . . . . $with_libatasmart])
AC_MSG_RESULT([ libcurl . . . . . . . $with_libcurl])
AC_MSG_RESULT([ libdbi . . . . . . . $with_libdbi])
- libdpdk . . . . . . . $with_libdpdk
+AC_MSG_RESULT([ libdpdk . . . . . . . $with_libdpdk])
AC_MSG_RESULT([ libesmtp . . . . . . $with_libesmtp])
AC_MSG_RESULT([ libganglia . . . . . $with_libganglia])
AC_MSG_RESULT([ libgcrypt . . . . . . $with_libgcrypt])
AC_MSG_RESULT([ curl_json . . . . . . $enable_curl_json])
AC_MSG_RESULT([ curl_xml . . . . . . $enable_curl_xml])
AC_MSG_RESULT([ dbi . . . . . . . . . $enable_dbi])
- dpdkstat . . . . . . .$enable_dpdkstat
AC_MSG_RESULT([ df . . . . . . . . . $enable_df])
AC_MSG_RESULT([ disk . . . . . . . . $enable_disk])
AC_MSG_RESULT([ dns . . . . . . . . . $enable_dns])
+AC_MSG_RESULT([ dpdkstat . . . . . . .$enable_dpdkstat])
AC_MSG_RESULT([ drbd . . . . . . . . $enable_drbd])
AC_MSG_RESULT([ email . . . . . . . . $enable_email])
AC_MSG_RESULT([ entropy . . . . . . . $enable_entropy])