[dpdk-dev] [PATCH] net/octeontx: meson build fix if octeontx drivers are disabled
Bruce Richardson
bruce.richardson at intel.com
Mon Feb 17 11:48:43 CET 2020
On Mon, Feb 17, 2020 at 01:17:49PM +0530, agupta3 at marvell.com wrote:
> From: Amit Gupta <agupta3 at marvell.com>
>
> Add a condition to check if octeontx drivers are disabled.
> octeontx drivers are built only if dependent drivers i.e.
> ethdev, mempool and common/octeontx are enabled.
>
> BugZilla ID # BUG 387
>
> Signed-off-by: Amit Gupta <agupta3 at marvell.com>
> ---
> drivers/net/octeontx/base/meson.build | 32 ++++++++++++++++++++++++--------
> 1 file changed, 24 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/net/octeontx/base/meson.build b/drivers/net/octeontx/base/meson.build
> index a06a2c8..50e7972 100644
> --- a/drivers/net/octeontx/base/meson.build
> +++ b/drivers/net/octeontx/base/meson.build
> @@ -9,17 +9,33 @@ sources = [
>
> depends = ['ethdev', 'mempool_octeontx']
> static_objs = []
> -foreach d: depends
> - static_objs += [get_variable('static_rte_' + d)]
> +
> +disabled_drivers = get_option('disable_drivers').split(',')
> +
> +build = true
> +foreach disable_path: disabled_drivers
> + if (('net/octeontx' == disable_path) or
> + ('event/octeontx' == disable_path) or
> + ('common/octeontx' == disable_path) or
> + ('mempool/octeontx' == disable_path))
> + build = false
> + endif
> endforeach
>
> c_args = cflags
> if allow_experimental_apis
> - c_args += '-DALLOW_EXPERIMENTAL_API'
> + c_args += '-DALLOW_EXPERIMENTAL_API'
> endif
> -base_lib = static_library('octeontx_base', sources,
> - c_args: c_args,
> - dependencies: static_objs,
> -)
>
> -base_objs = base_lib.extract_all_objects()
> +if build
> + foreach d: depends
> + static_objs += [get_variable('static_rte_' + d)]
> + endforeach
> +
> + base_lib = static_library('octeontx_base', sources,
> + c_args: c_args,
> + dependencies: static_objs,
> + )
> +
> + base_objs = base_lib.extract_all_objects()
> +endif
A better fix here might be possible using the fact that the get_variable()
call allows passing a fallback value in the case of failure. Therefore
something like the below might work cleaner:
foreach d: depends
static_obj = [get_variable('static_rte_' + d, '']
if static_obj == ''
build = false
reason = '....'
subdir_done()
endif
static_objs += static_obj
...
Maybe a disabler object could be used also.
Regards,
/Bruce
More information about the dev
mailing list