xref: /spdk/CONFIG (revision 081f8add594e2d188f285968efdeb3a02a91b32d)
1488570ebSJim Harris#  SPDX-License-Identifier: BSD-3-Clause
2a6dbe372Spaul luse#  Copyright (C) 2015 Intel Corporation.
31010fb3aSDaniel Verkamp#  All rights reserved.
4784b9d48SAlexey Marchuk#  Copyright (c) 2021, 2022 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
52796687dSParameswaran Krishnamurthy#  Copyright (c) 2022 Dell Inc, or its subsidiaries.
61010fb3aSDaniel Verkamp#
71010fb3aSDaniel Verkamp
851ab849bSJim Harris# configure options: __CONFIGURE_OPTIONS__
951ab849bSJim Harris
102e7fe8e8SDaniel Verkamp# Installation prefix
1185bc2bbeSPawel WodkowskiCONFIG_PREFIX="/usr/local"
122e7fe8e8SDaniel Verkamp
130e6ddfd6SBen Walker# Target architecture
140e6ddfd6SBen WalkerCONFIG_ARCH=native
150e6ddfd6SBen Walker
16e8863cb7SMichal Berger# Destination directory for the libraries
17e8863cb7SMichal BergerCONFIG_LIBDIR=
18e8863cb7SMichal Berger
193def834cSAmelia Blachuciak# Prefix for cross compilation
203def834cSAmelia BlachuciakCONFIG_CROSS_PREFIX=
213def834cSAmelia Blachuciak
221010fb3aSDaniel Verkamp# Build with debug logging. Turn off for performance testing and normal usage
2385bc2bbeSPawel WodkowskiCONFIG_DEBUG=n
241010fb3aSDaniel Verkamp
2555d9ff6aSDaniel Verkamp# Treat warnings as errors (fail the build on any warning).
2685bc2bbeSPawel WodkowskiCONFIG_WERROR=n
2755d9ff6aSDaniel Verkamp
286d6d1161SDaniel Verkamp# Build with link-time optimization.
2985bc2bbeSPawel WodkowskiCONFIG_LTO=n
306d6d1161SDaniel Verkamp
31995d60f4SBen Walker# Generate profile guided optimization data.
32995d60f4SBen WalkerCONFIG_PGO_CAPTURE=n
33995d60f4SBen Walker
34995d60f4SBen Walker# Use profile guided optimization data.
35995d60f4SBen WalkerCONFIG_PGO_USE=n
36995d60f4SBen Walker
37db5f3612SBen Walker# Place profile data in this directory
38db5f3612SBen WalkerCONFIG_PGO_DIR=
39db5f3612SBen Walker
40497d40b1SDaniel Verkamp# Build with code coverage instrumentation.
4185bc2bbeSPawel WodkowskiCONFIG_COVERAGE=n
42497d40b1SDaniel Verkamp
434cb05719SDaniel Verkamp# Build with Address Sanitizer enabled
4485bc2bbeSPawel WodkowskiCONFIG_ASAN=n
454cb05719SDaniel Verkamp
461b68a8e7SDaniel Verkamp# Build with Undefined Behavior Sanitizer enabled
4785bc2bbeSPawel WodkowskiCONFIG_UBSAN=n
481b68a8e7SDaniel Verkamp
49050565e5SJim Harris# Build with LLVM fuzzing enabled
50050565e5SJim HarrisCONFIG_FUZZER=n
51050565e5SJim HarrisCONFIG_FUZZER_LIB=
52050565e5SJim Harris
53830912e2SBen Walker# Build with Thread Sanitizer enabled
5485bc2bbeSPawel WodkowskiCONFIG_TSAN=n
55830912e2SBen Walker
569fcb1cb0STomasz Zawadzki# Build functional tests
5785bc2bbeSPawel WodkowskiCONFIG_TESTS=y
589022a59eSDaniel Verkamp
599fcb1cb0STomasz Zawadzki# Build unit tests
609fcb1cb0STomasz ZawadzkiCONFIG_UNIT_TESTS=y
619fcb1cb0STomasz Zawadzki
629b2c6452SJacek Kalwas# Build examples
639b2c6452SJacek KalwasCONFIG_EXAMPLES=y
649b2c6452SJacek Kalwas
65119158cdSRajarshi Chowdhury# Build apps
66119158cdSRajarshi ChowdhuryCONFIG_APPS=y
67119158cdSRajarshi Chowdhury
6891e42257SJim Harris# Build with Control-flow Enforcement Technology (CET)
6991e42257SJim HarrisCONFIG_CET=n
7091e42257SJim Harris
71a4747c60SBen Walker# Directory that contains the desired SPDK environment library.
72a4747c60SBen Walker# By default, this is implemented using DPDK.
7385bc2bbeSPawel WodkowskiCONFIG_ENV=
74a4747c60SBen Walker
751010fb3aSDaniel Verkamp# This directory should contain 'include' and 'lib' directories for your DPDK
76ff6299f8SJim Harris# installation.
7785bc2bbeSPawel WodkowskiCONFIG_DPDK_DIR=
787232c450SMichal Berger# Automatically set via pkg-config when bare --with-dpdk is set
797232c450SMichal BergerCONFIG_DPDK_LIB_DIR=
807232c450SMichal BergerCONFIG_DPDK_INC_DIR=
817232c450SMichal BergerCONFIG_DPDK_PKG_CONFIG=n
821010fb3aSDaniel Verkamp
839854c138SNick Connolly# This directory should contain 'include' and 'lib' directories for WPDK.
849854c138SNick ConnollyCONFIG_WPDK_DIR=
859854c138SNick Connolly
86461cfcecSPawel Wodkowski# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid
87ddb59105SBen Walker# fio source code directory.
8885bc2bbeSPawel WodkowskiCONFIG_FIO_PLUGIN=n
89ddb59105SBen Walker
90ddb59105SBen Walker# This directory should contain the source code directory for fio
91ddb59105SBen Walker# which is required for building the SPDK FIO plugin.
9285bc2bbeSPawel WodkowskiCONFIG_FIO_SOURCE_DIR=/usr/src/fio
930f912a0eSDaniel Verkamp
943f80d551SDaniel Verkamp# Enable RDMA support for the NVMf target.
950f912a0eSDaniel Verkamp# Requires ibverbs development libraries.
9685bc2bbeSPawel WodkowskiCONFIG_RDMA=n
9785bc2bbeSPawel WodkowskiCONFIG_RDMA_SEND_WITH_INVAL=n
9894966468SAlexey MarchukCONFIG_RDMA_SET_ACK_TIMEOUT=n
997706450fSMichael HaeuptleCONFIG_RDMA_SET_TOS=n
100daee62a0SAlexey MarchukCONFIG_RDMA_PROV=verbs
101c1341b07SZiye Yang
102805d9942STomasz Kulasek# Enable NVMe Character Devices.
10368b467b7SJim HarrisCONFIG_NVME_CUSE=y
104805d9942STomasz Kulasek
105ed56a3d4SAnil Veerabhadrappa# Enable FC support for the NVMf target.
106ed56a3d4SAnil Veerabhadrappa# Requires FC low level driver (from FC vendor)
107ed56a3d4SAnil VeerabhadrappaCONFIG_FC=n
108ed56a3d4SAnil VeerabhadrappaCONFIG_FC_PATH=
109ed56a3d4SAnil Veerabhadrappa
110c1341b07SZiye Yang# Build Ceph RBD support in bdev modules
111c1341b07SZiye Yang# Requires librbd development libraries
11285bc2bbeSPawel WodkowskiCONFIG_RBD=n
113ba74eaf4SDaniel Verkamp
1142e283fcbS0xe0f# Build DAOS support in bdev modules
1152e283fcbS0xe0f# Requires daos development libraries
1162e283fcbS0xe0fCONFIG_DAOS=n
117044bb175SDenis BarakthanovCONFIG_DAOS_DIR=
1182e283fcbS0xe0f
119ed2b53f3SYifan Bian# Build UBLK support
120ed2b53f3SYifan BianCONFIG_UBLK=n
121ed2b53f3SYifan Bian
122ba74eaf4SDaniel Verkamp# Build vhost library.
12385bc2bbeSPawel WodkowskiCONFIG_VHOST=y
124fca11f15SPiotr Pelplinski
1257dee96ceSDariusz Stojaczyk# Build vhost initiator (Virtio) driver.
12685bc2bbeSPawel WodkowskiCONFIG_VIRTIO=y
1277dee96ceSDariusz Stojaczyk
1283ff9c136SChangpeng# Build custom vfio-user transport for NVMf target and NVMe initiator.
1293b673b84SChangpeng LiuCONFIG_VFIO_USER=n
130d0b2448bSChangpeng LiuCONFIG_VFIO_USER_DIR=
131b30d57cdSChangpeng Liu
1326f338d4bSKrishna Kanth Reddy# Build with xNVMe
1336f338d4bSKrishna Kanth ReddyCONFIG_XNVME=n
1346f338d4bSKrishna Kanth Reddy
135976f8b09Spaul luse# Enable the dependencies for building the DPDK accel compress module
136976f8b09Spaul luseCONFIG_DPDK_COMPRESSDEV=n
137976f8b09Spaul luse
13819e2dc38Spaul luse# Enable the dependencies for building the compress vbdev, includes the reduce library
13919e2dc38Spaul luseCONFIG_VBDEV_COMPRESS=n
14097022803SJim Harris
14119e2dc38Spaul luse# Enable mlx5_pci dpdk compress PMD, enabled automatically if CONFIG_VBDEV_COMPRESS=y and libmlx5 exists
14219e2dc38Spaul luseCONFIG_VBDEV_COMPRESS_MLX5=n
143e269bf4eSAlexey Marchuk
1442a6ddeb8SYuriy Umanets# Enable mlx5_pci dpdk crypto PMD, enabled automatically if CONFIG_CRYPTO=y and libmlx5 exists
1452a6ddeb8SYuriy UmanetsCONFIG_CRYPTO_MLX5=n
1462a6ddeb8SYuriy Umanets
14713603217SZhangfei Gao# Enable UADK dpdk crypto PMD
14813603217SZhangfei GaoCONFIG_DPDK_UADK=n
14913603217SZhangfei Gao
1502af15344SJim Harris# Requires libiscsi development libraries.
15185bc2bbeSPawel WodkowskiCONFIG_ISCSI_INITIATOR=n
15241586b0fSKunal Sablok
1536118b853SDaniel Verkamp# Enable the dependencies for building the crypto vbdev
15485bc2bbeSPawel WodkowskiCONFIG_CRYPTO=n
1550923734cSLance Hartmann
1560923734cSLance Hartmann# Build spdk shared libraries in addition to the static ones.
15785bc2bbeSPawel WodkowskiCONFIG_SHARED=n
158461cfcecSPawel Wodkowski
1593f912cf0SMichal Berger# Build with VTune support.
16085bc2bbeSPawel WodkowskiCONFIG_VTUNE=n
16185bc2bbeSPawel WodkowskiCONFIG_VTUNE_DIR=
1629abf7e8fSSeth Howell
163f823b7f5SJim Harris# Build Intel IPSEC_MB library
164f823b7f5SJim HarrisCONFIG_IPSEC_MB=n
165d1fee489SVitaliy Mysak
166d1fee489SVitaliy Mysak# Enable OCF module
167d1fee489SVitaliy MysakCONFIG_OCF=n
168d1fee489SVitaliy MysakCONFIG_OCF_PATH=
169d1fee489SVitaliy MysakCONFIG_CUSTOMOCF=n
170552e21ccSZiye Yang
171552e21ccSZiye Yang# Build ISA-L library
172552e21ccSZiye YangCONFIG_ISAL=y
1738165bf71SBen Walker
174784b9d48SAlexey Marchuk# Build ISA-L-crypto library
175784b9d48SAlexey MarchukCONFIG_ISAL_CRYPTO=y
176784b9d48SAlexey Marchuk
1778165bf71SBen Walker# Build with IO_URING support
1788165bf71SBen WalkerCONFIG_URING=n
1798165bf71SBen Walker
1808b840195SIndraneel M# Build IO_URING bdev with ZNS support
1818b840195SIndraneel MCONFIG_URING_ZNS=n
1828b840195SIndraneel M
1838165bf71SBen Walker# Path to custom built IO_URING library
1848165bf71SBen WalkerCONFIG_URING_PATH=
1857fa15e28SXiaodong Liu
18634192459SBoris Glimcher# Path to custom built OPENSSL library
18734192459SBoris GlimcherCONFIG_OPENSSL_PATH=
18834192459SBoris Glimcher
1897fa15e28SXiaodong Liu# Build with FUSE support
1907fa15e28SXiaodong LiuCONFIG_FUSE=n
19173763d40SArtur Paszkiewicz
19283a4b155SArtur Paszkiewicz# Build with RAID5f support
19383a4b155SArtur PaszkiewiczCONFIG_RAID5F=n
194e58e9fbdSpaul luse
195e58e9fbdSpaul luse# Build with IDXD support
1962ed914f8SZiye Yang# In this mode, SPDK fully controls the DSA device.
197e58e9fbdSpaul luseCONFIG_IDXD=n
1985a1c74bfSJim Harris
1995a1c74bfSJim Harris# Build with USDT support
2005a1c74bfSJim HarrisCONFIG_USDT=n
2012ed914f8SZiye Yang
2022ed914f8SZiye Yang# Build with IDXD kernel support.
2032ed914f8SZiye Yang# In this mode, SPDK shares the DSA device with the kernel.
2042ed914f8SZiye YangCONFIG_IDXD_KERNEL=n
2053e3fbf91SYuriy Umanets
20643a3984cSJim Harris# arc4random is available in stdlib.h
20743a3984cSJim HarrisCONFIG_HAVE_ARC4RANDOM=n
20843a3984cSJim Harris
209634ac768SKrzysztof Karas# uuid_generate_sha1 is available in uuid/uuid.h
210634ac768SKrzysztof KarasCONFIG_HAVE_UUID_GENERATE_SHA1=n
211634ac768SKrzysztof Karas
2123e3fbf91SYuriy Umanets# Is DPDK using libbsd?
2133e3fbf91SYuriy UmanetsCONFIG_HAVE_LIBBSD=n
214f1980244SYuriy Umanets
215544a8fe5SJim Harris# Is DPDK using libarchive?
216544a8fe5SJim HarrisCONFIG_HAVE_LIBARCHIVE=n
217544a8fe5SJim Harris
21801452b1bSDuncan Bellamy# execinfo.h is available
21901452b1bSDuncan BellamyCONFIG_HAVE_EXECINFO_H=n
22001452b1bSDuncan Bellamy
2216610b3e4SKonrad Sztyber# libkeytuils is available
2226610b3e4SKonrad SztyberCONFIG_HAVE_KEYUTILS=n
2236610b3e4SKonrad Sztyber
224fc8dece0SKonrad Sztyber# OpenSSL has EVP_MAC definitions
225fc8dece0SKonrad SztyberCONFIG_HAVE_EVP_MAC=n
226fc8dece0SKonrad Sztyber
227f1980244SYuriy Umanets# Path to IPSEC_MB used by DPDK
228f1980244SYuriy UmanetsCONFIG_IPSEC_MB_DIR=
229509241ceSKonrad Sztyber
230509241ceSKonrad Sztyber# Generate Storage Management Agent's protobuf interface
231509241ceSKonrad SztyberCONFIG_SMA=n
2322796687dSParameswaran Krishnamurthy
2332796687dSParameswaran Krishnamurthy# Build with Avahi support
2342796687dSParameswaran KrishnamurthyCONFIG_AVAHI=n
2358247bd40SMarcin Spiewak
2368247bd40SMarcin Spiewak# Setup DPDK's RTE_MAX_LCORES
237bbed12f6SMichael PiszczekCONFIG_MAX_LCORES=128
2381e46e023SMaciej Mis
239*081f8addSJim Harris# Maximum number of iobuf NUMA nodes supported
240*081f8addSJim HarrisCONFIG_MAX_NUMA_NODES=1
241*081f8addSJim Harris
2421e46e023SMaciej Mis# Build all Go components
2431e46e023SMaciej MisCONFIG_GOLANG=n
244bf30e09aSAnton Nayshtut
245bf30e09aSAnton Nayshtut# Build fsdev
246bf30e09aSAnton NayshtutCONFIG_FSDEV=y
247e21c39aaSAnton Nayshtut
248e21c39aaSAnton Nayshtut# Build with aio fsdev
249e21c39aaSAnton NayshtutCONFIG_AIO_FSDEV=y
250e21c39aaSAnton Nayshtut
251e21c39aaSAnton Nayshtut# struct stat has st_atime field
252e21c39aaSAnton NayshtutCONFIG_HAVE_STRUCT_STAT_ST_ATIM=n
253e21c39aaSAnton Nayshtut
254e21c39aaSAnton Nayshtut# struct stat has st_atimespec field
255e21c39aaSAnton NayshtutCONFIG_HAVE_STRUCT_STAT_ST_ATIMESPEC=n
256e21c39aaSAnton Nayshtut
257e21c39aaSAnton Nayshtut# libc contains the copy_file_range
258e21c39aaSAnton NayshtutCONFIG_COPY_FILE_RANGE=n
25948b83bb7SYankun Li
26048b83bb7SYankun Li# liblz4 is available
26148b83bb7SYankun LiCONFIG_HAVE_LZ4=n
262