1 # SPDX-License-Identifier: BSD-3-Clause
2 # Copyright(c) 2010-2017 Intel Corporation
4 include $(RTE_SDK
)/mk
/rte.vars.mk
9 LIB
= librte_pmd_i40e.a
12 CFLAGS
+= $(WERROR_FLAGS
) -DPF_DRIVER
-DVF_DRIVER
-DINTEGRATED_VF
13 CFLAGS
+= -DX722_A0_SUPPORT
14 CFLAGS
+= -DALLOW_EXPERIMENTAL_API
16 LDLIBS
+= -lrte_eal
-lrte_mbuf
-lrte_mempool
-lrte_ring
17 LDLIBS
+= -lrte_ethdev
-lrte_net
-lrte_kvargs
-lrte_hash
18 LDLIBS
+= -lrte_bus_pci
20 EXPORT_MAP
:= rte_pmd_i40e_version.map
25 # Add extra flags for base driver files (also known as shared code)
28 ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC
),y
)
29 CFLAGS_BASE_DRIVER
= -diag-disable
593
30 else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG
),y
)
31 CFLAGS_BASE_DRIVER
+= -Wno-sign-compare
32 CFLAGS_BASE_DRIVER
+= -Wno-unused-value
33 CFLAGS_BASE_DRIVER
+= -Wno-unused-parameter
34 CFLAGS_BASE_DRIVER
+= -Wno-strict-aliasing
35 CFLAGS_BASE_DRIVER
+= -Wno-format
36 CFLAGS_BASE_DRIVER
+= -Wno-missing-field-initializers
37 CFLAGS_BASE_DRIVER
+= -Wno-pointer-to-int-cast
38 CFLAGS_BASE_DRIVER
+= -Wno-format-nonliteral
39 CFLAGS_BASE_DRIVER
+= -Wno-unused-variable
41 CFLAGS_BASE_DRIVER
= -Wno-sign-compare
42 CFLAGS_BASE_DRIVER
+= -Wno-unused-value
43 CFLAGS_BASE_DRIVER
+= -Wno-unused-parameter
44 CFLAGS_BASE_DRIVER
+= -Wno-strict-aliasing
45 CFLAGS_BASE_DRIVER
+= -Wno-format
46 CFLAGS_BASE_DRIVER
+= -Wno-missing-field-initializers
47 CFLAGS_BASE_DRIVER
+= -Wno-pointer-to-int-cast
48 CFLAGS_BASE_DRIVER
+= -Wno-format-nonliteral
49 CFLAGS_BASE_DRIVER
+= -Wno-format-security
50 CFLAGS_BASE_DRIVER
+= -Wno-unused-variable
52 ifeq ($(shell test $(GCC_VERSION
) -ge
44 && echo
1), 1)
53 CFLAGS_BASE_DRIVER
+= -Wno-unused-but-set-variable
56 CFLAGS_i40e_lan_hmc.o
+= -Wno-error
58 OBJS_BASE_DRIVER
=$(sort $(patsubst %.c
,%.o
,$(notdir $(wildcard $(SRCDIR
)/base
/*.c
))))
59 $(foreach obj
, $(OBJS_BASE_DRIVER
), $(eval CFLAGS_
$(obj
)+=$(CFLAGS_BASE_DRIVER
)))
61 VPATH
+= $(SRCDIR
)/base
64 # all source are stored in SRCS-y
65 # base driver is based on the package of dpdk-i40e.2016.04.18.12.tar.gz.
67 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_adminq.c
68 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_common.c
69 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_diag.c
70 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_hmc.c
71 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_lan_hmc.c
72 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_nvm.c
73 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_dcb.c
75 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_ethdev.c
76 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_rxtx.c
77 ifeq ($(CONFIG_RTE_ARCH_ARM64
),y
)
78 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR
) += i40e_rxtx_vec_neon.c
79 else ifeq ($(CONFIG_RTE_ARCH_PPC_64
),y
)
80 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR
) += i40e_rxtx_vec_altivec.c
82 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR
) += i40e_rxtx_vec_sse.c
84 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_ethdev_vf.c
85 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_pf.c
86 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_fdir.c
87 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_flow.c
88 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += rte_pmd_i40e.c
89 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_tm.c
90 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_PMD
) += i40e_vf_representor.c
92 ifeq ($(findstring RTE_MACHINE_CPUFLAG_AVX2
,$(CFLAGS
)),RTE_MACHINE_CPUFLAG_AVX2
)
96 $(shell $(CC
) -march
=core-avx2
-dM
-E
- </dev
/null
2>&1 | \
97 grep
-q AVX2
&& echo
1)
98 ifeq ($(CC_AVX2_SUPPORT
), 1)
99 ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC
),y
)
100 CFLAGS_i40e_rxtx_vec_avx2.o
+= -march
=core-avx2
102 CFLAGS_i40e_rxtx_vec_avx2.o
+= -mavx2
107 ifeq ($(CC_AVX2_SUPPORT
), 1)
108 SRCS-
$(CONFIG_RTE_LIBRTE_I40E_INC_VECTOR
) += i40e_rxtx_vec_avx2.c
111 # install this header file
112 SYMLINK-
$(CONFIG_RTE_LIBRTE_I40E_PMD
)-include := rte_pmd_i40e.h
114 include $(RTE_SDK
)/mk
/rte.lib.mk