On Mon, Feb 17, 2020 at 01:17:49PM +0530, agup...@marvell.com wrote:
> From: Amit Gupta <agup...@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 <agup...@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

Reply via email to