forked from spdk/spdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
spdk.modules.mk
143 lines (119 loc) · 4.06 KB
/
spdk.modules.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
# SPDX-License-Identifier: BSD-3-Clause
# Copyright (C) 2016 Intel Corporation.
# Copyright (c) 2021-2024 NVIDIA CORPORATION & AFFILIATES.
# All rights reserved.
#
BLOCKDEV_MODULES_LIST = bdev_malloc bdev_null bdev_nvme bdev_passthru bdev_lvol
BLOCKDEV_MODULES_LIST += bdev_raid bdev_error bdev_gpt bdev_split bdev_delay
BLOCKDEV_MODULES_LIST += bdev_zone_block
BLOCKDEV_MODULES_LIST += blobfs blobfs_bdev blob_bdev blob lvol vmd nvme
# Some bdev modules don't have pollers, so they can directly run in interrupt mode
INTR_BLOCKDEV_MODULES_LIST = bdev_malloc bdev_passthru bdev_error bdev_gpt bdev_split bdev_raid
# Logical volume, blobstore and blobfs can directly run in both interrupt mode and poll mode.
INTR_BLOCKDEV_MODULES_LIST += bdev_lvol blobfs blobfs_bdev blob_bdev blob lvol
ifeq ($(CONFIG_XNVME),y)
BLOCKDEV_MODULES_LIST += bdev_xnvme
XNVME_LIB_DIR=$(SPDK_ROOT_DIR)/xnvme/builddir/lib
ifeq ($(CONFIG_SHARED),y)
BLOCKDEV_MODULES_PRIVATE_LIBS += $(XNVME_LIB_DIR)/libxnvme.so -Wl,-rpath=$(XNVME_LIB_DIR)
else
BLOCKDEV_MODULES_PRIVATE_LIBS += $(XNVME_LIB_DIR)/libxnvme.a -luring -laio -pthread -lrt
endif
endif
ifeq ($(CONFIG_VFIO_USER),y)
BLOCKDEV_MODULES_LIST += vfio_user
endif
ifeq ($(CONFIG_CRYPTO),y)
BLOCKDEV_MODULES_LIST += bdev_crypto
ifeq ($(CONFIG_CRYPTO_MLX5),y)
BLOCKDEV_MODULES_PRIVATE_LIBS += -lmlx5 -libverbs
endif
endif
ifeq ($(CONFIG_OCF),y)
BLOCKDEV_MODULES_LIST += bdev_ocf
BLOCKDEV_MODULES_LIST += ocfenv
endif
ifeq ($(CONFIG_VBDEV_COMPRESS),y)
BLOCKDEV_MODULES_LIST += bdev_compress reduce
BLOCKDEV_MODULES_PRIVATE_LIBS += -lpmem
ifeq ($(CONFIG_VBDEV_COMPRESS_MLX5),y)
BLOCKDEV_MODULES_PRIVATE_LIBS += -lmlx5 -libverbs
endif
endif
ifeq ($(CONFIG_RDMA),y)
BLOCKDEV_MODULES_LIST += rdma_provider rdma_utils
BLOCKDEV_MODULES_PRIVATE_LIBS += -libverbs -lrdmacm
ifeq ($(CONFIG_RDMA_PROV),mlx5_dv)
BLOCKDEV_MODULES_PRIVATE_LIBS += -lmlx5
endif
endif
ifeq ($(OS),Linux)
BLOCKDEV_MODULES_LIST += bdev_aio
BLOCKDEV_MODULES_PRIVATE_LIBS += -laio
INTR_BLOCKDEV_MODULES_LIST += bdev_aio
BLOCKDEV_MODULES_LIST += bdev_ftl ftl
ifeq ($(CONFIG_VIRTIO),y)
BLOCKDEV_MODULES_LIST += bdev_virtio virtio
endif
ifeq ($(CONFIG_ISCSI_INITIATOR),y)
BLOCKDEV_MODULES_LIST += bdev_iscsi
# Fedora installs libiscsi to /usr/lib64/iscsi for some reason.
BLOCKDEV_MODULES_PRIVATE_LIBS += -L/usr/lib64/iscsi -liscsi
endif
endif
ifeq ($(OS),FreeBSD)
BLOCKDEV_MODULES_LIST += bdev_aio
endif
ifeq ($(CONFIG_URING),y)
BLOCKDEV_MODULES_LIST += bdev_uring
BLOCKDEV_MODULES_PRIVATE_LIBS += -luring
ifneq ($(strip $(CONFIG_URING_PATH)),)
CFLAGS += -I$(CONFIG_URING_PATH)
BLOCKDEV_MODULES_PRIVATE_LIBS += -L$(CONFIG_URING_PATH)
endif
endif
ifeq ($(CONFIG_RBD),y)
BLOCKDEV_MODULES_LIST += bdev_rbd
BLOCKDEV_MODULES_PRIVATE_LIBS += -lrados -lrbd
endif
ifeq ($(CONFIG_DAOS),y)
BLOCKDEV_MODULES_LIST += bdev_daos
BLOCKDEV_MODULES_PRIVATE_LIBS += -ldaos -ldaos_common -ldfs -lgurt -luuid -ldl
endif
SOCK_MODULES_LIST = sock_posix
ifeq ($(OS), Linux)
ifeq ($(CONFIG_URING),y)
SOCK_MODULES_LIST += sock_uring
endif
endif
ACCEL_MODULES_LIST = accel_error accel_ioat ioat
ifeq ($(CONFIG_IDXD),y)
ACCEL_MODULES_LIST += accel_dsa accel_iaa idxd
endif
ifeq ($(CONFIG_CRYPTO),y)
ACCEL_MODULES_LIST += accel_dpdk_cryptodev
endif
ifeq ($(CONFIG_DPDK_COMPRESSDEV),y)
ACCEL_MODULES_LIST += accel_dpdk_compressdev
endif
ifeq ($(CONFIG_RDMA_PROV)|$(CONFIG_CRYPTO),mlx5_dv|y)
ACCEL_MODULES_LIST += accel_mlx5
endif
SCHEDULER_MODULES_LIST = scheduler_dynamic
ifeq (y,$(DPDK_POWER))
SCHEDULER_MODULES_LIST += env_dpdk scheduler_dpdk_governor scheduler_gscheduler
endif
ifeq ($(CONFIG_VFIO_USER),y)
VFU_DEVICE_MODULES_LIST = vfu_device
endif
KEYRING_MODULES_LIST = event_keyring keyring_file
ifeq ($(CONFIG_HAVE_KEYUTILS),y)
KEYRING_MODULES_LIST += keyring_linux
endif
EVENT_BDEV_SUBSYSTEM = event_bdev event_accel event_vmd event_sock event_iobuf
ifeq ($(CONFIG_AIO_FSDEV), y)
FSDEV_MODULES_LIST = fsdev_aio
endif
ALL_MODULES_LIST = $(BLOCKDEV_MODULES_LIST) $(ACCEL_MODULES_LIST) $(SCHEDULER_MODULES_LIST) $(SOCK_MODULES_LIST)
ALL_MODULES_LIST += $(VFU_DEVICE_MODULES_LIST) $(KEYRING_MODULES_LIST) $(FSDEV_MODULES_LIST)
SYS_LIBS += $(BLOCKDEV_MODULES_PRIVATE_LIBS)