]> git.proxmox.com Git - ceph.git/blame - ceph/src/spdk/dpdkbuild/Makefile
import 15.2.0 Octopus source
[ceph.git] / ceph / src / spdk / dpdkbuild / Makefile
CommitLineData
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
34SPDK_ROOT_DIR := $(abspath $(CURDIR)/..)
35include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
36
9f95a23c 37.PHONY: all clean install uninstall
11fdf7f2 38
9f95a23c
TL
39DPDK_FRAMEWORK = n
40DPDK_OPTS =
41DPDK_CFLAGS =
11fdf7f2
TL
42
43ifeq ($(CONFIG_CRYPTO),y)
9f95a23c 44DPDK_FRAMEWORK = y
11fdf7f2 45DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y
11fdf7f2 46DPDK_OPTS += CONFIG_RTE_LIBRTE_REORDER=y
9f95a23c
TL
47DPDK_CFLAGS += -I$(IPSEC_MB_DIR)
48DPDK_LDFLAGS += -L$(IPSEC_MB_DIR)
49else
50DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n
51DPDK_OPTS += CONFIG_RTE_LIBRTE_REORDER=n
52endif
53
54ifeq ($(CONFIG_REDUCE),y)
55DPDK_FRAMEWORK = y
56DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_ISAL=y
57DPDK_CFLAGS += -I$(ISAL_DIR)
58DPDK_LDFLAGS += -L$(ISAL_DIR)/.libs
59else
60DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_ISAL=n
61endif
62
63ifeq ($(DPDK_FRAMEWORK),y)
11fdf7f2
TL
64DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT=y
65DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT_SYM=y
66ifeq ($(CONFIG_IGB_UIO_DRIVER),y)
67DPDK_OPTS += CONFIG_RTE_EAL_IGB_UIO=y
68else
69DPDK_OPTS += CONFIG_RTE_EAL_IGB_UIO=n
70endif
9f95a23c 71else
11fdf7f2
TL
72DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT=n
73DPDK_OPTS += CONFIG_RTE_LIBRTE_PMD_QAT_SYM=n
74endif
75
76ifeq ($(TARGET_MACHINE),aarch64)
77DPDK_CONFIG := arm64-armv8a
78else
79DPDK_CONFIG := $(TARGET_MACHINE)-native
80endif
81
82ifeq ($(OS),Linux)
83DPDK_CONFIG := $(DPDK_CONFIG)-linuxapp
84NPROC := $(shell nproc)
85else
86ifeq ($(OS),FreeBSD)
87DPDK_CONFIG := $(DPDK_CONFIG)-bsdapp
88NPROC := $(shell sysctl hw.ncpu | awk '{print $$NF}')
89endif
90endif
91
92ifeq ($(CC_TYPE),clang)
93DPDK_CONFIG := $(DPDK_CONFIG)-clang
11fdf7f2
TL
94else
95DPDK_CONFIG := $(DPDK_CONFIG)-gcc
11fdf7f2
TL
96endif
97
9f95a23c 98DPDK_CFLAGS += -fPIC
11fdf7f2
TL
99
100ifeq ($(CONFIG_DEBUG),y)
101DPDK_CFLAGS += -O0 -g
11fdf7f2
TL
102endif
103
104ifeq ($(CONFIG_WERROR),y)
105DPDK_CFLAGS += -Werror
106else
107DPDK_CFLAGS += -Wno-error
108endif
109
110ifdef EXTRA_DPDK_CFLAGS
111$(warning EXTRA_DPDK_CFLAGS defined, possibly to work around an unsupported compiler version)
112$(shell sleep 1)
113endif
114
115# Allow users to specify EXTRA_DPDK_CFLAGS if they want to build DPDK using unsupported compiler versions
116DPDK_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
121all: $(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
124clean:
9f95a23c 125 $(Q)rm -rf $(SPDK_ROOT_DIR)/dpdk/build
11fdf7f2
TL
126
127install: all
9f95a23c
TL
128
129uninstall:
130 @: