4 # Copyright (c) Intel Corporation.
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
11 # * Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
13 # * Redistributions in binary form must reproduce the above copyright
14 # notice, this list of conditions and the following disclaimer in
15 # the documentation and/or other materials provided with the
17 # * Neither the name of Intel Corporation nor the names of its
18 # contributors may be used to endorse or promote products derived
19 # from this software without specific prior written permission.
21 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 SPDK_ROOT_DIR
:= $(abspath
$(CURDIR
)/..
)
35 include $(SPDK_ROOT_DIR
)/mk
/spdk.common.mk
37 .PHONY
: all clean install uninstall
43 ifeq ($(CONFIG_CRYPTO
),y
)
45 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_AESNI_MB
=y
46 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_REORDER
=y
47 DPDK_CFLAGS
+= -I
$(IPSEC_MB_DIR
)
48 DPDK_LDFLAGS
+= -L
$(IPSEC_MB_DIR
)
50 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_AESNI_MB
=n
51 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_REORDER
=n
54 ifeq ($(CONFIG_REDUCE
),y
)
56 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_ISAL
=y
57 DPDK_CFLAGS
+= -I
$(ISAL_DIR
)
58 DPDK_LDFLAGS
+= -L
$(ISAL_DIR
)/.libs
60 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_ISAL
=n
63 ifeq ($(DPDK_FRAMEWORK
),y
)
64 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_QAT
=y
65 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_QAT_SYM
=y
66 ifeq ($(CONFIG_IGB_UIO_DRIVER
),y
)
67 DPDK_OPTS
+= CONFIG_RTE_EAL_IGB_UIO
=y
69 DPDK_OPTS
+= CONFIG_RTE_EAL_IGB_UIO
=n
72 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_QAT
=n
73 DPDK_OPTS
+= CONFIG_RTE_LIBRTE_PMD_QAT_SYM
=n
76 ifeq ($(TARGET_MACHINE
),aarch64
)
77 DPDK_CONFIG
:= arm64-armv8a
79 DPDK_CONFIG
:= $(TARGET_MACHINE
)-native
83 DPDK_CONFIG
:= $(DPDK_CONFIG
)-linuxapp
84 NPROC
:= $(shell nproc
)
87 DPDK_CONFIG
:= $(DPDK_CONFIG
)-bsdapp
88 NPROC
:= $(shell sysctl hw.ncpu | awk
'{print $$NF}')
92 ifeq ($(CC_TYPE
),clang
)
93 DPDK_CONFIG
:= $(DPDK_CONFIG
)-clang
95 DPDK_CONFIG
:= $(DPDK_CONFIG
)-gcc
100 ifeq ($(CONFIG_DEBUG
),y
)
101 DPDK_CFLAGS
+= -O0
-g
104 ifeq ($(CONFIG_WERROR
),y
)
105 DPDK_CFLAGS
+= -Werror
107 DPDK_CFLAGS
+= -Wno-error
110 ifdef EXTRA_DPDK_CFLAGS
111 $(warning EXTRA_DPDK_CFLAGS defined
, possibly to work around an unsupported compiler version
)
115 # Allow users to specify EXTRA_DPDK_CFLAGS if they want to build DPDK using unsupported compiler versions
116 DPDK_CFLAGS
+= $(EXTRA_DPDK_CFLAGS
)
118 $(SPDK_ROOT_DIR
)/dpdk
/build
:
119 $(Q
)$(MAKE
) -C
$(SPDK_ROOT_DIR
)/dpdk config T
=$(DPDK_CONFIG
) $(DPDK_OPTS
)
121 all: $(SPDK_ROOT_DIR
)/dpdk
/build
122 $(Q
)$(MAKE
) -C
$(SPDK_ROOT_DIR
)/dpdk
/build EXTRA_CFLAGS
="$(DPDK_CFLAGS)" EXTRA_LDFLAGS
="$(DPDK_LDFLAGS)" MAKEFLAGS
="T=$(DPDK_CONFIG) -j$(NPROC)" $(DPDK_OPTS
)
125 $(Q
)rm -rf
$(SPDK_ROOT_DIR
)/dpdk
/build