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