diff --git a/lib/env_dpdk/env.mk b/lib/env_dpdk/env.mk index 0116b321c..8efffa9e9 100644 --- a/lib/env_dpdk/env.mk +++ b/lib/env_dpdk/env.mk @@ -54,15 +54,23 @@ DPDK_INC = -I$(DPDK_ABS_DIR)/include else DPDK_INC = -I$(DPDK_ABS_DIR)/include/dpdk endif -DPDK_LIB = $(DPDK_ABS_DIR)/lib/librte_eal.a $(DPDK_ABS_DIR)/lib/librte_mempool.a \ - $(DPDK_ABS_DIR)/lib/librte_ring.a + +ifneq (, $(wildcard $(DPDK_ABS_DIR)/lib/librte_eal.a)) +DPDK_LIB_EXT = .a +else +DPDK_LIB_EXT = .so +endif + +DPDK_LIB_LIST = rte_eal rte_mempool rte_ring # librte_malloc was removed after DPDK 2.1. Link this library conditionally based on its # existence to maintain backward compatibility. ifneq ($(wildcard $(DPDK_ABS_DIR)/lib/librte_malloc.*),) -DPDK_LIB += $(DPDK_ABS_DIR)/lib/librte_malloc.a +DPDK_LIB_LIST += rte_malloc endif +DPDK_LIB = $(DPDK_LIB_LIST:%=$(DPDK_ABS_DIR)/lib/lib%$(DPDK_LIB_EXT)) + ENV_CFLAGS = $(DPDK_INC) ENV_CXXFLAGS = $(ENV_CFLAGS) ENV_DPDK_FILE = $(call spdk_lib_list_to_files,env_dpdk)