xref: /spdk/CONFIG (revision 6610b3e4fb6acadf7495b249cdbdbdf789757873)
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
1472af15344SJim Harris# Requires libiscsi development libraries.
14885bc2bbeSPawel WodkowskiCONFIG_ISCSI_INITIATOR=n
14941586b0fSKunal Sablok
1506118b853SDaniel Verkamp# Enable the dependencies for building the crypto vbdev
15185bc2bbeSPawel WodkowskiCONFIG_CRYPTO=n
1520923734cSLance Hartmann
1530923734cSLance Hartmann# Build spdk shared libraries in addition to the static ones.
15485bc2bbeSPawel WodkowskiCONFIG_SHARED=n
155461cfcecSPawel Wodkowski
1563f912cf0SMichal Berger# Build with VTune support.
15785bc2bbeSPawel WodkowskiCONFIG_VTUNE=n
15885bc2bbeSPawel WodkowskiCONFIG_VTUNE_DIR=
1599abf7e8fSSeth Howell
160f823b7f5SJim Harris# Build Intel IPSEC_MB library
161f823b7f5SJim HarrisCONFIG_IPSEC_MB=n
162d1fee489SVitaliy Mysak
163d1fee489SVitaliy Mysak# Enable OCF module
164d1fee489SVitaliy MysakCONFIG_OCF=n
165d1fee489SVitaliy MysakCONFIG_OCF_PATH=
166d1fee489SVitaliy MysakCONFIG_CUSTOMOCF=n
167552e21ccSZiye Yang
168552e21ccSZiye Yang# Build ISA-L library
169552e21ccSZiye YangCONFIG_ISAL=y
1708165bf71SBen Walker
171784b9d48SAlexey Marchuk# Build ISA-L-crypto library
172784b9d48SAlexey MarchukCONFIG_ISAL_CRYPTO=y
173784b9d48SAlexey Marchuk
1748165bf71SBen Walker# Build with IO_URING support
1758165bf71SBen WalkerCONFIG_URING=n
1768165bf71SBen Walker
1778b840195SIndraneel M# Build IO_URING bdev with ZNS support
1788b840195SIndraneel MCONFIG_URING_ZNS=n
1798b840195SIndraneel M
1808165bf71SBen Walker# Path to custom built IO_URING library
1818165bf71SBen WalkerCONFIG_URING_PATH=
1827fa15e28SXiaodong Liu
18334192459SBoris Glimcher# Path to custom built OPENSSL library
18434192459SBoris GlimcherCONFIG_OPENSSL_PATH=
18534192459SBoris Glimcher
1867fa15e28SXiaodong Liu# Build with FUSE support
1877fa15e28SXiaodong LiuCONFIG_FUSE=n
18873763d40SArtur Paszkiewicz
18983a4b155SArtur Paszkiewicz# Build with RAID5f support
19083a4b155SArtur PaszkiewiczCONFIG_RAID5F=n
191e58e9fbdSpaul luse
192e58e9fbdSpaul luse# Build with IDXD support
1932ed914f8SZiye Yang# In this mode, SPDK fully controls the DSA device.
194e58e9fbdSpaul luseCONFIG_IDXD=n
1955a1c74bfSJim Harris
1965a1c74bfSJim Harris# Build with USDT support
1975a1c74bfSJim HarrisCONFIG_USDT=n
1982ed914f8SZiye Yang
1992ed914f8SZiye Yang# Build with IDXD kernel support.
2002ed914f8SZiye Yang# In this mode, SPDK shares the DSA device with the kernel.
2012ed914f8SZiye YangCONFIG_IDXD_KERNEL=n
2023e3fbf91SYuriy Umanets
20343a3984cSJim Harris# arc4random is available in stdlib.h
20443a3984cSJim HarrisCONFIG_HAVE_ARC4RANDOM=n
20543a3984cSJim Harris
206634ac768SKrzysztof Karas# uuid_generate_sha1 is available in uuid/uuid.h
207634ac768SKrzysztof KarasCONFIG_HAVE_UUID_GENERATE_SHA1=n
208634ac768SKrzysztof Karas
2093e3fbf91SYuriy Umanets# Is DPDK using libbsd?
2103e3fbf91SYuriy UmanetsCONFIG_HAVE_LIBBSD=n
211f1980244SYuriy Umanets
212544a8fe5SJim Harris# Is DPDK using libarchive?
213544a8fe5SJim HarrisCONFIG_HAVE_LIBARCHIVE=n
214544a8fe5SJim Harris
21501452b1bSDuncan Bellamy# execinfo.h is available
21601452b1bSDuncan BellamyCONFIG_HAVE_EXECINFO_H=n
21701452b1bSDuncan Bellamy
218*6610b3e4SKonrad Sztyber# libkeytuils is available
219*6610b3e4SKonrad SztyberCONFIG_HAVE_KEYUTILS=n
220*6610b3e4SKonrad Sztyber
221f1980244SYuriy Umanets# Path to IPSEC_MB used by DPDK
222f1980244SYuriy UmanetsCONFIG_IPSEC_MB_DIR=
223509241ceSKonrad Sztyber
224509241ceSKonrad Sztyber# Generate Storage Management Agent's protobuf interface
225509241ceSKonrad SztyberCONFIG_SMA=n
2262796687dSParameswaran Krishnamurthy
2272796687dSParameswaran Krishnamurthy# Build with Avahi support
2282796687dSParameswaran KrishnamurthyCONFIG_AVAHI=n
2298247bd40SMarcin Spiewak
2308247bd40SMarcin Spiewak# Setup DPDK's RTE_MAX_LCORES
2318247bd40SMarcin SpiewakCONFIG_MAX_LCORES=
2321e46e023SMaciej Mis
2331e46e023SMaciej Mis# Build all Go components
2341e46e023SMaciej MisCONFIG_GOLANG=n
235