xref: /spdk/mk/spdk.modules.mk (revision 344bb69312056bf7ea1f5590bdff6186d4bc917e)
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
39ifeq ($(CONFIG_CRYPTO),y)
40BLOCKDEV_MODULES_LIST += bdev_crypto
41endif
42
43ifeq ($(CONFIG_OCF),y)
44BLOCKDEV_MODULES_LIST += bdev_ocf
45BLOCKDEV_MODULES_LIST += ocfenv
46endif
47
48ifeq ($(CONFIG_REDUCE),y)
49BLOCKDEV_MODULES_LIST += bdev_compress reduce
50SYS_LIBS += -lpmem
51endif
52
53ifeq ($(CONFIG_RDMA),y)
54BLOCKDEV_MODULES_LIST += rdma
55SYS_LIBS += -libverbs -lrdmacm
56ifeq ($(CONFIG_RDMA_PROV),mlx5_dv)
57SYS_LIBS += -lmlx5
58endif
59endif
60
61ifeq ($(OS),Linux)
62BLOCKDEV_MODULES_LIST += bdev_ftl ftl
63BLOCKDEV_MODULES_LIST += bdev_aio
64SYS_LIBS += -laio
65ifeq ($(CONFIG_VIRTIO),y)
66BLOCKDEV_MODULES_LIST += bdev_virtio virtio
67endif
68ifeq ($(CONFIG_ISCSI_INITIATOR),y)
69BLOCKDEV_MODULES_LIST += bdev_iscsi
70# Fedora installs libiscsi to /usr/lib64/iscsi for some reason.
71SYS_LIBS += -L/usr/lib64/iscsi -liscsi
72endif
73endif
74
75ifeq ($(CONFIG_URING),y)
76BLOCKDEV_MODULES_LIST += bdev_uring
77SYS_LIBS += -luring
78ifneq ($(strip $(CONFIG_URING_PATH)),)
79CFLAGS += -I$(CONFIG_URING_PATH)
80LDFLAGS += -L$(CONFIG_URING_PATH)
81endif
82endif
83
84ifeq ($(CONFIG_RBD),y)
85BLOCKDEV_MODULES_LIST += bdev_rbd
86SYS_LIBS += -lrados -lrbd
87endif
88
89ifeq ($(CONFIG_PMDK),y)
90BLOCKDEV_MODULES_LIST += bdev_pmem
91SYS_LIBS += -lpmemblk -lpmem
92endif
93
94SOCK_MODULES_LIST = sock_posix
95
96ifeq ($(OS), Linux)
97ifeq ($(CONFIG_URING),y)
98SOCK_MODULES_LIST += sock_uring
99endif
100endif
101
102ACCEL_MODULES_LIST = accel_ioat ioat
103ifeq ($(CONFIG_IDXD),y)
104ACCEL_MODULES_LIST += accel_idxd idxd
105endif
106
107EVENT_BDEV_SUBSYSTEM = event_bdev event_accel event_vmd event_sock
108
109ALL_MODULES_LIST = $(BLOCKDEV_MODULES_LIST) $(ACCEL_MODULES_LIST) $(SOCK_MODULES_LIST)
110