1# SPDX-License-Identifier: BSD-3-Clause 2# Copyright(c) 2018 Cisco Systems, Inc. 3 4sources = files( 5 'base/vnic_cq.c', 6 'base/vnic_dev.c', 7 'base/vnic_intr.c', 8 'base/vnic_rq.c', 9 'base/vnic_wq.c', 10 'enic_clsf.c', 11 'enic_ethdev.c', 12 'enic_flow.c', 13 'enic_fm_flow.c', 14 'enic_main.c', 15 'enic_res.c', 16 'enic_rxtx.c', 17 'enic_vf_representor.c', 18 ) 19deps += ['hash'] 20includes += include_directories('base') 21 22# The current implementation assumes 64-bit pointers 23if cc.get_define('__AVX2__', args: machine_args) != '' and dpdk_conf.get('RTE_ARCH_64') 24 sources += files('enic_rxtx_vec_avx2.c') 25# Build the avx2 handler if the compiler supports it, even though 'machine' 26# does not. This is to support users who build for the min supported machine 27# and need to run the binary on newer CPUs too. 28# This part is from i40e meson.build 29elif cc.has_argument('-mavx2') and dpdk_conf.get('RTE_ARCH_64') 30 enic_avx2_lib = static_library('enic_avx2_lib', 31 'enic_rxtx_vec_avx2.c', 32 dependencies: [static_rte_ethdev, static_rte_bus_pci], 33 include_directories: includes, 34 c_args: [cflags, '-mavx2']) 35 objs += enic_avx2_lib.extract_objects('enic_rxtx_vec_avx2.c') 36endif 37