1488570ebSJim Harris# SPDX-License-Identifier: BSD-3-Clause 2c02b1794SDaniel Verkamp# Copyright (c) Intel Corporation. 31010fb3aSDaniel Verkamp# All rights reserved. 4e269bf4eSAlexey Marchuk# Copyright (c) 2021 NVIDIA CORPORATION & AFFILIATES. All rights reserved. 51010fb3aSDaniel Verkamp# 61010fb3aSDaniel Verkamp 72e7fe8e8SDaniel Verkamp# Installation prefix 885bc2bbeSPawel WodkowskiCONFIG_PREFIX="/usr/local" 92e7fe8e8SDaniel Verkamp 100e6ddfd6SBen Walker# Target architecture 110e6ddfd6SBen WalkerCONFIG_ARCH=native 120e6ddfd6SBen Walker 13e8863cb7SMichal Berger# Destination directory for the libraries 14e8863cb7SMichal BergerCONFIG_LIBDIR= 15e8863cb7SMichal Berger 163def834cSAmelia Blachuciak# Prefix for cross compilation 173def834cSAmelia BlachuciakCONFIG_CROSS_PREFIX= 183def834cSAmelia Blachuciak 191010fb3aSDaniel Verkamp# Build with debug logging. Turn off for performance testing and normal usage 2085bc2bbeSPawel WodkowskiCONFIG_DEBUG=n 211010fb3aSDaniel Verkamp 2255d9ff6aSDaniel Verkamp# Treat warnings as errors (fail the build on any warning). 2385bc2bbeSPawel WodkowskiCONFIG_WERROR=n 2455d9ff6aSDaniel Verkamp 256d6d1161SDaniel Verkamp# Build with link-time optimization. 2685bc2bbeSPawel WodkowskiCONFIG_LTO=n 276d6d1161SDaniel Verkamp 28995d60f4SBen Walker# Generate profile guided optimization data. 29995d60f4SBen WalkerCONFIG_PGO_CAPTURE=n 30995d60f4SBen Walker 31995d60f4SBen Walker# Use profile guided optimization data. 32995d60f4SBen WalkerCONFIG_PGO_USE=n 33995d60f4SBen Walker 34497d40b1SDaniel Verkamp# Build with code coverage instrumentation. 3585bc2bbeSPawel WodkowskiCONFIG_COVERAGE=n 36497d40b1SDaniel Verkamp 374cb05719SDaniel Verkamp# Build with Address Sanitizer enabled 3885bc2bbeSPawel WodkowskiCONFIG_ASAN=n 394cb05719SDaniel Verkamp 401b68a8e7SDaniel Verkamp# Build with Undefined Behavior Sanitizer enabled 4185bc2bbeSPawel WodkowskiCONFIG_UBSAN=n 421b68a8e7SDaniel Verkamp 43050565e5SJim Harris# Build with LLVM fuzzing enabled 44050565e5SJim HarrisCONFIG_FUZZER=n 45050565e5SJim HarrisCONFIG_FUZZER_LIB= 46050565e5SJim Harris 47830912e2SBen Walker# Build with Thread Sanitizer enabled 4885bc2bbeSPawel WodkowskiCONFIG_TSAN=n 49830912e2SBen Walker 509fcb1cb0STomasz Zawadzki# Build functional tests 5185bc2bbeSPawel WodkowskiCONFIG_TESTS=y 529022a59eSDaniel Verkamp 539fcb1cb0STomasz Zawadzki# Build unit tests 549fcb1cb0STomasz ZawadzkiCONFIG_UNIT_TESTS=y 559fcb1cb0STomasz Zawadzki 569b2c6452SJacek Kalwas# Build examples 579b2c6452SJacek KalwasCONFIG_EXAMPLES=y 589b2c6452SJacek Kalwas 59119158cdSRajarshi Chowdhury# Build apps 60119158cdSRajarshi ChowdhuryCONFIG_APPS=y 61119158cdSRajarshi Chowdhury 6291e42257SJim Harris# Build with Control-flow Enforcement Technology (CET) 6391e42257SJim HarrisCONFIG_CET=n 6491e42257SJim Harris 65a4747c60SBen Walker# Directory that contains the desired SPDK environment library. 66a4747c60SBen Walker# By default, this is implemented using DPDK. 6785bc2bbeSPawel WodkowskiCONFIG_ENV= 68a4747c60SBen Walker 691010fb3aSDaniel Verkamp# This directory should contain 'include' and 'lib' directories for your DPDK 70ff6299f8SJim Harris# installation. 7185bc2bbeSPawel WodkowskiCONFIG_DPDK_DIR= 727232c450SMichal Berger# Automatically set via pkg-config when bare --with-dpdk is set 737232c450SMichal BergerCONFIG_DPDK_LIB_DIR= 747232c450SMichal BergerCONFIG_DPDK_INC_DIR= 757232c450SMichal BergerCONFIG_DPDK_PKG_CONFIG=n 761010fb3aSDaniel Verkamp 779854c138SNick Connolly# This directory should contain 'include' and 'lib' directories for WPDK. 789854c138SNick ConnollyCONFIG_WPDK_DIR= 799854c138SNick Connolly 80461cfcecSPawel Wodkowski# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid 81ddb59105SBen Walker# fio source code directory. 8285bc2bbeSPawel WodkowskiCONFIG_FIO_PLUGIN=n 83ddb59105SBen Walker 84ddb59105SBen Walker# This directory should contain the source code directory for fio 85ddb59105SBen Walker# which is required for building the SPDK FIO plugin. 8685bc2bbeSPawel WodkowskiCONFIG_FIO_SOURCE_DIR=/usr/src/fio 870f912a0eSDaniel Verkamp 883f80d551SDaniel Verkamp# Enable RDMA support for the NVMf target. 890f912a0eSDaniel Verkamp# Requires ibverbs development libraries. 9085bc2bbeSPawel WodkowskiCONFIG_RDMA=n 9185bc2bbeSPawel WodkowskiCONFIG_RDMA_SEND_WITH_INVAL=n 9294966468SAlexey MarchukCONFIG_RDMA_SET_ACK_TIMEOUT=n 93daee62a0SAlexey MarchukCONFIG_RDMA_PROV=verbs 94c1341b07SZiye Yang 95805d9942STomasz Kulasek# Enable NVMe Character Devices. 96805d9942STomasz KulasekCONFIG_NVME_CUSE=n 97805d9942STomasz Kulasek 98ed56a3d4SAnil Veerabhadrappa# Enable FC support for the NVMf target. 99ed56a3d4SAnil Veerabhadrappa# Requires FC low level driver (from FC vendor) 100ed56a3d4SAnil VeerabhadrappaCONFIG_FC=n 101ed56a3d4SAnil VeerabhadrappaCONFIG_FC_PATH= 102ed56a3d4SAnil Veerabhadrappa 103c1341b07SZiye Yang# Build Ceph RBD support in bdev modules 104c1341b07SZiye Yang# Requires librbd development libraries 10585bc2bbeSPawel WodkowskiCONFIG_RBD=n 106ba74eaf4SDaniel Verkamp 107*2e283fcbS0xe0f# Build DAOS support in bdev modules 108*2e283fcbS0xe0f# Requires daos development libraries 109*2e283fcbS0xe0fCONFIG_DAOS=n 110*2e283fcbS0xe0f 111ba74eaf4SDaniel Verkamp# Build vhost library. 11285bc2bbeSPawel WodkowskiCONFIG_VHOST=y 113fca11f15SPiotr Pelplinski 1147dee96ceSDariusz Stojaczyk# Build vhost initiator (Virtio) driver. 11585bc2bbeSPawel WodkowskiCONFIG_VIRTIO=y 1167dee96ceSDariusz Stojaczyk 1173ff9c136SChangpeng# Build custom vfio-user transport for NVMf target and NVMe initiator. 1183b673b84SChangpeng LiuCONFIG_VFIO_USER=n 119d0b2448bSChangpeng LiuCONFIG_VFIO_USER_DIR= 120b30d57cdSChangpeng Liu 121218dcd84SJim Harris# Build with PMDK backends 12285bc2bbeSPawel WodkowskiCONFIG_PMDK=n 12385bc2bbeSPawel WodkowskiCONFIG_PMDK_DIR= 124e793fad5STomasz Zawadzki 1256f338d4bSKrishna Kanth Reddy# Build with xNVMe 1266f338d4bSKrishna Kanth ReddyCONFIG_XNVME=n 1276f338d4bSKrishna Kanth Reddy 128d9d4e40dSpaul luse# Enable the dependencies for building the compress vbdev 12997022803SJim HarrisCONFIG_REDUCE=n 13097022803SJim Harris 131e269bf4eSAlexey Marchuk# Enable mlx5_pci dpdk compress PMD, enabled automatically if CONFIG_REDUCE=y and libmlx5 exists 132e269bf4eSAlexey MarchukCONFIG_REDUCE_MLX5=n 133e269bf4eSAlexey Marchuk 1342a6ddeb8SYuriy Umanets# Enable mlx5_pci dpdk crypto PMD, enabled automatically if CONFIG_CRYPTO=y and libmlx5 exists 1352a6ddeb8SYuriy UmanetsCONFIG_CRYPTO_MLX5=n 1362a6ddeb8SYuriy Umanets 1372af15344SJim Harris# Requires libiscsi development libraries. 13885bc2bbeSPawel WodkowskiCONFIG_ISCSI_INITIATOR=n 13941586b0fSKunal Sablok 1406118b853SDaniel Verkamp# Enable the dependencies for building the crypto vbdev 14185bc2bbeSPawel WodkowskiCONFIG_CRYPTO=n 1420923734cSLance Hartmann 1430923734cSLance Hartmann# Build spdk shared libraries in addition to the static ones. 14485bc2bbeSPawel WodkowskiCONFIG_SHARED=n 145461cfcecSPawel Wodkowski 146461cfcecSPawel Wodkowski# Build with VTune suport. 14785bc2bbeSPawel WodkowskiCONFIG_VTUNE=n 14885bc2bbeSPawel WodkowskiCONFIG_VTUNE_DIR= 1499abf7e8fSSeth Howell 150f823b7f5SJim Harris# Build Intel IPSEC_MB library 151f823b7f5SJim HarrisCONFIG_IPSEC_MB=n 152d1fee489SVitaliy Mysak 153d1fee489SVitaliy Mysak# Enable OCF module 154d1fee489SVitaliy MysakCONFIG_OCF=n 155d1fee489SVitaliy MysakCONFIG_OCF_PATH= 156d1fee489SVitaliy MysakCONFIG_CUSTOMOCF=n 157552e21ccSZiye Yang 158552e21ccSZiye Yang# Build ISA-L library 159552e21ccSZiye YangCONFIG_ISAL=y 1608165bf71SBen Walker 1618165bf71SBen Walker# Build with IO_URING support 1628165bf71SBen WalkerCONFIG_URING=n 1638165bf71SBen Walker 1648165bf71SBen Walker# Path to custom built IO_URING library 1658165bf71SBen WalkerCONFIG_URING_PATH= 1667fa15e28SXiaodong Liu 16734192459SBoris Glimcher# Path to custom built OPENSSL library 16834192459SBoris GlimcherCONFIG_OPENSSL_PATH= 16934192459SBoris Glimcher 1707fa15e28SXiaodong Liu# Build with FUSE support 1717fa15e28SXiaodong LiuCONFIG_FUSE=n 17273763d40SArtur Paszkiewicz 17383a4b155SArtur Paszkiewicz# Build with RAID5f support 17483a4b155SArtur PaszkiewiczCONFIG_RAID5F=n 175e58e9fbdSpaul luse 176e58e9fbdSpaul luse# Build with IDXD support 1772ed914f8SZiye Yang# In this mode, SPDK fully controls the DSA device. 178e58e9fbdSpaul luseCONFIG_IDXD=n 1795a1c74bfSJim Harris 1805a1c74bfSJim Harris# Build with USDT support 1815a1c74bfSJim HarrisCONFIG_USDT=n 1822ed914f8SZiye Yang 1832ed914f8SZiye Yang# Build with IDXD kernel support. 1842ed914f8SZiye Yang# In this mode, SPDK shares the DSA device with the kernel. 1852ed914f8SZiye YangCONFIG_IDXD_KERNEL=n 1863e3fbf91SYuriy Umanets 18743a3984cSJim Harris# arc4random is available in stdlib.h 18843a3984cSJim HarrisCONFIG_HAVE_ARC4RANDOM=n 18943a3984cSJim Harris 1903e3fbf91SYuriy Umanets# Is DPDK using libbsd? 1913e3fbf91SYuriy UmanetsCONFIG_HAVE_LIBBSD=n 192f1980244SYuriy Umanets 193f1980244SYuriy Umanets# Path to IPSEC_MB used by DPDK 194f1980244SYuriy UmanetsCONFIG_IPSEC_MB_DIR= 195509241ceSKonrad Sztyber 196509241ceSKonrad Sztyber# Generate Storage Management Agent's protobuf interface 197509241ceSKonrad SztyberCONFIG_SMA=n 198