2017-12-19 15:49:03 +00:00
|
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
# Copyright(c) 2010-2014 Intel Corporation
|
2014-06-13 11:26:50 +00:00
|
|
|
|
|
|
|
include $(RTE_SDK)/mk/rte.vars.mk
|
|
|
|
|
|
|
|
# library name
|
|
|
|
LIB = librte_acl.a
|
|
|
|
|
|
|
|
CFLAGS += -O3
|
|
|
|
CFLAGS += $(WERROR_FLAGS) -I$(SRCDIR)
|
2017-10-12 16:04:21 +00:00
|
|
|
LDLIBS += -lrte_eal
|
2014-06-13 11:26:50 +00:00
|
|
|
|
2015-02-02 17:40:20 +00:00
|
|
|
EXPORT_MAP := rte_acl_version.map
|
|
|
|
|
2015-09-01 14:57:31 +00:00
|
|
|
LIBABIVER := 2
|
2015-02-02 17:40:21 +00:00
|
|
|
|
2014-06-13 11:26:50 +00:00
|
|
|
# all source are stored in SRCS-y
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += tb_mem.c
|
|
|
|
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += rte_acl.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_bld.c
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_gen.c
|
2014-09-01 15:28:44 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_scalar.c
|
2015-11-20 15:38:50 +00:00
|
|
|
|
2015-12-03 15:02:55 +00:00
|
|
|
ifneq ($(filter y,$(CONFIG_RTE_ARCH_ARM) $(CONFIG_RTE_ARCH_ARM64)),)
|
2015-11-06 09:40:27 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_neon.c
|
2017-05-12 05:45:45 +00:00
|
|
|
CFLAGS_acl_run_neon.o += -flax-vector-conversions
|
|
|
|
ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
|
|
|
|
CFLAGS_acl_run_neon.o += -Wno-maybe-uninitialized
|
|
|
|
endif
|
2016-09-08 16:48:04 +00:00
|
|
|
else ifeq ($(CONFIG_RTE_ARCH_PPC_64),y)
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_altivec.c
|
2015-11-06 09:40:27 +00:00
|
|
|
else
|
2014-09-01 15:28:44 +00:00
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_sse.c
|
2015-11-06 09:40:27 +00:00
|
|
|
endif
|
2014-09-01 15:28:44 +00:00
|
|
|
|
2015-01-20 18:41:00 +00:00
|
|
|
#
|
|
|
|
# If the compiler supports AVX2 instructions,
|
|
|
|
# then add support for AVX2 classify method.
|
|
|
|
#
|
|
|
|
|
2015-11-20 15:38:50 +00:00
|
|
|
#check if flag for AVX2 is already on, if not set it up manually
|
|
|
|
ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2,$(CFLAGS)),RTE_MACHINE_CPUFLAG_AVX2)
|
|
|
|
CC_AVX2_SUPPORT=1
|
|
|
|
else
|
|
|
|
CC_AVX2_SUPPORT=\
|
|
|
|
$(shell $(CC) -march=core-avx2 -dM -E - </dev/null 2>&1 | \
|
|
|
|
grep -q AVX2 && echo 1)
|
|
|
|
ifeq ($(CC_AVX2_SUPPORT), 1)
|
2016-05-26 11:20:14 +00:00
|
|
|
ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
|
2015-11-20 15:38:50 +00:00
|
|
|
CFLAGS_acl_run_avx2.o += -march=core-avx2
|
|
|
|
else
|
|
|
|
CFLAGS_acl_run_avx2.o += -mavx2
|
|
|
|
endif
|
|
|
|
endif
|
|
|
|
endif
|
2015-01-20 18:41:00 +00:00
|
|
|
|
|
|
|
ifeq ($(CC_AVX2_SUPPORT), 1)
|
|
|
|
SRCS-$(CONFIG_RTE_LIBRTE_ACL) += acl_run_avx2.c
|
|
|
|
CFLAGS_rte_acl.o += -DCC_AVX2_SUPPORT
|
|
|
|
endif
|
|
|
|
|
2014-06-13 11:26:50 +00:00
|
|
|
# install this header file
|
|
|
|
SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include := rte_acl_osdep.h
|
|
|
|
SYMLINK-$(CONFIG_RTE_LIBRTE_ACL)-include += rte_acl.h
|
|
|
|
|
|
|
|
include $(RTE_SDK)/mk/rte.lib.mk
|