aboutsummaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorDmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>2017-12-01 20:10:31 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2017-12-08 16:19:49 +0300
commit442638dd1514f8dda882d48fbb1ebc88ef9af430 (patch)
tree25cc66b779082c229c9c67227b56e07b4b5ccff5 /m4
parentc6573eb58dcf0d0316ada1e91ae1993100c4d559 (diff)
linux-gen: add support for using system-wide DPDK
Support using distro-installed DPDK for Pkt I/O. Distributions (like Ubuntu, Debian, etc) start providing DPDK packages. It is wise to enable users to use distro-provided DPDK version rather than requiring to always compile it from sources. Signed-off-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org> Reviewed-and-tested-by: Matias Elo <matias.elo@nokia.com>
Diffstat (limited to 'm4')
-rw-r--r--m4/odp_dpdk.m443
1 files changed, 35 insertions, 8 deletions
diff --git a/m4/odp_dpdk.m4 b/m4/odp_dpdk.m4
index 636170a7f..05e60cc06 100644
--- a/m4/odp_dpdk.m4
+++ b/m4/odp_dpdk.m4
@@ -16,6 +16,31 @@ AS_VAR_APPEND([DPDK_PMDS], [--no-whole-archive])
AC_SUBST([DPDK_PMDS])
])
+# _ODP_DPDK_CHECK_LIB(LDFLAGS, [LIBS], [EXTRA_LIBS])
+# ----------------------------------
+# Check if one can use -ldpdk with provided set of libs
+AC_DEFUN([_ODP_DPDK_CHECK_LIB], [dnl
+##########################################################################
+# Save and set temporary compilation flags
+##########################################################################
+OLD_LDFLAGS=$LDFLAGS
+OLD_LIBS=$LIBS
+LDFLAGS="$1 $LDFLAGS"
+LIBS="$LIBS -ldpdk $2"
+
+AC_MSG_CHECKING([for rte_eal_init in -ldpdk $2])
+AC_LINK_IFELSE([AC_LANG_CALL([], [rte_eal_init])],
+ [AC_MSG_RESULT([yes])
+ DPDK_LIBS="$1 -ldpdk $3 $2"],
+ [AC_MSG_RESULT([no])])
+
+##########################################################################
+# Restore old saved variables
+##########################################################################
+LDFLAGS=$OLD_LDFLAGS
+LIBS=$OLD_LIBS
+])
+
# ODP_DPDK_CHECK(CPPFLAGS, LDFLAGS, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
# -----------------------------------------------------------------------
# Check for DPDK availability
@@ -23,10 +48,7 @@ AC_DEFUN([ODP_DPDK_CHECK], [dnl
##########################################################################
# Save and set temporary compilation flags
##########################################################################
-OLD_LDFLAGS=$LDFLAGS
-OLD_LIBS=$LIBS
OLD_CPPFLAGS=$CPPFLAGS
-LDFLAGS="$2 $LDFLAGS"
CPPFLAGS="$1 $CPPFLAGS"
dpdk_check_ok=yes
@@ -34,16 +56,21 @@ dpdk_check_ok=yes
AC_CHECK_HEADERS([rte_config.h], [],
[dpdk_check_ok=no])
-AC_CHECK_LIB([dpdk], [rte_eal_init], [],
- [dpdk_check_ok=no], [-ldl -lpthread -lnuma])
+DPDK_LIBS=""
+_ODP_DPDK_CHECK_LIB([$2])
+AS_IF([test "x$DPDK_LIBS" = "x"],
+ [_ODP_DPDK_CHECK_LIB([$2], [-ldl -lpthread], [-lm])])
+AS_IF([test "x$DPDK_LIBS" = "x"],
+ [_ODP_DPDK_CHECK_LIB([$2], [-ldl -lpthread -lnuma], [-lm])])
+AS_IF([test "x$DPDK_LIBS" = "x"],
+ [dpdk_check_ok=no])
AS_IF([test "x$dpdk_check_ok" != "xno"],
- [m4_default([$3], [:])],
+ [AC_SUBST([DPDK_LIBS])
+ m4_default([$3], [:])],
[m4_default([$4], [:])])
##########################################################################
# Restore old saved variables
##########################################################################
-LDFLAGS=$OLD_LDFLAGS
-LIBS=$OLD_LIBS
CPPFLAGS=$OLD_CPPFLAGS
])