1# 2# BSD LICENSE 3# 4# Copyright (c) Intel Corporation. 5# All rights reserved. 6# Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 7# 8# Redistribution and use in source and binary forms, with or without 9# modification, are permitted provided that the following conditions 10# are met: 11# 12# * Redistributions of source code must retain the above copyright 13# notice, this list of conditions and the following disclaimer. 14# * Redistributions in binary form must reproduce the above copyright 15# notice, this list of conditions and the following disclaimer in 16# the documentation and/or other materials provided with the 17# distribution. 18# * Neither the name of Intel Corporation nor the names of its 19# contributors may be used to endorse or promote products derived 20# from this software without specific prior written permission. 21# 22# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 23# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 24# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 25# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 26# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 27# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 28# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 29# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 30# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 31# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 32# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 33# 34 35# Installation prefix 36CONFIG_PREFIX="/usr/local" 37 38# Target architecture 39CONFIG_ARCH=native 40 41# Prefix for cross compilation 42CONFIG_CROSS_PREFIX= 43 44# Build with debug logging. Turn off for performance testing and normal usage 45CONFIG_DEBUG=n 46 47# Treat warnings as errors (fail the build on any warning). 48CONFIG_WERROR=n 49 50# Build with link-time optimization. 51CONFIG_LTO=n 52 53# Generate profile guided optimization data. 54CONFIG_PGO_CAPTURE=n 55 56# Use profile guided optimization data. 57CONFIG_PGO_USE=n 58 59# Build with code coverage instrumentation. 60CONFIG_COVERAGE=n 61 62# Build with Address Sanitizer enabled 63CONFIG_ASAN=n 64 65# Build with Undefined Behavior Sanitizer enabled 66CONFIG_UBSAN=n 67 68# Build with Thread Sanitizer enabled 69CONFIG_TSAN=n 70 71# Build functional tests 72CONFIG_TESTS=y 73 74# Build unit tests 75CONFIG_UNIT_TESTS=y 76 77# Build examples 78CONFIG_EXAMPLES=y 79 80# Build apps 81CONFIG_APPS=y 82 83# Build with Control-flow Enforcement Technology (CET) 84CONFIG_CET=n 85 86# Directory that contains the desired SPDK environment library. 87# By default, this is implemented using DPDK. 88CONFIG_ENV= 89 90# This directory should contain 'include' and 'lib' directories for your DPDK 91# installation. 92CONFIG_DPDK_DIR= 93# Automatically set via pkg-config when bare --with-dpdk is set 94CONFIG_DPDK_LIB_DIR= 95CONFIG_DPDK_INC_DIR= 96CONFIG_DPDK_PKG_CONFIG=n 97 98# This directory should contain 'include' and 'lib' directories for WPDK. 99CONFIG_WPDK_DIR= 100 101# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid 102# fio source code directory. 103CONFIG_FIO_PLUGIN=n 104 105# This directory should contain the source code directory for fio 106# which is required for building the SPDK FIO plugin. 107CONFIG_FIO_SOURCE_DIR=/usr/src/fio 108 109# Enable RDMA support for the NVMf target. 110# Requires ibverbs development libraries. 111CONFIG_RDMA=n 112CONFIG_RDMA_SEND_WITH_INVAL=n 113CONFIG_RDMA_SET_ACK_TIMEOUT=n 114CONFIG_RDMA_PROV=verbs 115 116# Enable NVMe Character Devices. 117CONFIG_NVME_CUSE=n 118 119# Enable FC support for the NVMf target. 120# Requires FC low level driver (from FC vendor) 121CONFIG_FC=n 122CONFIG_FC_PATH= 123 124# Build Ceph RBD support in bdev modules 125# Requires librbd development libraries 126CONFIG_RBD=n 127 128# Build vhost library. 129CONFIG_VHOST=y 130 131# Build vhost initiator (Virtio) driver. 132CONFIG_VIRTIO=y 133 134# Build custom vfio-user transport for NVMf target and NVMe initiator. 135CONFIG_VFIO_USER=n 136CONFIG_VFIO_USER_DIR= 137 138# Build with PMDK backends 139CONFIG_PMDK=n 140CONFIG_PMDK_DIR= 141 142# Enable the dependencies for building the compress vbdev 143CONFIG_REDUCE=n 144 145# Enable mlx5_pci dpdk compress PMD, enabled automatically if CONFIG_REDUCE=y and libmlx5 exists 146CONFIG_REDUCE_MLX5=n 147 148# Requires libiscsi development libraries. 149CONFIG_ISCSI_INITIATOR=n 150 151# Enable the dependencies for building the crypto vbdev 152CONFIG_CRYPTO=n 153 154# Build spdk shared libraries in addition to the static ones. 155CONFIG_SHARED=n 156 157# Build with VTune suport. 158CONFIG_VTUNE=n 159CONFIG_VTUNE_DIR= 160 161# Build Intel IPSEC_MB library 162CONFIG_IPSEC_MB=n 163 164# Enable OCF module 165CONFIG_OCF=n 166CONFIG_OCF_PATH= 167CONFIG_CUSTOMOCF=n 168 169# Build ISA-L library 170CONFIG_ISAL=y 171 172# Build with IO_URING support 173CONFIG_URING=n 174 175# Path to custom built IO_URING library 176CONFIG_URING_PATH= 177 178# Build with FUSE support 179CONFIG_FUSE=n 180 181# Build with RAID5 support 182CONFIG_RAID5=n 183 184# Build with IDXD support 185# In this mode, SPDK fully controls the DSA device. 186CONFIG_IDXD=n 187 188# Build with USDT support 189CONFIG_USDT=n 190 191# Build with IDXD kernel support. 192# In this mode, SPDK shares the DSA device with the kernel. 193CONFIG_IDXD_KERNEL=n 194