xref: /dpdk/drivers/net/hns3/meson.build (revision 70cc4e1fed665712e68f2f45d98dda4abc6accda)
1565829dbSWei Hu (Xavier)# SPDX-License-Identifier: BSD-3-Clause
253e6f86cSMin Hu (Connor)# Copyright(c) 2018-2021 Hisilicon Limited
3565829dbSWei Hu (Xavier)
4565829dbSWei Hu (Xavier)if not is_linux
5565829dbSWei Hu (Xavier)    build = false
6565829dbSWei Hu (Xavier)    reason = 'only supported on Linux'
7565829dbSWei Hu (Xavier)    subdir_done()
8565829dbSWei Hu (Xavier)endif
9565829dbSWei Hu (Xavier)
10565829dbSWei Hu (Xavier)if arch_subdir != 'x86' and arch_subdir != 'arm' or not dpdk_conf.get('RTE_ARCH_64')
11565829dbSWei Hu (Xavier)    build = false
12135155a8SThomas Monjalon    reason = 'only supported on x86_64 and aarch64'
13565829dbSWei Hu (Xavier)    subdir_done()
14565829dbSWei Hu (Xavier)endif
15565829dbSWei Hu (Xavier)
164ad4b20aSBruce Richardsonsources = files(
174ad4b20aSBruce Richardson        'hns3_cmd.c',
1862e3ccc2SWei Hu (Xavier)        'hns3_dcb.c',
193988ab0eSWei Hu (Xavier)        'hns3_intr.c',
20565829dbSWei Hu (Xavier)        'hns3_ethdev.c',
21a5475d61SWei Hu (Xavier)        'hns3_ethdev_vf.c',
22fcba820dSWei Hu (Xavier)        'hns3_fdir.c',
23fcba820dSWei Hu (Xavier)        'hns3_flow.c',
24463e7489SWei Hu (Xavier)        'hns3_mbx.c',
25936eda25SWei Hu (Xavier)        'hns3_regs.c',
26c37ca66fSWei Hu (Xavier)        'hns3_rss.c',
27bba63669SWei Hu (Xavier)        'hns3_rxtx.c',
288839c5e2SWei Hu (Xavier)        'hns3_stats.c',
29c09c7847SChengwen Feng        'hns3_mp.c',
3038b539d9SMin Hu (Connor)        'hns3_tm.c',
314ad4b20aSBruce Richardson        'hns3_ptp.c',
32a4c7152dSHuisong Li        'hns3_common.c',
33635acdafSMin Hu (Connor)        'hns3_dump.c',
344ad4b20aSBruce Richardson)
3523d4b61fSWei Hu (Xavier)
3621b33542SChengwen Fengrequire_iova_in_mbuf = false
3721b33542SChengwen Feng
38*70cc4e1fSDavid Marchandannotate_locks = false
39*70cc4e1fSDavid Marchand
40565829dbSWei Hu (Xavier)deps += ['hash']
41e31f123dSWei Hu (Xavier)
42e31f123dSWei Hu (Xavier)if arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64')
43e31f123dSWei Hu (Xavier)    sources += files('hns3_rxtx_vec.c')
44699fa1d4SChengwen Feng
45699fa1d4SChengwen Feng    # compile SVE when:
46699fa1d4SChengwen Feng    # a. support SVE in minimum instruction set baseline
47699fa1d4SChengwen Feng    # b. it's not minimum instruction set, but compiler support
48699fa1d4SChengwen Feng    if dpdk_conf.has('RTE_HAS_SVE_ACLE')
49952ebaccSWei Hu (Xavier)        sources += files('hns3_rxtx_vec_sve.c')
50699fa1d4SChengwen Feng    elif cc.has_argument('-march=armv8.2-a+sve') and cc.check_header('arm_sve.h')
51699fa1d4SChengwen Feng        cflags += ['-DRTE_HAS_SVE_ACLE=1']
52699fa1d4SChengwen Feng        sve_cflags = []
53699fa1d4SChengwen Feng        foreach flag: cflags
54699fa1d4SChengwen Feng            if not (flag.startswith('-march=') or flag.startswith('-mcpu=') or flag.startswith('-mtune='))
55699fa1d4SChengwen Feng                sve_cflags += flag
56699fa1d4SChengwen Feng            endif
57699fa1d4SChengwen Feng        endforeach
58699fa1d4SChengwen Feng        hns3_sve_lib = static_library('hns3_sve_lib',
59699fa1d4SChengwen Feng                        'hns3_rxtx_vec_sve.c',
60699fa1d4SChengwen Feng                        dependencies: [static_rte_ethdev],
61699fa1d4SChengwen Feng                        include_directories: includes,
62699fa1d4SChengwen Feng                        c_args: [sve_cflags, '-march=armv8.2-a+sve'])
63699fa1d4SChengwen Feng        objs += hns3_sve_lib.extract_objects('hns3_rxtx_vec_sve.c')
64952ebaccSWei Hu (Xavier)    endif
65e31f123dSWei Hu (Xavier)endif
66