package/dpdk: make drivers selectable

Add BR2_PACKAGE_DPDK_DRIVERS_LIST to control which DPDK applications are
built:
  - empty : use DPDK defaults
  - none  : disable all drivers (-Ddisable_drivers='*/*')
  - list  : pass to -Denable_drivers= (comma-separated)

Signed-off-by: Maxime Leroy <maxime@leroys.fr>
[Julien: slightly change the drivers Config.in help text:
 - rename net/ixgbe to net/intel/ixgbe
 - change find -maxdepth value to 3
]
Signed-off-by: Julien Olivain <ju.o@free.fr>
This commit is contained in:
Maxime Leroy
2025-12-22 22:56:30 +01:00
committed by Julien Olivain
parent 6d5f9b835a
commit 73a16fe1d3
2 changed files with 30 additions and 0 deletions

View File

@@ -43,6 +43,27 @@ config BR2_PACKAGE_DPDK_EXAMPLES
config BR2_PACKAGE_DPDK_TESTS
bool "Install tests"
config BR2_PACKAGE_DPDK_DRIVERS_LIST
string "List of enabled drivers"
help
Controls which DPDK drivers are built.
Values:
(empty): use DPDK defaults
none : build no drivers
list : e.g. "net/virtio,net/intel/ixgbe"
To list possible drivers found in the DPDK source tree:
find drivers -mindepth 2 -maxdepth 3 -type d \
! -printf '%P\n' | sort
Note: providing manually a list of dpdk drivers 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

@@ -47,6 +47,15 @@ else
DPDK_CONF_OPTS += -Dexamples=
endif
DPDK_DRIVERS := $(call qstrip,$(BR2_PACKAGE_DPDK_DRIVERS_LIST))
ifneq ($(DPDK_DRIVERS),)
ifeq ($(DPDK_DRIVERS),none)
DPDK_CONF_OPTS += -Ddisable_drivers='*/*'
else
DPDK_CONF_OPTS += -Denable_drivers='$(DPDK_DRIVERS)'
endif
endif
ifeq ($(BR2_PACKAGE_DPDK_TESTS),y)
DPDK_CONF_OPTS += -Dtests=true
else