[v4,1/6] drivers: cleanup meson build variable

Message ID 20200212015944.3037000-2-thomas@monjalon.net (mailing list archive)
State Superseded, archived
Delegated to: Raslan Darawsheh
Headers
Series mlx ibverbs linking in meson |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS
ci/Intel-compilation fail apply issues

Commit Message

Thomas Monjalon Feb. 12, 2020, 1:59 a.m. UTC
  The variable build is already initialized as true in
drivers/meson.build. Duplicate initializations can be removed from mlx.

When the variable build is set to false, it is easier to call
subdir_done() than branch the rest of the code on build condition.

Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
 drivers/common/mlx5/meson.build | 293 ++++++++++++++++----------------
 drivers/net/ipn3ke/meson.build  |  17 +-
 drivers/net/mlx4/meson.build    | 131 +++++++-------
 drivers/raw/ifpga/meson.build   |  23 ++-
 4 files changed, 230 insertions(+), 234 deletions(-)
  

Comments

Xu, Rosen Feb. 12, 2020, 9:26 a.m. UTC | #1
Hi,

I find some build error in patchwork.

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Wednesday, February 12, 2020 10:00
> To: dev@dpdk.org
> Cc: Richardson, Bruce <bruce.richardson@intel.com>; Matan Azrad
> <matan@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>;
> Viacheslav Ovsiienko <viacheslavo@mellanox.com>; Xu, Rosen
> <rosen.xu@intel.com>; Zhang, Tianfei <tianfei.zhang@intel.com>
> Subject: [PATCH v4 1/6] drivers: cleanup meson build variable
> 
> The variable build is already initialized as true in drivers/meson.build.
> Duplicate initializations can be removed from mlx.
> 
> When the variable build is set to false, it is easier to call
> subdir_done() than branch the rest of the code on build condition.
> 
> Suggested-by: Bruce Richardson <bruce.richardson@intel.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
>  drivers/common/mlx5/meson.build | 293 ++++++++++++++++----------------
> drivers/net/ipn3ke/meson.build  |  17 +-
>  drivers/net/mlx4/meson.build    | 131 +++++++-------
>  drivers/raw/ifpga/meson.build   |  23 ++-
>  4 files changed, 230 insertions(+), 234 deletions(-)
> 
> diff --git a/drivers/common/mlx5/meson.build
> b/drivers/common/mlx5/meson.build index 2b704107cd..be57558267 100644
> --- a/drivers/common/mlx5/meson.build
> +++ b/drivers/common/mlx5/meson.build
> @@ -6,7 +6,6 @@ if not is_linux
>  	reason = 'only supported on Linux'
>  	subdir_done()
>  endif
> -build = true
> 
>  pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')  LIB_GLUE_BASE =
> 'librte_pmd_mlx5_glue.so'
> @@ -32,158 +31,158 @@ foreach libname:libnames
>  	else
>  		build = false
>  		reason = 'missing dependency, "' + libname + '"'
> +		subdir_done()
>  	endif
>  endforeach
> 
> -if build
> -	allow_experimental_apis = true
> -	deps += ['hash', 'pci', 'net', 'eal', 'kvargs']
> -	ext_deps += libs
> -	sources = files(
> -		'mlx5_devx_cmds.c',
> -		'mlx5_common.c',
> -		'mlx5_nl.c',
> -	)
> -	if not pmd_dlopen
> -		sources += files('mlx5_glue.c')
> -	endif
> -	cflags_options = [
> -		'-std=c11',
> -		'-Wno-strict-prototypes',
> -		'-D_BSD_SOURCE',
> -		'-D_DEFAULT_SOURCE',
> -		'-D_XOPEN_SOURCE=600'
> -	]
> -	foreach option:cflags_options
> -		if cc.has_argument(option)
> -			cflags += option
> -		endif
> -	endforeach
> -	if get_option('buildtype').contains('debug')
> -		cflags += [ '-pedantic', '-DPEDANTIC' ]
> -	else
> -		cflags += [ '-UPEDANTIC' ]
> +allow_experimental_apis = true
> +deps += ['hash', 'pci', 'net', 'eal', 'kvargs'] ext_deps += libs
> +sources = files(
> +	'mlx5_devx_cmds.c',
> +	'mlx5_common.c',
> +	'mlx5_nl.c',
> +)
> +if not pmd_dlopen
> +	sources += files('mlx5_glue.c')
> +endif
> +cflags_options = [
> +	'-std=c11',
> +	'-Wno-strict-prototypes',
> +	'-D_BSD_SOURCE',
> +	'-D_DEFAULT_SOURCE',
> +	'-D_XOPEN_SOURCE=600'
> +]
> +foreach option:cflags_options
> +	if cc.has_argument(option)
> +		cflags += option
>  	endif
> -	# To maintain the compatibility with the make build system
> -	# mlx5_autoconf.h file is still generated.
> -	# input array for meson member search:
> -	# [ "MACRO to define if found", "header for the search",
> -	#   "symbol to search", "struct member to search" ]
> -	has_member_args = [
> -		[ 'HAVE_IBV_MLX5_MOD_SWP', 'infiniband/mlx5dv.h',
> -		'struct mlx5dv_sw_parsing_caps', 'sw_parsing_offloads' ],
> -		[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V42',
> 'infiniband/verbs.h',
> -		'struct ibv_counter_set_init_attr', 'counter_set_id' ],
> -		[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V45',
> 'infiniband/verbs.h',
> -		'struct ibv_counters_init_attr', 'comp_mask' ],
> -	]
> -	# input array for meson symbol search:
> -	# [ "MACRO to define if found", "header for the search",
> -	#   "symbol to search" ]
> -	has_sym_args = [
> -		[ 'HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT',
> 'infiniband/mlx5dv.h',
> -		'MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX' ],
> -		[ 'HAVE_IBV_DEVICE_TUNNEL_SUPPORT',
> 'infiniband/mlx5dv.h',
> -		'MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS' ],
> -		[ 'HAVE_IBV_MLX5_MOD_MPW', 'infiniband/mlx5dv.h',
> -		'MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED' ],
> -		[ 'HAVE_IBV_MLX5_MOD_CQE_128B_COMP',
> 'infiniband/mlx5dv.h',
> -		'MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP' ],
> -		[ 'HAVE_IBV_MLX5_MOD_CQE_128B_PAD',
> 'infiniband/mlx5dv.h',
> -		'MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD' ],
> -		[ 'HAVE_IBV_FLOW_DV_SUPPORT', 'infiniband/mlx5dv.h',
> -		'mlx5dv_create_flow_action_packet_reformat' ],
> -		[ 'HAVE_IBV_DEVICE_MPLS_SUPPORT', 'infiniband/verbs.h',
> -		'IBV_FLOW_SPEC_MPLS' ],
> -		[ 'HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING',
> 'infiniband/verbs.h',
> -		'IBV_WQ_FLAGS_PCI_WRITE_END_PADDING' ],
> -		[ 'HAVE_IBV_WQ_FLAG_RX_END_PADDING',
> 'infiniband/verbs.h',
> -		'IBV_WQ_FLAG_RX_END_PADDING' ],
> -		[ 'HAVE_MLX5DV_DR_DEVX_PORT', 'infiniband/mlx5dv.h',
> -		'mlx5dv_query_devx_port' ],
> -		[ 'HAVE_IBV_DEVX_OBJ', 'infiniband/mlx5dv.h',
> -		'mlx5dv_devx_obj_create' ],
> -		[ 'HAVE_IBV_FLOW_DEVX_COUNTERS', 'infiniband/mlx5dv.h',
> -		'MLX5DV_FLOW_ACTION_COUNTERS_DEVX' ],
> -		[ 'HAVE_IBV_DEVX_ASYNC', 'infiniband/mlx5dv.h',
> -		'mlx5dv_devx_obj_query_async' ],
> -		[ 'HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR',
> 'infiniband/mlx5dv.h',
> -		'mlx5dv_dr_action_create_dest_devx_tir' ],
> -		[ 'HAVE_IBV_DEVX_EVENT', 'infiniband/mlx5dv.h',
> -		'mlx5dv_devx_get_event' ],
> -		[ 'HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER',
> 'infiniband/mlx5dv.h',
> -		'mlx5dv_dr_action_create_flow_meter' ],
> -		[ 'HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD',
> 'infiniband/mlx5dv.h',
> -		'MLX5_MMAP_GET_NC_PAGES_CMD' ],
> -		[ 'HAVE_MLX5DV_DR', 'infiniband/mlx5dv.h',
> -		'MLX5DV_DR_DOMAIN_TYPE_NIC_RX' ],
> -		[ 'HAVE_MLX5DV_DR_ESWITCH', 'infiniband/mlx5dv.h',
> -		'MLX5DV_DR_DOMAIN_TYPE_FDB' ],
> -		[ 'HAVE_MLX5DV_DR_VLAN', 'infiniband/mlx5dv.h',
> -		'mlx5dv_dr_action_create_push_vlan' ],
> -		[ 'HAVE_IBV_VAR', 'infiniband/mlx5dv.h', 'mlx5dv_alloc_var' ],
> -		[ 'HAVE_SUPPORTED_40000baseKR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_40000baseKR4_Full' ],
> -		[ 'HAVE_SUPPORTED_40000baseCR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_40000baseCR4_Full' ],
> -		[ 'HAVE_SUPPORTED_40000baseSR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_40000baseSR4_Full' ],
> -		[ 'HAVE_SUPPORTED_40000baseLR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_40000baseLR4_Full' ],
> -		[ 'HAVE_SUPPORTED_56000baseKR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_56000baseKR4_Full' ],
> -		[ 'HAVE_SUPPORTED_56000baseCR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_56000baseCR4_Full' ],
> -		[ 'HAVE_SUPPORTED_56000baseSR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_56000baseSR4_Full' ],
> -		[ 'HAVE_SUPPORTED_56000baseLR4_Full', 'linux/ethtool.h',
> -		'SUPPORTED_56000baseLR4_Full' ],
> -		[ 'HAVE_ETHTOOL_LINK_MODE_25G', 'linux/ethtool.h',
> -		'ETHTOOL_LINK_MODE_25000baseCR_Full_BIT' ],
> -		[ 'HAVE_ETHTOOL_LINK_MODE_50G', 'linux/ethtool.h',
> -		'ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT' ],
> -		[ 'HAVE_ETHTOOL_LINK_MODE_100G', 'linux/ethtool.h',
> -		'ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT' ],
> -		[ 'HAVE_IFLA_NUM_VF', 'linux/if_link.h',
> -		'IFLA_NUM_VF' ],
> -		[ 'HAVE_IFLA_EXT_MASK', 'linux/if_link.h',
> -		'IFLA_EXT_MASK' ],
> -		[ 'HAVE_IFLA_PHYS_SWITCH_ID', 'linux/if_link.h',
> -		'IFLA_PHYS_SWITCH_ID' ],
> -		[ 'HAVE_IFLA_PHYS_PORT_NAME', 'linux/if_link.h',
> -		'IFLA_PHYS_PORT_NAME' ],
> -		[ 'HAVE_RDMA_NL_NLDEV', 'rdma/rdma_netlink.h',
> -		'RDMA_NL_NLDEV' ],
> -		[ 'HAVE_RDMA_NLDEV_CMD_GET', 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_CMD_GET' ],
> -		[ 'HAVE_RDMA_NLDEV_CMD_PORT_GET',
> 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_CMD_PORT_GET' ],
> -		[ 'HAVE_RDMA_NLDEV_ATTR_DEV_INDEX',
> 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_ATTR_DEV_INDEX' ],
> -		[ 'HAVE_RDMA_NLDEV_ATTR_DEV_NAME',
> 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_ATTR_DEV_NAME' ],
> -		[ 'HAVE_RDMA_NLDEV_ATTR_PORT_INDEX',
> 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_ATTR_PORT_INDEX' ],
> -		[ 'HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX',
> 'rdma/rdma_netlink.h',
> -		'RDMA_NLDEV_ATTR_NDEV_INDEX' ],
> -		[ 'HAVE_MLX5_DR_FLOW_DUMP', 'infiniband/mlx5dv.h',
> -		'mlx5dv_dump_dr_domain'],
> -		[ 'HAVE_DEVLINK', 'linux/devlink.h',
> 'DEVLINK_GENL_NAME' ],
> -	]
> -	config = configuration_data()
> -	foreach arg:has_sym_args
> -		config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
> -			dependencies: libs))
> -	endforeach
> -	foreach arg:has_member_args
> -		file_prefix = '#include <' + arg[1] + '>'
> -		config.set(arg[0], cc.has_member(arg[2], arg[3],
> -			prefix : file_prefix, dependencies: libs))
> -	endforeach
> -	configure_file(output : 'mlx5_autoconf.h', configuration : config)
> +endforeach
> +if get_option('buildtype').contains('debug')
> +	cflags += [ '-pedantic', '-DPEDANTIC' ] else
> +	cflags += [ '-UPEDANTIC' ]
>  endif
> +# To maintain the compatibility with the make build system #
> +mlx5_autoconf.h file is still generated.
> +# input array for meson member search:
> +# [ "MACRO to define if found", "header for the search",
> +#   "symbol to search", "struct member to search" ]
> +has_member_args = [
> +	[ 'HAVE_IBV_MLX5_MOD_SWP', 'infiniband/mlx5dv.h',
> +	'struct mlx5dv_sw_parsing_caps', 'sw_parsing_offloads' ],
> +	[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V42', 'infiniband/verbs.h',
> +	'struct ibv_counter_set_init_attr', 'counter_set_id' ],
> +	[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V45', 'infiniband/verbs.h',
> +	'struct ibv_counters_init_attr', 'comp_mask' ], ] # input array for
> +meson symbol search:
> +# [ "MACRO to define if found", "header for the search",
> +#   "symbol to search" ]
> +has_sym_args = [
> +	[ 'HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT',
> 'infiniband/mlx5dv.h',
> +	'MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX' ],
> +	[ 'HAVE_IBV_DEVICE_TUNNEL_SUPPORT', 'infiniband/mlx5dv.h',
> +	'MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS' ],
> +	[ 'HAVE_IBV_MLX5_MOD_MPW', 'infiniband/mlx5dv.h',
> +	'MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED' ],
> +	[ 'HAVE_IBV_MLX5_MOD_CQE_128B_COMP', 'infiniband/mlx5dv.h',
> +	'MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP' ],
> +	[ 'HAVE_IBV_MLX5_MOD_CQE_128B_PAD', 'infiniband/mlx5dv.h',
> +	'MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD' ],
> +	[ 'HAVE_IBV_FLOW_DV_SUPPORT', 'infiniband/mlx5dv.h',
> +	'mlx5dv_create_flow_action_packet_reformat' ],
> +	[ 'HAVE_IBV_DEVICE_MPLS_SUPPORT', 'infiniband/verbs.h',
> +	'IBV_FLOW_SPEC_MPLS' ],
> +	[ 'HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING',
> 'infiniband/verbs.h',
> +	'IBV_WQ_FLAGS_PCI_WRITE_END_PADDING' ],
> +	[ 'HAVE_IBV_WQ_FLAG_RX_END_PADDING', 'infiniband/verbs.h',
> +	'IBV_WQ_FLAG_RX_END_PADDING' ],
> +	[ 'HAVE_MLX5DV_DR_DEVX_PORT', 'infiniband/mlx5dv.h',
> +	'mlx5dv_query_devx_port' ],
> +	[ 'HAVE_IBV_DEVX_OBJ', 'infiniband/mlx5dv.h',
> +	'mlx5dv_devx_obj_create' ],
> +	[ 'HAVE_IBV_FLOW_DEVX_COUNTERS', 'infiniband/mlx5dv.h',
> +	'MLX5DV_FLOW_ACTION_COUNTERS_DEVX' ],
> +	[ 'HAVE_IBV_DEVX_ASYNC', 'infiniband/mlx5dv.h',
> +	'mlx5dv_devx_obj_query_async' ],
> +	[ 'HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR',
> 'infiniband/mlx5dv.h',
> +	'mlx5dv_dr_action_create_dest_devx_tir' ],
> +	[ 'HAVE_IBV_DEVX_EVENT', 'infiniband/mlx5dv.h',
> +	'mlx5dv_devx_get_event' ],
> +	[ 'HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER',
> 'infiniband/mlx5dv.h',
> +	'mlx5dv_dr_action_create_flow_meter' ],
> +	[ 'HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD',
> 'infiniband/mlx5dv.h',
> +	'MLX5_MMAP_GET_NC_PAGES_CMD' ],
> +	[ 'HAVE_MLX5DV_DR', 'infiniband/mlx5dv.h',
> +	'MLX5DV_DR_DOMAIN_TYPE_NIC_RX' ],
> +	[ 'HAVE_MLX5DV_DR_ESWITCH', 'infiniband/mlx5dv.h',
> +	'MLX5DV_DR_DOMAIN_TYPE_FDB' ],
> +	[ 'HAVE_MLX5DV_DR_VLAN', 'infiniband/mlx5dv.h',
> +	'mlx5dv_dr_action_create_push_vlan' ],
> +	[ 'HAVE_IBV_VAR', 'infiniband/mlx5dv.h', 'mlx5dv_alloc_var' ],
> +	[ 'HAVE_SUPPORTED_40000baseKR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_40000baseKR4_Full' ],
> +	[ 'HAVE_SUPPORTED_40000baseCR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_40000baseCR4_Full' ],
> +	[ 'HAVE_SUPPORTED_40000baseSR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_40000baseSR4_Full' ],
> +	[ 'HAVE_SUPPORTED_40000baseLR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_40000baseLR4_Full' ],
> +	[ 'HAVE_SUPPORTED_56000baseKR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_56000baseKR4_Full' ],
> +	[ 'HAVE_SUPPORTED_56000baseCR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_56000baseCR4_Full' ],
> +	[ 'HAVE_SUPPORTED_56000baseSR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_56000baseSR4_Full' ],
> +	[ 'HAVE_SUPPORTED_56000baseLR4_Full', 'linux/ethtool.h',
> +	'SUPPORTED_56000baseLR4_Full' ],
> +	[ 'HAVE_ETHTOOL_LINK_MODE_25G', 'linux/ethtool.h',
> +	'ETHTOOL_LINK_MODE_25000baseCR_Full_BIT' ],
> +	[ 'HAVE_ETHTOOL_LINK_MODE_50G', 'linux/ethtool.h',
> +	'ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT' ],
> +	[ 'HAVE_ETHTOOL_LINK_MODE_100G', 'linux/ethtool.h',
> +	'ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT' ],
> +	[ 'HAVE_IFLA_NUM_VF', 'linux/if_link.h',
> +	'IFLA_NUM_VF' ],
> +	[ 'HAVE_IFLA_EXT_MASK', 'linux/if_link.h',
> +	'IFLA_EXT_MASK' ],
> +	[ 'HAVE_IFLA_PHYS_SWITCH_ID', 'linux/if_link.h',
> +	'IFLA_PHYS_SWITCH_ID' ],
> +	[ 'HAVE_IFLA_PHYS_PORT_NAME', 'linux/if_link.h',
> +	'IFLA_PHYS_PORT_NAME' ],
> +	[ 'HAVE_RDMA_NL_NLDEV', 'rdma/rdma_netlink.h',
> +	'RDMA_NL_NLDEV' ],
> +	[ 'HAVE_RDMA_NLDEV_CMD_GET', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_CMD_GET' ],
> +	[ 'HAVE_RDMA_NLDEV_CMD_PORT_GET', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_CMD_PORT_GET' ],
> +	[ 'HAVE_RDMA_NLDEV_ATTR_DEV_INDEX', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_ATTR_DEV_INDEX' ],
> +	[ 'HAVE_RDMA_NLDEV_ATTR_DEV_NAME', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_ATTR_DEV_NAME' ],
> +	[ 'HAVE_RDMA_NLDEV_ATTR_PORT_INDEX', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_ATTR_PORT_INDEX' ],
> +	[ 'HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX', 'rdma/rdma_netlink.h',
> +	'RDMA_NLDEV_ATTR_NDEV_INDEX' ],
> +	[ 'HAVE_MLX5_DR_FLOW_DUMP', 'infiniband/mlx5dv.h',
> +	'mlx5dv_dump_dr_domain'],
> +	[ 'HAVE_DEVLINK', 'linux/devlink.h', 'DEVLINK_GENL_NAME' ], ]
> config =
> +configuration_data() foreach arg:has_sym_args
> +	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
> +		dependencies: libs))
> +endforeach
> +foreach arg:has_member_args
> +	file_prefix = '#include <' + arg[1] + '>'
> +	config.set(arg[0], cc.has_member(arg[2], arg[3],
> +		prefix : file_prefix, dependencies: libs)) endforeach
> +configure_file(output : 'mlx5_autoconf.h', configuration : config)
> +
>  # Build Glue Library
> -if pmd_dlopen and build
> +if pmd_dlopen
>  	dlopen_name = 'mlx5_glue'
>  	dlopen_lib_name = driver_name_fmt.format(dlopen_name)
>  	dlopen_so_version = LIB_GLUE_VERSION
> diff --git a/drivers/net/ipn3ke/meson.build
> b/drivers/net/ipn3ke/meson.build index bfec592aba..f19083af15 100644
> --- a/drivers/net/ipn3ke/meson.build
> +++ b/drivers/net/ipn3ke/meson.build
> @@ -16,16 +16,15 @@ endif
>  if not dep.found()
>  	build = false
>  	reason = 'missing dependency, "libfdt"'
> +	subdir_done()
>  endif
> 
> -if build
> -	allow_experimental_apis = true
> +allow_experimental_apis = true
> 
> -	includes += include_directories('../../raw/ifpga')
> +includes += include_directories('../../raw/ifpga')
> 
> -	sources += files('ipn3ke_ethdev.c',
> -		'ipn3ke_representor.c',
> -		'ipn3ke_tm.c',
> -		'ipn3ke_flow.c')
> -	deps += ['bus_ifpga', 'ethdev', 'sched']
> -endif
> +sources += files('ipn3ke_ethdev.c',
> +	'ipn3ke_representor.c',
> +	'ipn3ke_tm.c',
> +	'ipn3ke_flow.c')
> +deps += ['bus_ifpga', 'ethdev', 'sched']
> diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
> index 0260c5dc59..6d2397b3cc 100644
> --- a/drivers/net/mlx4/meson.build
> +++ b/drivers/net/mlx4/meson.build
> @@ -7,7 +7,6 @@ if not is_linux
>  	reason = 'only supported on Linux'
>  	subdir_done()
>  endif
> -build = true
> 
>  pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')  LIB_GLUE_BASE =
> 'librte_pmd_mlx4_glue.so'
> @@ -33,77 +32,77 @@ foreach libname:libnames
>  	else
>  		build = false
>  		reason = 'missing dependency, "' + libname + '"'
> +		subdir_done()
>  	endif
>  endforeach
> 
> -if build
> -	allow_experimental_apis = true
> -	ext_deps += libs
> -	sources = files(
> -		'mlx4.c',
> -		'mlx4_ethdev.c',
> -		'mlx4_flow.c',
> -		'mlx4_intr.c',
> -		'mlx4_mp.c',
> -		'mlx4_mr.c',
> -		'mlx4_rxq.c',
> -		'mlx4_rxtx.c',
> -		'mlx4_txq.c',
> -		'mlx4_utils.c',
> -	)
> -	if not pmd_dlopen
> -		sources += files('mlx4_glue.c')
> -	endif
> -	cflags_options = [
> -		'-std=c11',
> -		'-Wno-strict-prototypes',
> -		'-D_BSD_SOURCE',
> -		'-D_DEFAULT_SOURCE',
> -		'-D_XOPEN_SOURCE=600'
> -	]
> -	foreach option:cflags_options
> -		if cc.has_argument(option)
> -			cflags += option
> -		endif
> -	endforeach
> -	if get_option('buildtype').contains('debug')
> -		cflags += [ '-pedantic', '-DPEDANTIC' ]
> -	else
> -		cflags += [ '-UPEDANTIC' ]
> +allow_experimental_apis = true
> +ext_deps += libs
> +sources = files(
> +	'mlx4.c',
> +	'mlx4_ethdev.c',
> +	'mlx4_flow.c',
> +	'mlx4_intr.c',
> +	'mlx4_mp.c',
> +	'mlx4_mr.c',
> +	'mlx4_rxq.c',
> +	'mlx4_rxtx.c',
> +	'mlx4_txq.c',
> +	'mlx4_utils.c',
> +)
> +if not pmd_dlopen
> +	sources += files('mlx4_glue.c')
> +endif
> +cflags_options = [
> +	'-std=c11',
> +	'-Wno-strict-prototypes',
> +	'-D_BSD_SOURCE',
> +	'-D_DEFAULT_SOURCE',
> +	'-D_XOPEN_SOURCE=600'
> +]
> +foreach option:cflags_options
> +	if cc.has_argument(option)
> +		cflags += option
>  	endif
> -	# To maintain the compatibility with the make build system
> -	# mlx4_autoconf.h file is still generated.
> -	# input array for meson member search:
> -	# [ "MACRO to define if found", "header for the search",
> -	#   "symbol to search", "struct member to search" ]
> -	#
> -	has_member_args = [
> -		[ 'HAVE_IBV_MLX4_WQE_LSO_SEG', 'infiniband/mlx4dv.h',
> -		'struct mlx4_wqe_lso_seg', 'mss_hdr_size' ],
> -	]
> -	# input array for meson symbol search:
> -	# [ "MACRO to define if found", "header for the search",
> -	#   "symbol to search" ]
> -	has_sym_args = [
> -		[ 'HAVE_IBV_MLX4_BUF_ALLOCATORS',
> 'infiniband/mlx4dv.h',
> -		'MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS' ],
> -		[ 'HAVE_IBV_MLX4_UAR_MMAP_OFFSET',
> 'infiniband/mlx4dv.h',
> -		'MLX4DV_QP_MASK_UAR_MMAP_OFFSET' ],
> -	]
> -	config = configuration_data()
> -	foreach arg:has_sym_args
> -		config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
> -			dependencies: libs))
> -	endforeach
> -	foreach arg:has_member_args
> -		file_prefix = '#include <' + arg[1] + '>'
> -		config.set(arg[0], cc.has_member(arg[2], arg[3],
> -			prefix: file_prefix, dependencies: libs))
> -	endforeach
> -	configure_file(output : 'mlx4_autoconf.h', configuration : config)
> +endforeach
> +if get_option('buildtype').contains('debug')
> +	cflags += [ '-pedantic', '-DPEDANTIC' ] else
> +	cflags += [ '-UPEDANTIC' ]
>  endif
> +# To maintain the compatibility with the make build system #
> +mlx4_autoconf.h file is still generated.
> +# input array for meson member search:
> +# [ "MACRO to define if found", "header for the search",
> +#   "symbol to search", "struct member to search" ]
> +#
> +has_member_args = [
> +	[ 'HAVE_IBV_MLX4_WQE_LSO_SEG', 'infiniband/mlx4dv.h',
> +	'struct mlx4_wqe_lso_seg', 'mss_hdr_size' ], ] # input array for
> meson
> +symbol search:
> +# [ "MACRO to define if found", "header for the search",
> +#   "symbol to search" ]
> +has_sym_args = [
> +	[ 'HAVE_IBV_MLX4_BUF_ALLOCATORS', 'infiniband/mlx4dv.h',
> +	'MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS' ],
> +	[ 'HAVE_IBV_MLX4_UAR_MMAP_OFFSET', 'infiniband/mlx4dv.h',
> +	'MLX4DV_QP_MASK_UAR_MMAP_OFFSET' ],
> +]
> +config = configuration_data()
> +foreach arg:has_sym_args
> +	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
> +		dependencies: libs))
> +endforeach
> +foreach arg:has_member_args
> +	file_prefix = '#include <' + arg[1] + '>'
> +	config.set(arg[0], cc.has_member(arg[2], arg[3],
> +		prefix: file_prefix, dependencies: libs)) endforeach
> +configure_file(output : 'mlx4_autoconf.h', configuration : config)
> +
>  # Build Glue Library
> -if pmd_dlopen and build
> +if pmd_dlopen
>  	dlopen_name = 'mlx4_glue'
>  	dlopen_lib_name = driver_name_fmt.format(dlopen_name)
>  	dlopen_so_version = LIB_GLUE_VERSION
> diff --git a/drivers/raw/ifpga/meson.build b/drivers/raw/ifpga/meson.build
> index d4027068d6..e2a4b8cccb 100644
> --- a/drivers/raw/ifpga/meson.build
> +++ b/drivers/raw/ifpga/meson.build
> @@ -8,21 +8,20 @@ endif
>  if not dep.found()
>  	build = false
>  	reason = 'missing dependency, "libfdt"'
> +	subdir_done()
>  endif
> 
> -if build
> -	subdir('base')
> -	objs = [base_objs]
> +subdir('base')
> +objs = [base_objs]
> 
> -	deps += ['ethdev', 'rawdev', 'pci', 'bus_pci', 'kvargs',
> -		'bus_vdev', 'bus_ifpga', 'net', 'pmd_i40e', 'pmd_ipn3ke']
> -	ext_deps += dep
> +deps += ['ethdev', 'rawdev', 'pci', 'bus_pci', 'kvargs',
> +	'bus_vdev', 'bus_ifpga', 'net', 'pmd_i40e', 'pmd_ipn3ke'] ext_deps +=
> +dep
> 
> -	sources = files('ifpga_rawdev.c')
> +sources = files('ifpga_rawdev.c')
> 
> -	includes += include_directories('base')
> -	includes += include_directories('../../net/ipn3ke')
> -	includes += include_directories('../../net/i40e')
> +includes += include_directories('base') includes +=
> +include_directories('../../net/ipn3ke')
> +includes += include_directories('../../net/i40e')
> 
> -	allow_experimental_apis = true
> -endif
> +allow_experimental_apis = true
> --
> 2.25.0
  
Thomas Monjalon Feb. 12, 2020, 9:32 a.m. UTC | #2
12/02/2020 10:26, Xu, Rosen:
> I find some build error in patchwork.

This is a failure in the unit tests, probably unrelated:
	https://lab.dpdk.org/results/dashboard/patchsets/9573/

This is the error message:
	buildtools/meson.build:6:0: ERROR:
	Program(s) ['pkg-config', 'pkgconf'] not found or not executable

I think we can ignore, this is clearly an issue in the setup.
  
Jeremy Plsek Feb. 12, 2020, 3:04 p.m. UTC | #3
On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 12/02/2020 10:26, Xu, Rosen:
> > I find some build error in patchwork.
>
> This is a failure in the unit tests, probably unrelated:
>         https://lab.dpdk.org/results/dashboard/patchsets/9573/
>
> This is the error message:
>         buildtools/meson.build:6:0: ERROR:
>         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
>
> I think we can ignore, this is clearly an issue in the setup.
>
>
The windows guide does not mention needing pkgconfig to build dpdk on
windows. The guide should be updated if this is the case.
https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
  
Jeremy Plsek Feb. 12, 2020, 3:18 p.m. UTC | #4
On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
>
> On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 12/02/2020 10:26, Xu, Rosen:
> > > I find some build error in patchwork.
> >
> > This is a failure in the unit tests, probably unrelated:
> >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> >
> > This is the error message:
> >         buildtools/meson.build:6:0: ERROR:
> >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> >
> > I think we can ignore, this is clearly an issue in the setup.
> >
> >
> The windows guide does not mention needing pkgconfig to build dpdk on
> windows. The guide should be updated if this is the case.
> https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html

As an update, installing pkgconfiglite does make the build pass.
  
Thomas Monjalon Feb. 12, 2020, 4:30 p.m. UTC | #5
12/02/2020 16:18, Jeremy Plsek:
> On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> >
> > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 12/02/2020 10:26, Xu, Rosen:
> > > > I find some build error in patchwork.
> > >
> > > This is a failure in the unit tests, probably unrelated:
> > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > >
> > > This is the error message:
> > >         buildtools/meson.build:6:0: ERROR:
> > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > >
> > > I think we can ignore, this is clearly an issue in the setup.
> > >
> > >
> > The windows guide does not mention needing pkgconfig to build dpdk on
> > windows. The guide should be updated if this is the case.
> > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> 
> As an update, installing pkgconfiglite does make the build pass.

I don't understand Jeremy; the issue is seen in Ubuntu.
Please check the link above.
  
Jeremy Plsek Feb. 12, 2020, 4:36 p.m. UTC | #6
On Wed, Feb 12, 2020 at 11:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 12/02/2020 16:18, Jeremy Plsek:
> > On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> > >
> > > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > >
> > > > 12/02/2020 10:26, Xu, Rosen:
> > > > > I find some build error in patchwork.
> > > >
> > > > This is a failure in the unit tests, probably unrelated:
> > > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > > >
> > > > This is the error message:
> > > >         buildtools/meson.build:6:0: ERROR:
> > > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > > >
> > > > I think we can ignore, this is clearly an issue in the setup.
> > > >
> > > >
> > > The windows guide does not mention needing pkgconfig to build dpdk on
> > > windows. The guide should be updated if this is the case.
> > > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> >
> > As an update, installing pkgconfiglite does make the build pass.
>
> I don't understand Jeremy; the issue is seen in Ubuntu.
> Please check the link above.
>
>
Oh, I only looked at the windows build fail, not the unit tests.
Apparently they both had the same issue. I will fix the unit test
system.
  
Thomas Monjalon Feb. 12, 2020, 4:42 p.m. UTC | #7
12/02/2020 17:36, Jeremy Plsek:
> On Wed, Feb 12, 2020 at 11:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 12/02/2020 16:18, Jeremy Plsek:
> > > On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> > > >
> > > > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > >
> > > > > 12/02/2020 10:26, Xu, Rosen:
> > > > > > I find some build error in patchwork.
> > > > >
> > > > > This is a failure in the unit tests, probably unrelated:
> > > > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > > > >
> > > > > This is the error message:
> > > > >         buildtools/meson.build:6:0: ERROR:
> > > > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > > > >
> > > > > I think we can ignore, this is clearly an issue in the setup.
> > > > >
> > > > >
> > > > The windows guide does not mention needing pkgconfig to build dpdk on
> > > > windows. The guide should be updated if this is the case.
> > > > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> > >
> > > As an update, installing pkgconfiglite does make the build pass.
> >
> > I don't understand Jeremy; the issue is seen in Ubuntu.
> > Please check the link above.
> >
> >
> Oh, I only looked at the windows build fail, not the unit tests.
> Apparently they both had the same issue. I will fix the unit test
> system.

Please could you show where is the error on Windows?
There is maybe something to fix here.
  
Jeremy Plsek Feb. 12, 2020, 4:46 p.m. UTC | #8
On Wed, Feb 12, 2020 at 11:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 12/02/2020 17:36, Jeremy Plsek:
> > On Wed, Feb 12, 2020 at 11:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 12/02/2020 16:18, Jeremy Plsek:
> > > > On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> > > > >
> > > > > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > >
> > > > > > 12/02/2020 10:26, Xu, Rosen:
> > > > > > > I find some build error in patchwork.
> > > > > >
> > > > > > This is a failure in the unit tests, probably unrelated:
> > > > > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > > > > >
> > > > > > This is the error message:
> > > > > >         buildtools/meson.build:6:0: ERROR:
> > > > > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > > > > >
> > > > > > I think we can ignore, this is clearly an issue in the setup.
> > > > > >
> > > > > >
> > > > > The windows guide does not mention needing pkgconfig to build dpdk on
> > > > > windows. The guide should be updated if this is the case.
> > > > > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> > > >
> > > > As an update, installing pkgconfiglite does make the build pass.
> > >
> > > I don't understand Jeremy; the issue is seen in Ubuntu.
> > > Please check the link above.
> > >
> > >
> > Oh, I only looked at the windows build fail, not the unit tests.
> > Apparently they both had the same issue. I will fix the unit test
> > system.
>
> Please could you show where is the error on Windows?
> There is maybe something to fix here.
>
>
See "Run 1" under:
https://lab.dpdk.org/results/dashboard/patchsets/9573/#env-27
Direct download:
https://lab.dpdk.org/results/dashboard/results/results-uploads/test_runs/74f515cb64bd47f698cc2290ebaea571/log_upload_file/2020/2/dpdk_43e34a229d3e_9573_2020-02-12_03-00-39_NA.zip
  
Thomas Monjalon Feb. 12, 2020, 5:38 p.m. UTC | #9
12/02/2020 17:46, Jeremy Plsek:
> On Wed, Feb 12, 2020 at 11:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> >
> > 12/02/2020 17:36, Jeremy Plsek:
> > > On Wed, Feb 12, 2020 at 11:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > >
> > > > 12/02/2020 16:18, Jeremy Plsek:
> > > > > On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> > > > > >
> > > > > > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > > >
> > > > > > > 12/02/2020 10:26, Xu, Rosen:
> > > > > > > > I find some build error in patchwork.
> > > > > > >
> > > > > > > This is a failure in the unit tests, probably unrelated:
> > > > > > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > > > > > >
> > > > > > > This is the error message:
> > > > > > >         buildtools/meson.build:6:0: ERROR:
> > > > > > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > > > > > >
> > > > > > > I think we can ignore, this is clearly an issue in the setup.
> > > > > > >
> > > > > > >
> > > > > > The windows guide does not mention needing pkgconfig to build dpdk on
> > > > > > windows. The guide should be updated if this is the case.
> > > > > > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> > > > >
> > > > > As an update, installing pkgconfiglite does make the build pass.
> > > >
> > > > I don't understand Jeremy; the issue is seen in Ubuntu.
> > > > Please check the link above.
> > > >
> > > >
> > > Oh, I only looked at the windows build fail, not the unit tests.
> > > Apparently they both had the same issue. I will fix the unit test
> > > system.
> >
> > Please could you show where is the error on Windows?
> > There is maybe something to fix here.
> >
> >
> See "Run 1" under:
> https://lab.dpdk.org/results/dashboard/patchsets/9573/#env-27
> Direct download:
> https://lab.dpdk.org/results/dashboard/results/results-uploads/test_runs/74f515cb64bd47f698cc2290ebaea571/log_upload_file/2020/2/dpdk_43e34a229d3e_9573_2020-02-12_03-00-39_NA.zip

I see, thanks

If pkg-config is not required so far, please do not intall it.
I will fix this patch for Windows.
  
Jeremy Plsek Feb. 12, 2020, 6:03 p.m. UTC | #10
On Wed, Feb 12, 2020 at 12:38 PM Thomas Monjalon <thomas@monjalon.net> wrote:
>
> 12/02/2020 17:46, Jeremy Plsek:
> > On Wed, Feb 12, 2020 at 11:42 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > >
> > > 12/02/2020 17:36, Jeremy Plsek:
> > > > On Wed, Feb 12, 2020 at 11:30 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > >
> > > > > 12/02/2020 16:18, Jeremy Plsek:
> > > > > > On Wed, Feb 12, 2020 at 10:04 AM Jeremy Plsek <jplsek@iol.unh.edu> wrote:
> > > > > > >
> > > > > > > On Wed, Feb 12, 2020 at 4:32 AM Thomas Monjalon <thomas@monjalon.net> wrote:
> > > > > > > >
> > > > > > > > 12/02/2020 10:26, Xu, Rosen:
> > > > > > > > > I find some build error in patchwork.
> > > > > > > >
> > > > > > > > This is a failure in the unit tests, probably unrelated:
> > > > > > > >         https://lab.dpdk.org/results/dashboard/patchsets/9573/
> > > > > > > >
> > > > > > > > This is the error message:
> > > > > > > >         buildtools/meson.build:6:0: ERROR:
> > > > > > > >         Program(s) ['pkg-config', 'pkgconf'] not found or not executable
> > > > > > > >
> > > > > > > > I think we can ignore, this is clearly an issue in the setup.
> > > > > > > >
> > > > > > > >
> > > > > > > The windows guide does not mention needing pkgconfig to build dpdk on
> > > > > > > windows. The guide should be updated if this is the case.
> > > > > > > https://doc.dpdk.org/guides/windows_gsg/build_dpdk.html
> > > > > >
> > > > > > As an update, installing pkgconfiglite does make the build pass.
> > > > >
> > > > > I don't understand Jeremy; the issue is seen in Ubuntu.
> > > > > Please check the link above.
> > > > >
> > > > >
> > > > Oh, I only looked at the windows build fail, not the unit tests.
> > > > Apparently they both had the same issue. I will fix the unit test
> > > > system.
> > >
> > > Please could you show where is the error on Windows?
> > > There is maybe something to fix here.
> > >
> > >
> > See "Run 1" under:
> > https://lab.dpdk.org/results/dashboard/patchsets/9573/#env-27
> > Direct download:
> > https://lab.dpdk.org/results/dashboard/results/results-uploads/test_runs/74f515cb64bd47f698cc2290ebaea571/log_upload_file/2020/2/dpdk_43e34a229d3e_9573_2020-02-12_03-00-39_NA.zip
>
> I see, thanks
>
> If pkg-config is not required so far, please do not intall it.
> I will fix this patch for Windows.
>
>
Ok, I've removed pkg-config from the windows build server.
  

Patch

diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build
index 2b704107cd..be57558267 100644
--- a/drivers/common/mlx5/meson.build
+++ b/drivers/common/mlx5/meson.build
@@ -6,7 +6,6 @@  if not is_linux
 	reason = 'only supported on Linux'
 	subdir_done()
 endif
-build = true
 
 pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')
 LIB_GLUE_BASE = 'librte_pmd_mlx5_glue.so'
@@ -32,158 +31,158 @@  foreach libname:libnames
 	else
 		build = false
 		reason = 'missing dependency, "' + libname + '"'
+		subdir_done()
 	endif
 endforeach
 
-if build
-	allow_experimental_apis = true
-	deps += ['hash', 'pci', 'net', 'eal', 'kvargs']
-	ext_deps += libs
-	sources = files(
-		'mlx5_devx_cmds.c',
-		'mlx5_common.c',
-		'mlx5_nl.c',
-	)
-	if not pmd_dlopen
-		sources += files('mlx5_glue.c')
-	endif
-	cflags_options = [
-		'-std=c11',
-		'-Wno-strict-prototypes',
-		'-D_BSD_SOURCE',
-		'-D_DEFAULT_SOURCE',
-		'-D_XOPEN_SOURCE=600'
-	]
-	foreach option:cflags_options
-		if cc.has_argument(option)
-			cflags += option
-		endif
-	endforeach
-	if get_option('buildtype').contains('debug')
-		cflags += [ '-pedantic', '-DPEDANTIC' ]
-	else
-		cflags += [ '-UPEDANTIC' ]
+allow_experimental_apis = true
+deps += ['hash', 'pci', 'net', 'eal', 'kvargs']
+ext_deps += libs
+sources = files(
+	'mlx5_devx_cmds.c',
+	'mlx5_common.c',
+	'mlx5_nl.c',
+)
+if not pmd_dlopen
+	sources += files('mlx5_glue.c')
+endif
+cflags_options = [
+	'-std=c11',
+	'-Wno-strict-prototypes',
+	'-D_BSD_SOURCE',
+	'-D_DEFAULT_SOURCE',
+	'-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+	if cc.has_argument(option)
+		cflags += option
 	endif
-	# To maintain the compatibility with the make build system
-	# mlx5_autoconf.h file is still generated.
-	# input array for meson member search:
-	# [ "MACRO to define if found", "header for the search",
-	#   "symbol to search", "struct member to search" ]
-	has_member_args = [
-		[ 'HAVE_IBV_MLX5_MOD_SWP', 'infiniband/mlx5dv.h',
-		'struct mlx5dv_sw_parsing_caps', 'sw_parsing_offloads' ],
-		[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V42', 'infiniband/verbs.h',
-		'struct ibv_counter_set_init_attr', 'counter_set_id' ],
-		[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V45', 'infiniband/verbs.h',
-		'struct ibv_counters_init_attr', 'comp_mask' ],
-	]
-	# input array for meson symbol search:
-	# [ "MACRO to define if found", "header for the search",
-	#   "symbol to search" ]
-	has_sym_args = [
-		[ 'HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT', 'infiniband/mlx5dv.h',
-		'MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX' ],
-		[ 'HAVE_IBV_DEVICE_TUNNEL_SUPPORT', 'infiniband/mlx5dv.h',
-		'MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS' ],
-		[ 'HAVE_IBV_MLX5_MOD_MPW', 'infiniband/mlx5dv.h',
-		'MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED' ],
-		[ 'HAVE_IBV_MLX5_MOD_CQE_128B_COMP', 'infiniband/mlx5dv.h',
-		'MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP' ],
-		[ 'HAVE_IBV_MLX5_MOD_CQE_128B_PAD', 'infiniband/mlx5dv.h',
-		'MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD' ],
-		[ 'HAVE_IBV_FLOW_DV_SUPPORT', 'infiniband/mlx5dv.h',
-		'mlx5dv_create_flow_action_packet_reformat' ],
-		[ 'HAVE_IBV_DEVICE_MPLS_SUPPORT', 'infiniband/verbs.h',
-		'IBV_FLOW_SPEC_MPLS' ],
-		[ 'HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING', 'infiniband/verbs.h',
-		'IBV_WQ_FLAGS_PCI_WRITE_END_PADDING' ],
-		[ 'HAVE_IBV_WQ_FLAG_RX_END_PADDING', 'infiniband/verbs.h',
-		'IBV_WQ_FLAG_RX_END_PADDING' ],
-		[ 'HAVE_MLX5DV_DR_DEVX_PORT', 'infiniband/mlx5dv.h',
-		'mlx5dv_query_devx_port' ],
-		[ 'HAVE_IBV_DEVX_OBJ', 'infiniband/mlx5dv.h',
-		'mlx5dv_devx_obj_create' ],
-		[ 'HAVE_IBV_FLOW_DEVX_COUNTERS', 'infiniband/mlx5dv.h',
-		'MLX5DV_FLOW_ACTION_COUNTERS_DEVX' ],
-		[ 'HAVE_IBV_DEVX_ASYNC', 'infiniband/mlx5dv.h',
-		'mlx5dv_devx_obj_query_async' ],
-		[ 'HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR', 'infiniband/mlx5dv.h',
-		'mlx5dv_dr_action_create_dest_devx_tir' ],
-		[ 'HAVE_IBV_DEVX_EVENT', 'infiniband/mlx5dv.h',
-		'mlx5dv_devx_get_event' ],
-		[ 'HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER', 'infiniband/mlx5dv.h',
-		'mlx5dv_dr_action_create_flow_meter' ],
-		[ 'HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD', 'infiniband/mlx5dv.h',
-		'MLX5_MMAP_GET_NC_PAGES_CMD' ],
-		[ 'HAVE_MLX5DV_DR', 'infiniband/mlx5dv.h',
-		'MLX5DV_DR_DOMAIN_TYPE_NIC_RX' ],
-		[ 'HAVE_MLX5DV_DR_ESWITCH', 'infiniband/mlx5dv.h',
-		'MLX5DV_DR_DOMAIN_TYPE_FDB' ],
-		[ 'HAVE_MLX5DV_DR_VLAN', 'infiniband/mlx5dv.h',
-		'mlx5dv_dr_action_create_push_vlan' ],
-		[ 'HAVE_IBV_VAR', 'infiniband/mlx5dv.h', 'mlx5dv_alloc_var' ],
-		[ 'HAVE_SUPPORTED_40000baseKR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_40000baseKR4_Full' ],
-		[ 'HAVE_SUPPORTED_40000baseCR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_40000baseCR4_Full' ],
-		[ 'HAVE_SUPPORTED_40000baseSR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_40000baseSR4_Full' ],
-		[ 'HAVE_SUPPORTED_40000baseLR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_40000baseLR4_Full' ],
-		[ 'HAVE_SUPPORTED_56000baseKR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_56000baseKR4_Full' ],
-		[ 'HAVE_SUPPORTED_56000baseCR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_56000baseCR4_Full' ],
-		[ 'HAVE_SUPPORTED_56000baseSR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_56000baseSR4_Full' ],
-		[ 'HAVE_SUPPORTED_56000baseLR4_Full', 'linux/ethtool.h',
-		'SUPPORTED_56000baseLR4_Full' ],
-		[ 'HAVE_ETHTOOL_LINK_MODE_25G', 'linux/ethtool.h',
-		'ETHTOOL_LINK_MODE_25000baseCR_Full_BIT' ],
-		[ 'HAVE_ETHTOOL_LINK_MODE_50G', 'linux/ethtool.h',
-		'ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT' ],
-		[ 'HAVE_ETHTOOL_LINK_MODE_100G', 'linux/ethtool.h',
-		'ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT' ],
-		[ 'HAVE_IFLA_NUM_VF', 'linux/if_link.h',
-		'IFLA_NUM_VF' ],
-		[ 'HAVE_IFLA_EXT_MASK', 'linux/if_link.h',
-		'IFLA_EXT_MASK' ],
-		[ 'HAVE_IFLA_PHYS_SWITCH_ID', 'linux/if_link.h',
-		'IFLA_PHYS_SWITCH_ID' ],
-		[ 'HAVE_IFLA_PHYS_PORT_NAME', 'linux/if_link.h',
-		'IFLA_PHYS_PORT_NAME' ],
-		[ 'HAVE_RDMA_NL_NLDEV', 'rdma/rdma_netlink.h',
-		'RDMA_NL_NLDEV' ],
-		[ 'HAVE_RDMA_NLDEV_CMD_GET', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_CMD_GET' ],
-		[ 'HAVE_RDMA_NLDEV_CMD_PORT_GET', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_CMD_PORT_GET' ],
-		[ 'HAVE_RDMA_NLDEV_ATTR_DEV_INDEX', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_ATTR_DEV_INDEX' ],
-		[ 'HAVE_RDMA_NLDEV_ATTR_DEV_NAME', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_ATTR_DEV_NAME' ],
-		[ 'HAVE_RDMA_NLDEV_ATTR_PORT_INDEX', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_ATTR_PORT_INDEX' ],
-		[ 'HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX', 'rdma/rdma_netlink.h',
-		'RDMA_NLDEV_ATTR_NDEV_INDEX' ],
-		[ 'HAVE_MLX5_DR_FLOW_DUMP', 'infiniband/mlx5dv.h',
-		'mlx5dv_dump_dr_domain'],
-		[ 'HAVE_DEVLINK', 'linux/devlink.h', 'DEVLINK_GENL_NAME' ],
-	]
-	config = configuration_data()
-	foreach arg:has_sym_args
-		config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
-			dependencies: libs))
-	endforeach
-	foreach arg:has_member_args
-		file_prefix = '#include <' + arg[1] + '>'
-		config.set(arg[0], cc.has_member(arg[2], arg[3],
-			prefix : file_prefix, dependencies: libs))
-	endforeach
-	configure_file(output : 'mlx5_autoconf.h', configuration : config)
+endforeach
+if get_option('buildtype').contains('debug')
+	cflags += [ '-pedantic', '-DPEDANTIC' ]
+else
+	cflags += [ '-UPEDANTIC' ]
 endif
+# To maintain the compatibility with the make build system
+# mlx5_autoconf.h file is still generated.
+# input array for meson member search:
+# [ "MACRO to define if found", "header for the search",
+#   "symbol to search", "struct member to search" ]
+has_member_args = [
+	[ 'HAVE_IBV_MLX5_MOD_SWP', 'infiniband/mlx5dv.h',
+	'struct mlx5dv_sw_parsing_caps', 'sw_parsing_offloads' ],
+	[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V42', 'infiniband/verbs.h',
+	'struct ibv_counter_set_init_attr', 'counter_set_id' ],
+	[ 'HAVE_IBV_DEVICE_COUNTERS_SET_V45', 'infiniband/verbs.h',
+	'struct ibv_counters_init_attr', 'comp_mask' ],
+]
+# input array for meson symbol search:
+# [ "MACRO to define if found", "header for the search",
+#   "symbol to search" ]
+has_sym_args = [
+	[ 'HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT', 'infiniband/mlx5dv.h',
+	'MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX' ],
+	[ 'HAVE_IBV_DEVICE_TUNNEL_SUPPORT', 'infiniband/mlx5dv.h',
+	'MLX5DV_CONTEXT_MASK_TUNNEL_OFFLOADS' ],
+	[ 'HAVE_IBV_MLX5_MOD_MPW', 'infiniband/mlx5dv.h',
+	'MLX5DV_CONTEXT_FLAGS_MPW_ALLOWED' ],
+	[ 'HAVE_IBV_MLX5_MOD_CQE_128B_COMP', 'infiniband/mlx5dv.h',
+	'MLX5DV_CONTEXT_FLAGS_CQE_128B_COMP' ],
+	[ 'HAVE_IBV_MLX5_MOD_CQE_128B_PAD', 'infiniband/mlx5dv.h',
+	'MLX5DV_CQ_INIT_ATTR_FLAGS_CQE_PAD' ],
+	[ 'HAVE_IBV_FLOW_DV_SUPPORT', 'infiniband/mlx5dv.h',
+	'mlx5dv_create_flow_action_packet_reformat' ],
+	[ 'HAVE_IBV_DEVICE_MPLS_SUPPORT', 'infiniband/verbs.h',
+	'IBV_FLOW_SPEC_MPLS' ],
+	[ 'HAVE_IBV_WQ_FLAGS_PCI_WRITE_END_PADDING', 'infiniband/verbs.h',
+	'IBV_WQ_FLAGS_PCI_WRITE_END_PADDING' ],
+	[ 'HAVE_IBV_WQ_FLAG_RX_END_PADDING', 'infiniband/verbs.h',
+	'IBV_WQ_FLAG_RX_END_PADDING' ],
+	[ 'HAVE_MLX5DV_DR_DEVX_PORT', 'infiniband/mlx5dv.h',
+	'mlx5dv_query_devx_port' ],
+	[ 'HAVE_IBV_DEVX_OBJ', 'infiniband/mlx5dv.h',
+	'mlx5dv_devx_obj_create' ],
+	[ 'HAVE_IBV_FLOW_DEVX_COUNTERS', 'infiniband/mlx5dv.h',
+	'MLX5DV_FLOW_ACTION_COUNTERS_DEVX' ],
+	[ 'HAVE_IBV_DEVX_ASYNC', 'infiniband/mlx5dv.h',
+	'mlx5dv_devx_obj_query_async' ],
+	[ 'HAVE_MLX5DV_DR_ACTION_DEST_DEVX_TIR', 'infiniband/mlx5dv.h',
+	'mlx5dv_dr_action_create_dest_devx_tir' ],
+	[ 'HAVE_IBV_DEVX_EVENT', 'infiniband/mlx5dv.h',
+	'mlx5dv_devx_get_event' ],
+	[ 'HAVE_MLX5_DR_CREATE_ACTION_FLOW_METER', 'infiniband/mlx5dv.h',
+	'mlx5dv_dr_action_create_flow_meter' ],
+	[ 'HAVE_MLX5DV_MMAP_GET_NC_PAGES_CMD', 'infiniband/mlx5dv.h',
+	'MLX5_MMAP_GET_NC_PAGES_CMD' ],
+	[ 'HAVE_MLX5DV_DR', 'infiniband/mlx5dv.h',
+	'MLX5DV_DR_DOMAIN_TYPE_NIC_RX' ],
+	[ 'HAVE_MLX5DV_DR_ESWITCH', 'infiniband/mlx5dv.h',
+	'MLX5DV_DR_DOMAIN_TYPE_FDB' ],
+	[ 'HAVE_MLX5DV_DR_VLAN', 'infiniband/mlx5dv.h',
+	'mlx5dv_dr_action_create_push_vlan' ],
+	[ 'HAVE_IBV_VAR', 'infiniband/mlx5dv.h', 'mlx5dv_alloc_var' ],
+	[ 'HAVE_SUPPORTED_40000baseKR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_40000baseKR4_Full' ],
+	[ 'HAVE_SUPPORTED_40000baseCR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_40000baseCR4_Full' ],
+	[ 'HAVE_SUPPORTED_40000baseSR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_40000baseSR4_Full' ],
+	[ 'HAVE_SUPPORTED_40000baseLR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_40000baseLR4_Full' ],
+	[ 'HAVE_SUPPORTED_56000baseKR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_56000baseKR4_Full' ],
+	[ 'HAVE_SUPPORTED_56000baseCR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_56000baseCR4_Full' ],
+	[ 'HAVE_SUPPORTED_56000baseSR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_56000baseSR4_Full' ],
+	[ 'HAVE_SUPPORTED_56000baseLR4_Full', 'linux/ethtool.h',
+	'SUPPORTED_56000baseLR4_Full' ],
+	[ 'HAVE_ETHTOOL_LINK_MODE_25G', 'linux/ethtool.h',
+	'ETHTOOL_LINK_MODE_25000baseCR_Full_BIT' ],
+	[ 'HAVE_ETHTOOL_LINK_MODE_50G', 'linux/ethtool.h',
+	'ETHTOOL_LINK_MODE_50000baseCR2_Full_BIT' ],
+	[ 'HAVE_ETHTOOL_LINK_MODE_100G', 'linux/ethtool.h',
+	'ETHTOOL_LINK_MODE_100000baseKR4_Full_BIT' ],
+	[ 'HAVE_IFLA_NUM_VF', 'linux/if_link.h',
+	'IFLA_NUM_VF' ],
+	[ 'HAVE_IFLA_EXT_MASK', 'linux/if_link.h',
+	'IFLA_EXT_MASK' ],
+	[ 'HAVE_IFLA_PHYS_SWITCH_ID', 'linux/if_link.h',
+	'IFLA_PHYS_SWITCH_ID' ],
+	[ 'HAVE_IFLA_PHYS_PORT_NAME', 'linux/if_link.h',
+	'IFLA_PHYS_PORT_NAME' ],
+	[ 'HAVE_RDMA_NL_NLDEV', 'rdma/rdma_netlink.h',
+	'RDMA_NL_NLDEV' ],
+	[ 'HAVE_RDMA_NLDEV_CMD_GET', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_CMD_GET' ],
+	[ 'HAVE_RDMA_NLDEV_CMD_PORT_GET', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_CMD_PORT_GET' ],
+	[ 'HAVE_RDMA_NLDEV_ATTR_DEV_INDEX', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_ATTR_DEV_INDEX' ],
+	[ 'HAVE_RDMA_NLDEV_ATTR_DEV_NAME', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_ATTR_DEV_NAME' ],
+	[ 'HAVE_RDMA_NLDEV_ATTR_PORT_INDEX', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_ATTR_PORT_INDEX' ],
+	[ 'HAVE_RDMA_NLDEV_ATTR_NDEV_INDEX', 'rdma/rdma_netlink.h',
+	'RDMA_NLDEV_ATTR_NDEV_INDEX' ],
+	[ 'HAVE_MLX5_DR_FLOW_DUMP', 'infiniband/mlx5dv.h',
+	'mlx5dv_dump_dr_domain'],
+	[ 'HAVE_DEVLINK', 'linux/devlink.h', 'DEVLINK_GENL_NAME' ],
+]
+config = configuration_data()
+foreach arg:has_sym_args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
+		dependencies: libs))
+endforeach
+foreach arg:has_member_args
+	file_prefix = '#include <' + arg[1] + '>'
+	config.set(arg[0], cc.has_member(arg[2], arg[3],
+		prefix : file_prefix, dependencies: libs))
+endforeach
+configure_file(output : 'mlx5_autoconf.h', configuration : config)
+
 # Build Glue Library
-if pmd_dlopen and build
+if pmd_dlopen
 	dlopen_name = 'mlx5_glue'
 	dlopen_lib_name = driver_name_fmt.format(dlopen_name)
 	dlopen_so_version = LIB_GLUE_VERSION
diff --git a/drivers/net/ipn3ke/meson.build b/drivers/net/ipn3ke/meson.build
index bfec592aba..f19083af15 100644
--- a/drivers/net/ipn3ke/meson.build
+++ b/drivers/net/ipn3ke/meson.build
@@ -16,16 +16,15 @@  endif
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libfdt"'
+	subdir_done()
 endif
 
-if build
-	allow_experimental_apis = true
+allow_experimental_apis = true
 
-	includes += include_directories('../../raw/ifpga')
+includes += include_directories('../../raw/ifpga')
 
-	sources += files('ipn3ke_ethdev.c',
-		'ipn3ke_representor.c',
-		'ipn3ke_tm.c',
-		'ipn3ke_flow.c')
-	deps += ['bus_ifpga', 'ethdev', 'sched']
-endif
+sources += files('ipn3ke_ethdev.c',
+	'ipn3ke_representor.c',
+	'ipn3ke_tm.c',
+	'ipn3ke_flow.c')
+deps += ['bus_ifpga', 'ethdev', 'sched']
diff --git a/drivers/net/mlx4/meson.build b/drivers/net/mlx4/meson.build
index 0260c5dc59..6d2397b3cc 100644
--- a/drivers/net/mlx4/meson.build
+++ b/drivers/net/mlx4/meson.build
@@ -7,7 +7,6 @@  if not is_linux
 	reason = 'only supported on Linux'
 	subdir_done()
 endif
-build = true
 
 pmd_dlopen = (get_option('ibverbs_link') == 'dlopen')
 LIB_GLUE_BASE = 'librte_pmd_mlx4_glue.so'
@@ -33,77 +32,77 @@  foreach libname:libnames
 	else
 		build = false
 		reason = 'missing dependency, "' + libname + '"'
+		subdir_done()
 	endif
 endforeach
 
-if build
-	allow_experimental_apis = true
-	ext_deps += libs
-	sources = files(
-		'mlx4.c',
-		'mlx4_ethdev.c',
-		'mlx4_flow.c',
-		'mlx4_intr.c',
-		'mlx4_mp.c',
-		'mlx4_mr.c',
-		'mlx4_rxq.c',
-		'mlx4_rxtx.c',
-		'mlx4_txq.c',
-		'mlx4_utils.c',
-	)
-	if not pmd_dlopen
-		sources += files('mlx4_glue.c')
-	endif
-	cflags_options = [
-		'-std=c11',
-		'-Wno-strict-prototypes',
-		'-D_BSD_SOURCE',
-		'-D_DEFAULT_SOURCE',
-		'-D_XOPEN_SOURCE=600'
-	]
-	foreach option:cflags_options
-		if cc.has_argument(option)
-			cflags += option
-		endif
-	endforeach
-	if get_option('buildtype').contains('debug')
-		cflags += [ '-pedantic', '-DPEDANTIC' ]
-	else
-		cflags += [ '-UPEDANTIC' ]
+allow_experimental_apis = true
+ext_deps += libs
+sources = files(
+	'mlx4.c',
+	'mlx4_ethdev.c',
+	'mlx4_flow.c',
+	'mlx4_intr.c',
+	'mlx4_mp.c',
+	'mlx4_mr.c',
+	'mlx4_rxq.c',
+	'mlx4_rxtx.c',
+	'mlx4_txq.c',
+	'mlx4_utils.c',
+)
+if not pmd_dlopen
+	sources += files('mlx4_glue.c')
+endif
+cflags_options = [
+	'-std=c11',
+	'-Wno-strict-prototypes',
+	'-D_BSD_SOURCE',
+	'-D_DEFAULT_SOURCE',
+	'-D_XOPEN_SOURCE=600'
+]
+foreach option:cflags_options
+	if cc.has_argument(option)
+		cflags += option
 	endif
-	# To maintain the compatibility with the make build system
-	# mlx4_autoconf.h file is still generated.
-	# input array for meson member search:
-	# [ "MACRO to define if found", "header for the search",
-	#   "symbol to search", "struct member to search" ]
-	#
-	has_member_args = [
-		[ 'HAVE_IBV_MLX4_WQE_LSO_SEG', 'infiniband/mlx4dv.h',
-		'struct mlx4_wqe_lso_seg', 'mss_hdr_size' ],
-	]
-	# input array for meson symbol search:
-	# [ "MACRO to define if found", "header for the search",
-	#   "symbol to search" ]
-	has_sym_args = [
-		[ 'HAVE_IBV_MLX4_BUF_ALLOCATORS', 'infiniband/mlx4dv.h',
-		'MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS' ],
-		[ 'HAVE_IBV_MLX4_UAR_MMAP_OFFSET', 'infiniband/mlx4dv.h',
-		'MLX4DV_QP_MASK_UAR_MMAP_OFFSET' ],
-	]
-	config = configuration_data()
-	foreach arg:has_sym_args
-		config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
-			dependencies: libs))
-	endforeach
-	foreach arg:has_member_args
-		file_prefix = '#include <' + arg[1] + '>'
-		config.set(arg[0], cc.has_member(arg[2], arg[3],
-			prefix: file_prefix, dependencies: libs))
-	endforeach
-	configure_file(output : 'mlx4_autoconf.h', configuration : config)
+endforeach
+if get_option('buildtype').contains('debug')
+	cflags += [ '-pedantic', '-DPEDANTIC' ]
+else
+	cflags += [ '-UPEDANTIC' ]
 endif
+# To maintain the compatibility with the make build system
+# mlx4_autoconf.h file is still generated.
+# input array for meson member search:
+# [ "MACRO to define if found", "header for the search",
+#   "symbol to search", "struct member to search" ]
+#
+has_member_args = [
+	[ 'HAVE_IBV_MLX4_WQE_LSO_SEG', 'infiniband/mlx4dv.h',
+	'struct mlx4_wqe_lso_seg', 'mss_hdr_size' ],
+]
+# input array for meson symbol search:
+# [ "MACRO to define if found", "header for the search",
+#   "symbol to search" ]
+has_sym_args = [
+	[ 'HAVE_IBV_MLX4_BUF_ALLOCATORS', 'infiniband/mlx4dv.h',
+	'MLX4DV_SET_CTX_ATTR_BUF_ALLOCATORS' ],
+	[ 'HAVE_IBV_MLX4_UAR_MMAP_OFFSET', 'infiniband/mlx4dv.h',
+	'MLX4DV_QP_MASK_UAR_MMAP_OFFSET' ],
+]
+config = configuration_data()
+foreach arg:has_sym_args
+	config.set(arg[0], cc.has_header_symbol(arg[1], arg[2],
+		dependencies: libs))
+endforeach
+foreach arg:has_member_args
+	file_prefix = '#include <' + arg[1] + '>'
+	config.set(arg[0], cc.has_member(arg[2], arg[3],
+		prefix: file_prefix, dependencies: libs))
+endforeach
+configure_file(output : 'mlx4_autoconf.h', configuration : config)
+
 # Build Glue Library
-if pmd_dlopen and build
+if pmd_dlopen
 	dlopen_name = 'mlx4_glue'
 	dlopen_lib_name = driver_name_fmt.format(dlopen_name)
 	dlopen_so_version = LIB_GLUE_VERSION
diff --git a/drivers/raw/ifpga/meson.build b/drivers/raw/ifpga/meson.build
index d4027068d6..e2a4b8cccb 100644
--- a/drivers/raw/ifpga/meson.build
+++ b/drivers/raw/ifpga/meson.build
@@ -8,21 +8,20 @@  endif
 if not dep.found()
 	build = false
 	reason = 'missing dependency, "libfdt"'
+	subdir_done()
 endif
 
-if build
-	subdir('base')
-	objs = [base_objs]
+subdir('base')
+objs = [base_objs]
 
-	deps += ['ethdev', 'rawdev', 'pci', 'bus_pci', 'kvargs',
-		'bus_vdev', 'bus_ifpga', 'net', 'pmd_i40e', 'pmd_ipn3ke']
-	ext_deps += dep
+deps += ['ethdev', 'rawdev', 'pci', 'bus_pci', 'kvargs',
+	'bus_vdev', 'bus_ifpga', 'net', 'pmd_i40e', 'pmd_ipn3ke']
+ext_deps += dep
 
-	sources = files('ifpga_rawdev.c')
+sources = files('ifpga_rawdev.c')
 
-	includes += include_directories('base')
-	includes += include_directories('../../net/ipn3ke')
-	includes += include_directories('../../net/i40e')
+includes += include_directories('base')
+includes += include_directories('../../net/ipn3ke')
+includes += include_directories('../../net/i40e')
 
-	allow_experimental_apis = true
-endif
+allow_experimental_apis = true