xref: /dpdk/drivers/net/mana/meson.build (revision dc348f2e81a94dd3b8a32c2f882483227796905d)
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2022 Microsoft Corporation
3
4if not is_linux or not dpdk_conf.has('RTE_ARCH_X86_64')
5    build = false
6    reason = 'only supported on x86_64 Linux'
7    subdir_done()
8endif
9
10deps += ['pci', 'bus_pci', 'net', 'eal', 'kvargs']
11
12sources += files(
13        'gdma.c',
14        'mana.c',
15        'mp.c',
16        'mr.c',
17        'rx.c',
18        'tx.c',
19)
20
21libnames = ['ibverbs', 'mana']
22foreach libname:libnames
23    lib = dependency('lib' + libname, required:false)
24    if not lib.found()
25        lib = cc.find_library(libname, required:false)
26    endif
27    if lib.found()
28        ext_deps += lib
29    else
30        build = false
31        reason = 'missing dependency, "' + libname + '"'
32        subdir_done()
33    endif
34endforeach
35
36required_symbols = [
37    ['infiniband/manadv.h', 'manadv_set_context_attr'],
38    ['infiniband/manadv.h', 'manadv_init_obj'],
39    ['infiniband/manadv.h', 'MANADV_CTX_ATTR_BUF_ALLOCATORS'],
40    ['infiniband/manadv.h', 'MANADV_OBJ_QP'],
41    ['infiniband/manadv.h', 'MANADV_OBJ_CQ'],
42    ['infiniband/manadv.h', 'MANADV_OBJ_RWQ'],
43]
44
45foreach arg:required_symbols
46    if not cc.has_header_symbol(arg[0], arg[1])
47        build = false
48        reason = 'missing symbol "' + arg[1] + '" in "' + arg[0] + '"'
49        subdir_done()
50    endif
51endforeach
52