+# 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)
+