xref: /dpdk/drivers/net/iavf/meson.build (revision 4e2cf9af)
1# SPDX-License-Identifier: BSD-3-Clause
2# Copyright(c) 2018 Luca Boccassi <[email protected]>
3
4cflags += ['-Wno-strict-aliasing']
5
6includes += include_directories('../../common/iavf')
7deps += ['common_iavf']
8
9sources = files(
10	'iavf_ethdev.c',
11	'iavf_rxtx.c',
12	'iavf_vchnl.c',
13	'iavf_generic_flow.c',
14	'iavf_fdir.c',
15	'iavf_hash.c',
16)
17
18if arch_subdir == 'x86'
19	sources += files('iavf_rxtx_vec_sse.c')
20
21	# compile AVX2 version if either:
22	# a. we have AVX supported in minimum instruction set baseline
23	# b. it's not minimum instruction set, but supported by compiler
24	if cc.get_define('__AVX2__', args: machine_args) != ''
25		cflags += ['-DCC_AVX2_SUPPORT']
26		sources += files('iavf_rxtx_vec_avx2.c')
27	elif cc.has_argument('-mavx2')
28		cflags += ['-DCC_AVX2_SUPPORT']
29		iavf_avx2_lib = static_library('iavf_avx2_lib',
30				'iavf_rxtx_vec_avx2.c',
31				dependencies: [static_rte_ethdev,
32					static_rte_kvargs, static_rte_hash],
33				include_directories: includes,
34				c_args: [cflags, '-mavx2'])
35		objs += iavf_avx2_lib.extract_objects('iavf_rxtx_vec_avx2.c')
36	endif
37endif
38