xref: /f-stack/dpdk/drivers/net/i40e/meson.build (revision 2d9fd380)
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2017 Intel Corporation
3
4cflags += ['-DPF_DRIVER',
5	'-DVF_DRIVER',
6	'-DINTEGRATED_VF',
7	'-DX722_A0_SUPPORT']
8
9subdir('base')
10objs = [base_objs]
11
12sources = files(
13	'i40e_ethdev.c',
14	'i40e_rxtx.c',
15	'i40e_ethdev_vf.c',
16	'i40e_pf.c',
17	'i40e_fdir.c',
18	'i40e_flow.c',
19	'i40e_tm.c',
20	'i40e_vf_representor.c',
21	'rte_pmd_i40e.c'
22	)
23
24deps += ['hash']
25includes += include_directories('base')
26
27if arch_subdir == 'x86'
28	dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1)
29	sources += files('i40e_rxtx_vec_sse.c')
30
31	# compile AVX2 version if either:
32	# a. we have AVX supported in minimum instruction set baseline
33	# b. it's not minimum instruction set, but supported by compiler
34	if cc.get_define('__AVX2__', args: machine_args) != ''
35		cflags += ['-DCC_AVX2_SUPPORT']
36		sources += files('i40e_rxtx_vec_avx2.c')
37	elif cc.has_argument('-mavx2')
38		cflags += ['-DCC_AVX2_SUPPORT']
39		i40e_avx2_lib = static_library('i40e_avx2_lib',
40				'i40e_rxtx_vec_avx2.c',
41				dependencies: [static_rte_ethdev,
42					static_rte_kvargs, static_rte_hash],
43				include_directories: includes,
44				c_args: [cflags, '-mavx2'])
45		objs += i40e_avx2_lib.extract_objects('i40e_rxtx_vec_avx2.c')
46	endif
47elif arch_subdir == 'ppc'
48       dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1)
49       sources += files('i40e_rxtx_vec_altivec.c')
50elif arch_subdir == 'arm'
51       dpdk_conf.set('RTE_LIBRTE_I40E_INC_VECTOR', 1)
52       sources += files('i40e_rxtx_vec_neon.c')
53endif
54
55headers = files('rte_pmd_i40e.h')
56