numam-dpdk/lib/net/meson.build
Bruce Richardson 99a2dd955f lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on
the directory names. This prefix makes the directory names longer and also
makes it awkward to add features referring to individual libraries in the
build - should the lib names be specified with or without the prefix.
Therefore, we can just remove the library prefix and use the library's
unique name as the directory name, i.e. 'eal' rather than 'librte_eal'

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
2021-04-21 14:04:09 +02:00

122 lines
4.0 KiB
Meson

# SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017-2020 Intel Corporation
headers = files(
'rte_ip.h',
'rte_tcp.h',
'rte_udp.h',
'rte_esp.h',
'rte_sctp.h',
'rte_icmp.h',
'rte_arp.h',
'rte_ether.h',
'rte_vxlan.h',
'rte_gre.h',
'rte_gtp.h',
'rte_net.h',
'rte_net_crc.h',
'rte_mpls.h',
'rte_higig.h',
'rte_ecpri.h',
'rte_geneve.h',
)
sources = files(
'rte_arp.c',
'rte_ether.c',
'rte_net.c',
'rte_net_crc.c',
)
deps += ['mbuf']
if dpdk_conf.has('RTE_ARCH_X86_64')
net_crc_sse42_cpu_support = (cc.get_define('__PCLMUL__', args: machine_args) != '')
net_crc_avx512_cpu_support = (
cc.get_define('__AVX512F__', args: machine_args) != '' and
cc.get_define('__AVX512BW__', args: machine_args) != '' and
cc.get_define('__AVX512DQ__', args: machine_args) != '' and
cc.get_define('__AVX512VL__', args: machine_args) != '' and
cc.get_define('__VPCLMULQDQ__', args: machine_args) != ''
)
net_crc_sse42_cc_support = (cc.has_argument('-mpclmul') and cc.has_argument('-maes'))
net_crc_avx512_cc_support = (
not machine_args.contains('-mno-avx512f') and
cc.has_argument('-mavx512f') and
cc.has_argument('-mavx512bw') and
cc.has_argument('-mavx512dq') and
cc.has_argument('-mavx512vl') and
cc.has_argument('-mvpclmulqdq') and
cc.has_argument('-mavx2') and
cc.has_argument('-mavx')
)
build_static_net_crc_sse42_lib = 0
build_static_net_crc_avx512_lib = 0
if net_crc_sse42_cpu_support == true
sources += files('net_crc_sse.c')
cflags += ['-DCC_X86_64_SSE42_PCLMULQDQ_SUPPORT']
if net_crc_avx512_cpu_support == true
sources += files('net_crc_avx512.c')
cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT']
elif net_crc_avx512_cc_support == true
build_static_net_crc_avx512_lib = 1
net_crc_avx512_lib_cflags = [
'-mavx512f',
'-mavx512bw',
'-mavx512dq',
'-mavx512vl',
'-mvpclmulqdq',
'-mavx2',
'-mavx',
]
cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT']
endif
elif net_crc_sse42_cc_support == true
build_static_net_crc_sse42_lib = 1
net_crc_sse42_lib_cflags = ['-mpclmul', '-maes']
cflags += ['-DCC_X86_64_SSE42_PCLMULQDQ_SUPPORT']
if net_crc_avx512_cc_support == true
build_static_net_crc_avx512_lib = 1
net_crc_avx512_lib_cflags = [
'-mpclmul',
'-maes',
'-mavx512f',
'-mavx512bw',
'-mavx512dq',
'-mavx512vl',
'-mvpclmulqdq',
'-mavx2',
'-mavx',
]
cflags += ['-DCC_X86_64_AVX512_VPCLMULQDQ_SUPPORT']
endif
endif
if build_static_net_crc_sse42_lib == 1
net_crc_sse42_lib = static_library(
'net_crc_sse42_lib',
'net_crc_sse.c',
dependencies: static_rte_eal,
c_args: [cflags,
net_crc_sse42_lib_cflags])
objs += net_crc_sse42_lib.extract_objects('net_crc_sse.c')
endif
if build_static_net_crc_avx512_lib == 1
net_crc_avx512_lib = static_library(
'net_crc_avx512_lib',
'net_crc_avx512.c',
dependencies: static_rte_eal,
c_args: [cflags,
net_crc_avx512_lib_cflags])
objs += net_crc_avx512_lib.extract_objects('net_crc_avx512.c')
endif
elif (dpdk_conf.has('RTE_ARCH_ARM64') and
cc.get_define('__ARM_FEATURE_CRYPTO', args: machine_args) != '')
sources += files('net_crc_neon.c')
cflags += ['-DCC_ARM64_NEON_PMULL_SUPPORT']
endif