xref: /dpdk/lib/fib/meson.build (revision 6cb10a9bdb6d2d0253e4d022f230371d703d8ac2)
199a2dd95SBruce Richardson# SPDX-License-Identifier: BSD-3-Clause
299a2dd95SBruce Richardson# Copyright(c) 2018 Vladimir Medvedkin <medvedkinv@gmail.com>
399a2dd95SBruce Richardson# Copyright(c) 2019 Intel Corporation
499a2dd95SBruce Richardson
576cef1afSTyler Retzlaffif is_ms_compiler
676cef1afSTyler Retzlaff    build = false
776cef1afSTyler Retzlaff    reason = 'not supported building with Visual Studio Toolset'
876cef1afSTyler Retzlaff    subdir_done()
976cef1afSTyler Retzlaffendif
1076cef1afSTyler Retzlaff
1199a2dd95SBruce Richardsonsources = files('rte_fib.c', 'rte_fib6.c', 'dir24_8.c', 'trie.c')
1299a2dd95SBruce Richardsonheaders = files('rte_fib.h', 'rte_fib6.h')
1399a2dd95SBruce Richardsondeps += ['rib']
1496c3d06aSVladimir Medvedkindeps += ['rcu']
15*6cb10a9bSRobin Jarrydeps += ['net']
1699a2dd95SBruce Richardson
17e194f3cdSVladimir Medvedkinif dpdk_conf.has('RTE_ARCH_X86_64')
18e194f3cdSVladimir Medvedkin    if target_has_avx512
19e194f3cdSVladimir Medvedkin        cflags += ['-DCC_DIR24_8_AVX512_SUPPORT', '-DCC_TRIE_AVX512_SUPPORT']
20e194f3cdSVladimir Medvedkin        sources += files('dir24_8_avx512.c', 'trie_avx512.c')
2199a2dd95SBruce Richardson
22e194f3cdSVladimir Medvedkin    elif cc_has_avx512
23e194f3cdSVladimir Medvedkin        cflags += ['-DCC_DIR24_8_AVX512_SUPPORT', '-DCC_TRIE_AVX512_SUPPORT']
2499a2dd95SBruce Richardson        dir24_8_avx512_tmp = static_library('dir24_8_avx512_tmp',
2599a2dd95SBruce Richardson                'dir24_8_avx512.c',
2696c3d06aSVladimir Medvedkin                dependencies: [static_rte_eal, static_rte_rcu],
27e194f3cdSVladimir Medvedkin                c_args: cflags + cc_avx512_flags)
2899a2dd95SBruce Richardson        objs += dir24_8_avx512_tmp.extract_objects('dir24_8_avx512.c')
2999a2dd95SBruce Richardson        trie_avx512_tmp = static_library('trie_avx512_tmp',
3099a2dd95SBruce Richardson                'trie_avx512.c',
31*6cb10a9bSRobin Jarry                dependencies: [static_rte_eal, static_rte_rcu, static_rte_net],
32e194f3cdSVladimir Medvedkin                c_args: cflags + cc_avx512_flags)
3399a2dd95SBruce Richardson        objs += trie_avx512_tmp.extract_objects('trie_avx512.c')
3499a2dd95SBruce Richardson    endif
3599a2dd95SBruce Richardsonendif
36