ethdev: install driver headers
authorTyler Retzlaff <roretzla@linux.microsoft.com>
Fri, 12 Mar 2021 22:20:06 +0000 (14:20 -0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 30 Mar 2021 12:46:33 +0000 (14:46 +0200)
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 <roretzla@linux.microsoft.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
lib/librte_ethdev/meson.build
lib/meson.build
meson_options.txt

index c37b2e3..4353fa6 100644 (file)
@@ -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']
index 7712aa4..992ebdf 100644 (file)
@@ -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
index 3b8c5d3..86bc6c8 100644 (file)
@@ -8,6 +8,8 @@ option('drivers_install_subdir', type: 'string', value: 'dpdk/pmds-<VERSION>',
        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: '',