When using DPDK datapath, the OVS configure script requires the DPDK build directory passed on --with-dpdk. This can be avoided if the DPDK is installed in standard location i.e /usr/local/share/dpdk (or) /usr/share/dpdk
This patch fixes the problem by searching for DPDK libraries in standard location and configures OVS sources for dpdk datapath. If the install location is manually specified in "--with-dpdk" autodiscovery shall be skipped. Signed-off-by: Bhanuprakash Bodireddy <bhanuprakash.bodire...@intel.com> --- acinclude.m4 | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/acinclude.m4 b/acinclude.m4 index 74f0494..d780759 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -163,9 +163,46 @@ AC_DEFUN([OVS_CHECK_DPDK], [ [AC_HELP_STRING([--with-dpdk=/path/to/dpdk], [Specify the DPDK build directory])]) - if test X"$with_dpdk" != X; then - RTE_SDK=$with_dpdk + RTE_SDK="" + AC_MSG_CHECKING([whether dpdk datapath is enabled]) + case "$with_dpdk" in + yes) + AC_MSG_RESULT([$with_dpdk]) + INSTALL_PREFIX="/usr/local /usr" + for i in $INSTALL_PREFIX; do + DEFAULT_RTE_SDK="$i/share/dpdk" + DEFAULT_RTE_TARGET="x86_64-native-linuxapp-gcc" + DPDK_BUILD=$DEFAULT_RTE_SDK/$DEFAULT_RTE_TARGET + if test -d "$DPDK_BUILD"; then + AC_CHECK_FILE("$DPDK_BUILD/lib/libdpdk.a", dpdk_lib=1, [AC_CHECK_FILE("$DPDK_BUILD/lib/libdpdk.so", dpdk_lib=1, dpdk_lib=0)]) + if test "$dpdk_lib" = 1; then + RTE_SDK="$DPDK_BUILD" + break + fi + fi + done + if test -z "$RTE_SDK"; then + AC_MSG_ERROR([Could not find DPDK libraries in $INSTALL_PREFIX directories, Use '--with-dpdk' to specify the path to DPDK libraries installed in non-standard location]) + fi + ;; + no) + AC_MSG_RESULT([$with_dpdk]) + ;; + "") + AC_MSG_RESULT([no]) + ;; + *) + AC_MSG_RESULT([yes]) + AC_CHECK_FILE("$with_dpdk/lib/libdpdk.a", dpdk_lib=1, [AC_CHECK_FILE("$with_dpdk/lib/libdpdk.so", dpdk_lib=1, dpdk_lib=0)]) + if test "$dpdk_lib" = 1; then + RTE_SDK="$with_dpdk" + else + AC_MSG_ERROR([Could not find DPDK libraries in $with_dpdk/lib]) + fi + ;; + esac + if test X"$RTE_SDK" != X; then DPDK_INCLUDE=$RTE_SDK/include DPDK_LIB_DIR=$RTE_SDK/lib DPDK_LIB="-ldpdk" -- 2.4.3 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev