]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | # |
2 | # BSD LICENSE | |
3 | # | |
4 | # Copyright (c) Intel Corporation. | |
5 | # All rights reserved. | |
6 | # | |
7 | # Redistribution and use in source and binary forms, with or without | |
8 | # modification, are permitted provided that the following conditions | |
9 | # are met: | |
10 | # | |
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 | |
16 | # distribution. | |
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. | |
20 | # | |
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. | |
32 | # | |
33 | ||
34 | SPDK_ROOT_DIR := $(abspath $(CURDIR)/..) | |
35 | include $(SPDK_ROOT_DIR)/mk/spdk.common.mk | |
36 | ||
9f95a23c | 37 | .PHONY: all clean install uninstall |
11fdf7f2 | 38 | |
9f95a23c TL |
39 | DPDK_FRAMEWORK = n |
40 | DPDK_OPTS = | |
41 | DPDK_CFLAGS = | |
11fdf7f2 TL |
42 | |
43 | ifeq ($(CONFIG_CRYPTO),y) | |
9f95a23c | 44 | DPDK_FRAMEWORK = y |
11fdf7f2 | 45 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y |
11fdf7f2 | 46 | DPDK_OPTS += CONFIG_RTE_LIBRTE_REORDER=y |
9f95a23c TL |
47 | DPDK_CFLAGS += -I$(IPSEC_MB_DIR) |
48 | DPDK_LDFLAGS += -L$(IPSEC_MB_DIR) | |
49 | else | |
50 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n | |
51 | DPDK_OPTS += CONFIG_RTE_LIBRTE_REORDER=n | |
52 | endif | |
53 | ||
54 | ifeq ($(CONFIG_REDUCE),y) | |
55 | DPDK_FRAMEWORK = y | |
56 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_ISAL=y | |
57 | DPDK_CFLAGS += -I$(ISAL_DIR) | |
58 | DPDK_LDFLAGS += -L$(ISAL_DIR)/.libs | |
59 | else | |
60 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_ISAL=n | |
61 | endif | |
62 | ||
63 | ifeq ($(DPDK_FRAMEWORK),y) | |
11fdf7f2 TL |
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 | |
68 | else | |
69 | DPDK_OPTS += CONFIG_RTE_EAL_IGB_UIO=n | |
70 | endif | |
9f95a23c | 71 | else |
11fdf7f2 TL |
72 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT=n |
73 | DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n | |
74 | endif | |
75 | ||
76 | ifeq ($(TARGET_MACHINE),aarch64) | |
77 | DPDK_CONFIG := arm64-armv8a | |
78 | else | |
79 | DPDK_CONFIG := $(TARGET_MACHINE)-native | |
80 | endif | |
81 | ||
82 | ifeq ($(OS),Linux) | |
83 | DPDK_CONFIG := $(DPDK_CONFIG)-linuxapp | |
84 | NPROC := $(shell nproc) | |
85 | else | |
86 | ifeq ($(OS),FreeBSD) | |
87 | DPDK_CONFIG := $(DPDK_CONFIG)-bsdapp | |
88 | NPROC := $(shell sysctl hw.ncpu | awk '{print $$NF}') | |
89 | endif | |
90 | endif | |
91 | ||
92 | ifeq ($(CC_TYPE),clang) | |
93 | DPDK_CONFIG := $(DPDK_CONFIG)-clang | |
11fdf7f2 TL |
94 | else |
95 | DPDK_CONFIG := $(DPDK_CONFIG)-gcc | |
11fdf7f2 TL |
96 | endif |
97 | ||
9f95a23c | 98 | DPDK_CFLAGS += -fPIC |
11fdf7f2 TL |
99 | |
100 | ifeq ($(CONFIG_DEBUG),y) | |
101 | DPDK_CFLAGS += -O0 -g | |
11fdf7f2 TL |
102 | endif |
103 | ||
104 | ifeq ($(CONFIG_WERROR),y) | |
105 | DPDK_CFLAGS += -Werror | |
106 | else | |
107 | DPDK_CFLAGS += -Wno-error | |
108 | endif | |
109 | ||
110 | ifdef EXTRA_DPDK_CFLAGS | |
111 | $(warning EXTRA_DPDK_CFLAGS defined, possibly to work around an unsupported compiler version) | |
112 | $(shell sleep 1) | |
113 | endif | |
114 | ||
115 | # Allow users to specify EXTRA_DPDK_CFLAGS if they want to build DPDK using unsupported compiler versions | |
116 | DPDK_CFLAGS += $(EXTRA_DPDK_CFLAGS) | |
117 | ||
9f95a23c | 118 | $(SPDK_ROOT_DIR)/dpdk/build: |
11fdf7f2 TL |
119 | $(Q)$(MAKE) -C $(SPDK_ROOT_DIR)/dpdk config T=$(DPDK_CONFIG) $(DPDK_OPTS) |
120 | ||
9f95a23c TL |
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) | |
11fdf7f2 TL |
123 | |
124 | clean: | |
9f95a23c | 125 | $(Q)rm -rf $(SPDK_ROOT_DIR)/dpdk/build |
11fdf7f2 TL |
126 | |
127 | install: all | |
9f95a23c TL |
128 | |
129 | uninstall: | |
130 | @: |