xref: /spdk/mk/spdk.modules.mk (revision b30d57cdad6d2bc75cc1e4e2ebbcebcb0d98dcfa)
1#
2#  BSD LICENSE
3#
4#  Copyright (c) Intel Corporation.
5#  All rights reserved.
6#
7#  Redistribution and use in source and binary forms, with or without
8#  modification, are permitted provided that the following conditions
9#  are met:
10#
11#    * Redistributions of source code must retain the above copyright
12#      notice, this list of conditions and the following disclaimer.
13#    * Redistributions in binary form must reproduce the above copyright
14#      notice, this list of conditions and the following disclaimer in
15#      the documentation and/or other materials provided with the
16#      distribution.
17#    * Neither the name of Intel Corporation nor the names of its
18#      contributors may be used to endorse or promote products derived
19#      from this software without specific prior written permission.
20#
21#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32#
33
34BLOCKDEV_MODULES_LIST = bdev_malloc bdev_null bdev_nvme bdev_passthru bdev_lvol
35BLOCKDEV_MODULES_LIST += bdev_raid bdev_error bdev_gpt bdev_split bdev_delay
36BLOCKDEV_MODULES_LIST += bdev_zone_block
37BLOCKDEV_MODULES_LIST += blobfs blobfs_bdev blob_bdev blob lvol vmd nvme
38
39# Some bdev modules don't have pollers, so they can directly run in interrupt mode
40INTR_BLOCKDEV_MODULES_LIST = bdev_malloc bdev_passthru bdev_error bdev_gpt bdev_split bdev_raid
41# Logical volume, blobstore and blobfs can directly run in both interrupt mode and poll mode.
42INTR_BLOCKDEV_MODULES_LIST += bdev_lvol blobfs blobfs_bdev blob_bdev blob lvol
43
44ifeq ($(CONFIG_CRYPTO),y)
45BLOCKDEV_MODULES_LIST += bdev_crypto
46endif
47
48ifeq ($(CONFIG_OCF),y)
49BLOCKDEV_MODULES_LIST += bdev_ocf
50BLOCKDEV_MODULES_LIST += ocfenv
51endif
52
53ifeq ($(CONFIG_REDUCE),y)
54BLOCKDEV_MODULES_LIST += bdev_compress reduce
55BLOCKDEV_MODULES_PRIVATE_LIBS += -lpmem
56endif
57
58ifeq ($(CONFIG_RDMA),y)
59BLOCKDEV_MODULES_LIST += rdma
60BLOCKDEV_MODULES_PRIVATE_LIBS += -libverbs -lrdmacm
61ifeq ($(CONFIG_RDMA_PROV),mlx5_dv)
62BLOCKDEV_MODULES_PRIVATE_LIBS += -lmlx5
63endif
64endif
65
66ifeq ($(OS),Linux)
67BLOCKDEV_MODULES_LIST += bdev_ftl ftl
68BLOCKDEV_MODULES_LIST += bdev_aio
69BLOCKDEV_MODULES_PRIVATE_LIBS += -laio
70INTR_BLOCKDEV_MODULES_LIST += bdev_aio
71ifeq ($(CONFIG_VIRTIO),y)
72BLOCKDEV_MODULES_LIST += bdev_virtio virtio
73endif
74ifeq ($(CONFIG_ISCSI_INITIATOR),y)
75BLOCKDEV_MODULES_LIST += bdev_iscsi
76# Fedora installs libiscsi to /usr/lib64/iscsi for some reason.
77BLOCKDEV_MODULES_PRIVATE_LIBS += -L/usr/lib64/iscsi -liscsi
78endif
79endif
80
81ifeq ($(CONFIG_URING),y)
82BLOCKDEV_MODULES_LIST += bdev_uring
83BLOCKDEV_MODULES_PRIVATE_LIBS += -luring
84ifneq ($(strip $(CONFIG_URING_PATH)),)
85CFLAGS += -I$(CONFIG_URING_PATH)
86BLOCKDEV_MODULES_PRIVATE_LIBS += -L$(CONFIG_URING_PATH)
87endif
88endif
89
90ifeq ($(CONFIG_RBD),y)
91BLOCKDEV_MODULES_LIST += bdev_rbd
92BLOCKDEV_MODULES_PRIVATE_LIBS += -lrados -lrbd
93endif
94
95ifeq ($(CONFIG_PMDK),y)
96BLOCKDEV_MODULES_LIST += bdev_pmem
97BLOCKDEV_MODULES_PRIVATE_LIBS += -lpmemblk -lpmem
98endif
99
100SOCK_MODULES_LIST = sock_posix
101
102ifeq ($(OS), Linux)
103ifeq ($(CONFIG_URING),y)
104SOCK_MODULES_LIST += sock_uring
105endif
106endif
107
108ACCEL_MODULES_LIST = accel_ioat ioat
109ifeq ($(CONFIG_IDXD),y)
110ACCEL_MODULES_LIST += accel_idxd idxd
111endif
112
113EVENT_BDEV_SUBSYSTEM = event_bdev event_accel event_vmd event_sock
114
115ALL_MODULES_LIST = $(BLOCKDEV_MODULES_LIST) $(ACCEL_MODULES_LIST) $(SOCK_MODULES_LIST)
116SYS_LIBS += $(BLOCKDEV_MODULES_PRIVATE_LIBS)
117