package/dpdk: make libraries selectable

Add BR2_PACKAGE_DPDK_LIBS_LIST to control which DPDK libraries are
built:
  - empty : use DPDK defaults
  - none  : disable all libs (-Ddisable_libs='*')
  - list  : pass to -Denable_libs= (comma-separated)

Signed-off-by: Maxime Leroy <maxime@leroys.fr>
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Maxime Leroy
2025-12-22 22:56:31 +01:00
committed by Julien Olivain
parent 73a16fe1d3
commit 5c104b7f0b
2 changed files with 30 additions and 0 deletions

View File

@@ -64,6 +64,27 @@ config BR2_PACKAGE_DPDK_DRIVERS_LIST
Buildroot packages for external dependencies. DPDK
configuration will fail in case of missing dependencies.
config BR2_PACKAGE_DPDK_LIBS_LIST
string "List of enabled libraries"
help
Controls which DPDK libraries are built.
Values:
(empty): use DPDK defaults
none : build no libraries
list : e.g. "hash,fib,rib"
To list all libraries found in the DPDK source tree:
find lib -mindepth 2 -maxdepth 2 -type f -name meson.build \
-printf '%h\n' | xargs -n1 basename | sort -u
Note: providing manually a list of dpdk libraries to enable
does not automatically enable its dependencies (internal or
external). It is the user responsiblity to add internal dpdk
dependencies in this list, and/or select the relevant
Buildroot packages for external dependencies. DPDK
configuration will fail in case of missing dependencies.
endif
comment "dpdk needs a glibc toolchain w/ threads, gcc >= 4.9, headers >= 4.19"

View File

@@ -56,6 +56,15 @@ ifneq ($(DPDK_DRIVERS),)
endif
endif
DPDK_LIBS := $(call qstrip,$(BR2_PACKAGE_DPDK_LIBS_LIST))
ifneq ($(DPDK_LIBS),)
ifeq ($(DPDK_LIBS),none)
DPDK_CONF_OPTS += -Ddisable_libs='*'
else
DPDK_CONF_OPTS += -Denable_libs='$(DPDK_LIBS)'
endif
endif
ifeq ($(BR2_PACKAGE_DPDK_TESTS),y)
DPDK_CONF_OPTS += -Dtests=true
else