> -----Original Message-----
> From: Thomas Monjalon <tho...@monjalon.net>
> Sent: Sunday, October 30, 2022 1:08 PM
> To: dev@dpdk.org
> Cc: Alex Vesker <va...@nvidia.com>; ferruh.yi...@amd.com;
> andrew.rybche...@oktetlabs.ru; Raslan Darawsheh <rasl...@nvidia.com>;
> david.march...@redhat.com; Matan Azrad <ma...@nvidia.com>; Fan
> Zhang <royzhang1...@gmail.com>; Ashish Gupta
> <ashish.gu...@marvell.com>; Slava Ovsiienko <viachesl...@nvidia.com>;
> Ori Kam <or...@nvidia.com>
> Subject: [PATCH v3 1/2] common/mlx5: fix build disabling
>
> If the dependency common/mlx5 is explicitly disabled, but net/mlx5 is not
> explicitly disabled, Meson will read the full recipe of net/mlx5 and will fail
> when accessing a variable from common/mlx5:
> drivers/net/mlx5/meson.build:76:4: ERROR: Unknown variable
> "mlx5_config".
>
> The solution is to stop parsing net/mlx5 if common/mlx5 is disabled.
> The deps array must be defined before stopping, in order to automatically
> disable the build of net/mlx5 and print the reason.
>
> The same protection is applied to other mlx5 drivers, so it will allow using
> the
> variable mlx5_config in future.
>
> Fixes: 22681deead3e ("net/mlx5/hws: enable hardware steering")
>
> Reported-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
> Signed-off-by: Thomas Monjalon <tho...@monjalon.net>
> Tested-by: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
> Reviewed-by: David Marchand <david.march...@redhat.com>
> Acked-by: Matan Azrad <ma...@nvidia.com>
> ---
> drivers/compress/mlx5/meson.build | 5 +++++
> drivers/crypto/mlx5/meson.build | 5 +++++
> drivers/net/mlx5/meson.build | 5 +++++
> drivers/regex/mlx5/meson.build | 5 +++++
> drivers/vdpa/mlx5/meson.build | 5 +++++
> 5 files changed, 25 insertions(+)
>
> diff --git a/drivers/compress/mlx5/meson.build
> b/drivers/compress/mlx5/meson.build
> index 7aac329986..49ce3aff46 100644
> --- a/drivers/compress/mlx5/meson.build
> +++ b/drivers/compress/mlx5/meson.build
> @@ -9,6 +9,11 @@ endif
>
> fmt_name = 'mlx5_compress'
> deps += ['common_mlx5', 'eal', 'compressdev']
> +if not ('mlx5' in common_drivers)
> + # avoid referencing undefined variables from common/mlx5
> + subdir_done()
> +endif
> +
> sources = files(
> 'mlx5_compress.c',
> )
> diff --git a/drivers/crypto/mlx5/meson.build
> b/drivers/crypto/mlx5/meson.build index 9d9c9c00bc..7521c4c671 100644
> --- a/drivers/crypto/mlx5/meson.build
> +++ b/drivers/crypto/mlx5/meson.build
> @@ -9,6 +9,11 @@ endif
>
> fmt_name = 'mlx5_crypto'
> deps += ['common_mlx5', 'eal', 'cryptodev']
> +if not ('mlx5' in common_drivers)
> + # avoid referencing undefined variables from common/mlx5
> + subdir_done()
> +endif
> +
> sources = files(
> 'mlx5_crypto.c',
> 'mlx5_crypto_dek.c',
> diff --git a/drivers/net/mlx5/meson.build b/drivers/net/mlx5/meson.build
> index ff84448186..fa15158039 100644
> --- a/drivers/net/mlx5/meson.build
> +++ b/drivers/net/mlx5/meson.build
> @@ -9,6 +9,11 @@ if not (is_linux or is_windows) endif
>
> deps += ['hash', 'common_mlx5']
> +if not ('mlx5' in common_drivers)
> + # avoid referencing undefined variables from common/mlx5
> + subdir_done()
> +endif
> +
> headers = files('rte_pmd_mlx5.h')
> sources = files(
> 'mlx5.c',
> diff --git a/drivers/regex/mlx5/meson.build
> b/drivers/regex/mlx5/meson.build index e553dcb83d..70edc5b6da 100644
> --- a/drivers/regex/mlx5/meson.build
> +++ b/drivers/regex/mlx5/meson.build
> @@ -8,6 +8,11 @@ if not is_linux
> endif
>
> deps += ['common_mlx5', 'eal', 'regexdev']
> +if not ('mlx5' in common_drivers)
> + # avoid referencing undefined variables from common/mlx5
> + subdir_done()
> +endif
> +
> sources = files(
> 'mlx5_regex.c',
> 'mlx5_rxp.c',
> diff --git a/drivers/vdpa/mlx5/meson.build
> b/drivers/vdpa/mlx5/meson.build index 9d8dbb1a82..54a4eac6f4 100644
> --- a/drivers/vdpa/mlx5/meson.build
> +++ b/drivers/vdpa/mlx5/meson.build
> @@ -8,6 +8,11 @@ if not is_linux
> endif
>
> deps += ['hash', 'common_mlx5', 'vhost', 'pci', 'eal', 'sched']
> +if not ('mlx5' in common_drivers)
> + # avoid referencing undefined variables from common/mlx5
> + subdir_done()
> +endif
> +
> sources = files(
> 'mlx5_vdpa.c',
> 'mlx5_vdpa_mem.c',
> --
> 2.36.1
Acked-by: Alex Vesker <va...@nvidia.com>