vppapitestplugins_LTLIBRARIES += dpdk_test_plugin.la
vppplugins_LTLIBRARIES += dpdk_plugin.la
+if ENABLE_DPDK_SHARED
+dpdk_plugin_la_LDFLAGS = $(AM_LDFLAGS) -ldpdk
+else
dpdk_plugin_la_LDFLAGS = $(AM_LDFLAGS) -Wl,--whole-archive,-l:libdpdk.a,--no-whole-archive
-if WITH_DPDK_CRYPTO_SW
+endif
+if WITH_AESNI_MB_LIB
dpdk_plugin_la_LDFLAGS += -Wl,--exclude-libs,libIPSec_MB.a,-l:libIPSec_MB.a
+endif
+if WITH_ISA_L_CRYPTO_LIB
dpdk_plugin_la_LDFLAGS += -Wl,--exclude-libs,libisal_crypto.a,-l:libisal_crypto.a
endif
+dpdk_plugin_la_CFLAGS = $(AM_CFLAGS)
+dpdk_plugin_la_LDFLAGS += -Wl,-lnuma
+
dpdk_plugin_la_LDFLAGS += -Wl,-lm,-ldl
-if WITH_DPDK_MLX5_PMD
-dpdk_plugin_la_LDFLAGS += -Wl,-libverbs
-endif
+dpdk_plugin_la_LIBADD =
dpdk_plugin_la_SOURCES = \
dpdk/main.c \
dpdk/buffer.c \
dpdk/thread.c \
+ dpdk/api/dpdk_api.c \
dpdk/device/cli.c \
+ dpdk/device/common.c \
dpdk/device/dpdk_priv.h \
dpdk/device/device.c \
dpdk/device/format.c \
API_FILES += dpdk/api/dpdk.api
+if CPU_X86_64
+dpdk_multiversioning_files = \
+ dpdk/buffer.c \
+ dpdk/device/node.c \
+ dpdk/device/device.c
+
+if CC_SUPPORTS_AVX2
+###############################################################
+# AVX2
+###############################################################
+libdpdk_plugin_avx2_la_SOURCES = $(dpdk_multiversioning_files)
+libdpdk_plugin_avx2_la_CFLAGS = \
+ $(AM_CFLAGS) @CPU_AVX2_FLAGS@ \
+ -DCLIB_MULTIARCH_VARIANT=avx2
+noinst_LTLIBRARIES += libdpdk_plugin_avx2.la
+dpdk_plugin_la_LIBADD += libdpdk_plugin_avx2.la
+endif
+
+if CC_SUPPORTS_AVX512
+###############################################################
+# AVX512
+###############################################################
+libdpdk_plugin_avx512_la_SOURCES = $(dpdk_multiversioning_files)
+libdpdk_plugin_avx512_la_CFLAGS = \
+ $(AM_CFLAGS) @CPU_AVX512_FLAGS@ \
+ -DCLIB_MULTIARCH_VARIANT=avx512
+noinst_LTLIBRARIES += libdpdk_plugin_avx512.la
+dpdk_plugin_la_LIBADD += libdpdk_plugin_avx512.la
+endif
+endif
+
nobase_include_HEADERS += \
dpdk/device/dpdk.h \
- dpdk/api/dpdk_all_api_h.h
-
-nobase_include_HEADERS += \
- dpdk/ipsec/ipsec.h \
- dpdk/ipsec/esp.h
+ dpdk/api/dpdk_all_api_h.h \
+ dpdk/ipsec/ipsec.h
dpdk_test_plugin_la_SOURCES = \
dpdk/api/dpdk_test.c dpdk/api/dpdk_plugin.api.h