From 19cc526d6c792cb08ab544ff680a0d0c7b92c291 Mon Sep 17 00:00:00 2001 From: Tyler Retzlaff Date: Fri, 12 Mar 2021 14:20:06 -0800 Subject: [PATCH] ethdev: install driver headers Introduce a meson option 'enable_driver_sdk', when true installs internal driver headers for ethdev. This allows drivers that do not depend on stable api/abi to be built external to the dpdk source tree. Signed-off-by: Tyler Retzlaff Acked-by: Ferruh Yigit --- lib/librte_ethdev/meson.build | 6 ++++++ lib/meson.build | 4 ++++ meson_options.txt | 2 ++ 3 files changed, 12 insertions(+) diff --git a/lib/librte_ethdev/meson.build b/lib/librte_ethdev/meson.build index c37b2e3772..4353fa6b7f 100644 --- a/lib/librte_ethdev/meson.build +++ b/lib/librte_ethdev/meson.build @@ -20,8 +20,14 @@ headers = files('rte_ethdev.h', 'rte_mtr_driver.h', 'rte_tm.h', 'rte_tm_driver.h') + indirect_headers += files( 'rte_ethdev_core.h', 'rte_eth_ctrl.h') +driver_sdk_headers += files( + 'ethdev_driver.h', + 'ethdev_pci.h', + 'ethdev_vdev.h') + deps += ['net', 'kvargs', 'meter', 'telemetry'] diff --git a/lib/meson.build b/lib/meson.build index 7712aa4977..992ebdf636 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -67,6 +67,7 @@ foreach l:libraries sources = [] headers = [] indirect_headers = [] # public headers not directly included by apps + driver_sdk_headers = [] # public headers included by drivers includes = [] cflags = default_cflags objs = [] # other object files to link against, used e.g. for @@ -105,6 +106,9 @@ foreach l:libraries dpdk_conf.set('RTE_LIB_' + name.to_upper(), 1) install_headers(headers) install_headers(indirect_headers) + if get_option('enable_driver_sdk') + install_headers(driver_sdk_headers) + endif dpdk_chkinc_headers += headers libname = 'rte_' + name diff --git a/meson_options.txt b/meson_options.txt index 3b8c5d316d..86bc6c88f6 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -8,6 +8,8 @@ option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-', description: 'Subdirectory of libdir where to install PMDs. Defaults to using a versioned subdirectory.') option('enable_docs', type: 'boolean', value: false, description: 'build documentation') +option('enable_driver_sdk', type: 'boolean', value: false, + description: 'Install headers to build drivers.') option('enable_kmods', type: 'boolean', value: false, description: 'build kernel modules') option('examples', type: 'string', value: '', -- 2.20.1