1# SPDX-License-Identifier: BSD-3-Clause 2# Copyright(c) 2018 Intel Corporation 3# Copyright(c) 2020 Broadcom 4 5if is_windows 6 build = false 7 reason = 'not supported on Windows' 8 subdir_done() 9endif 10 11headers = files('rte_pmd_bnxt.h') 12cflags_options = [ 13 '-DSUPPORT_CFA_HW_ALL=1', 14] 15 16foreach option:cflags_options 17 if cc.has_argument(option) 18 cflags += option 19 endif 20endforeach 21 22headers = files('rte_pmd_bnxt.h') 23 24sources = files( 25 'bnxt_cpr.c', 26 'bnxt_ethdev.c', 27 'bnxt_filter.c', 28 'bnxt_flow.c', 29 'bnxt_hwrm.c', 30 'bnxt_irq.c', 31 'bnxt_ring.c', 32 'bnxt_rxq.c', 33 'bnxt_rxr.c', 34 'bnxt_stats.c', 35 'bnxt_txq.c', 36 'bnxt_txr.c', 37 'bnxt_util.c', 38 'bnxt_vnic.c', 39 'bnxt_reps.c', 40 41 'rte_pmd_bnxt.c', 42) 43 44#Add the subdirectories that need to be compiled 45subdir('tf_ulp') 46subdir('tf_core') 47subdir('hcapi/cfa') 48 49if arch_subdir == 'x86' 50 sources += files('bnxt_rxtx_vec_sse.c') 51 # compile AVX2 version if either: 52 # a. we have AVX supported in minimum instruction set baseline 53 # b. it's not minimum instruction set, but supported by compiler 54 if cc.get_define('__AVX2__', args: machine_args) != '' 55 cflags += ['-DCC_AVX2_SUPPORT'] 56 sources += files('bnxt_rxtx_vec_avx2.c') 57 elif cc.has_argument('-mavx2') 58 cflags += ['-DCC_AVX2_SUPPORT'] 59 bnxt_avx2_lib = static_library('bnxt_avx2_lib', 60 'bnxt_rxtx_vec_avx2.c', 61 dependencies: [static_rte_ethdev, 62 static_rte_bus_pci, 63 static_rte_kvargs, static_rte_hash], 64 include_directories: includes, 65 c_args: [cflags, '-mavx2']) 66 objs += bnxt_avx2_lib.extract_objects('bnxt_rxtx_vec_avx2.c') 67 endif 68elif arch_subdir == 'arm' and dpdk_conf.get('RTE_ARCH_64') 69 sources += files('bnxt_rxtx_vec_neon.c') 70endif 71