xref: /dpdk/lib/fib/meson.build (revision 6cb10a9bdb6d2d0253e4d022f230371d703d8ac2)
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
3# Copyright(c) 2019 Intel Corporation
4
5if is_ms_compiler
6    build = false
7    reason = 'not supported building with Visual Studio Toolset'
8    subdir_done()
9endif
10
11sources = files('rte_fib.c', 'rte_fib6.c', 'dir24_8.c', 'trie.c')
12headers = files('rte_fib.h', 'rte_fib6.h')
13deps += ['rib']
14deps += ['rcu']
15deps += ['net']
16
17if dpdk_conf.has('RTE_ARCH_X86_64')
18    if target_has_avx512
19        cflags += ['-DCC_DIR24_8_AVX512_SUPPORT', '-DCC_TRIE_AVX512_SUPPORT']
20        sources += files('dir24_8_avx512.c', 'trie_avx512.c')
21
22    elif cc_has_avx512
23        cflags += ['-DCC_DIR24_8_AVX512_SUPPORT', '-DCC_TRIE_AVX512_SUPPORT']
24        dir24_8_avx512_tmp = static_library('dir24_8_avx512_tmp',
25                'dir24_8_avx512.c',
26                dependencies: [static_rte_eal, static_rte_rcu],
27                c_args: cflags + cc_avx512_flags)
28        objs += dir24_8_avx512_tmp.extract_objects('dir24_8_avx512.c')
29        trie_avx512_tmp = static_library('trie_avx512_tmp',
30                'trie_avx512.c',
31                dependencies: [static_rte_eal, static_rte_rcu, static_rte_net],
32                c_args: cflags + cc_avx512_flags)
33        objs += trie_avx512_tmp.extract_objects('trie_avx512.c')
34    endif
35endif
36