xref: /spdk/CONFIG (revision 2e283fcb67a8ee1d9b4f470f17bec57bbe3adad5)
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