4 # Copyright (c) Intel Corporation.
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
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
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.
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.
34 LVOL_MODULES_LIST
= vbdev_lvol
35 # Modules below are added as dependency for vbdev_lvol
36 LVOL_MODULES_LIST
+= blob blob_bdev lvol
38 BLOCKDEV_MODULES_LIST
= $(LVOL_MODULES_LIST
)
39 BLOCKDEV_MODULES_LIST
+= bdev_malloc bdev_null bdev_nvme nvme vbdev_passthru vbdev_error vbdev_gpt vbdev_split
40 BLOCKDEV_MODULES_LIST
+= vbdev_raid
42 ifeq ($(CONFIG_CRYPTO
),y
)
43 BLOCKDEV_MODULES_LIST
+= vbdev_crypto
46 ifeq ($(CONFIG_RDMA
),y
)
47 BLOCKDEV_MODULES_DEPS
+= -libverbs
-lrdmacm
51 BLOCKDEV_MODULES_LIST
+= bdev_aio
52 BLOCKDEV_MODULES_DEPS
+= -laio
53 ifeq ($(CONFIG_VIRTIO
),y
)
54 BLOCKDEV_MODULES_LIST
+= bdev_virtio virtio
56 ifeq ($(CONFIG_ISCSI_INITIATOR
),y
)
57 BLOCKDEV_MODULES_LIST
+= bdev_iscsi
58 # Fedora installs libiscsi to /usr/lib64/iscsi for some reason.
59 BLOCKDEV_MODULES_DEPS
+= -L
/usr
/lib64
/iscsi
-liscsi
63 ifeq ($(CONFIG_RBD
),y
)
64 BLOCKDEV_MODULES_LIST
+= bdev_rbd
65 BLOCKDEV_MODULES_DEPS
+= -lrados
-lrbd
68 ifeq ($(CONFIG_PMDK
),y
)
69 BLOCKDEV_MODULES_LIST
+= bdev_pmem
70 BLOCKDEV_MODULES_DEPS
+= -lpmemblk
73 SOCK_MODULES_LIST
= sock
74 SOCK_MODULES_LIST
+= sock_posix
76 ifeq ($(CONFIG_VPP
),y
)
77 ifneq ($(CONFIG_VPP_DIR
),)
78 SOCK_MODULES_DEPS
= -l
:libvppinfra.a
-l
:libsvm.a
-l
:libvapiclient.a
79 SOCK_MODULES_DEPS
+= -l
:libvppcom.a
-l
:libvlibmemoryclient.a
81 SOCK_MODULES_DEPS
= -lvppcom
83 SOCK_MODULES_LIST
+= sock_vpp
86 COPY_MODULES_LIST
= copy_ioat ioat
88 BLOCKDEV_MODULES_LINKER_ARGS
= -Wl
,--whole-archive \
89 $(BLOCKDEV_MODULES_LIST
:%=-lspdk_
%) \
90 -Wl
,--no-whole-archive \
91 $(BLOCKDEV_MODULES_DEPS
)
93 BLOCKDEV_MODULES_FILES
= $(call spdk_lib_list_to_static_libs
,$(BLOCKDEV_MODULES_LIST
))
95 BLOCKDEV_NO_LVOL_MODULES_LIST
= $(filter-out $(LVOL_MODULES_LIST
),$(BLOCKDEV_MODULES_LIST
))
96 BLOCKDEV_NO_LVOL_MODULES_LINKER_ARGS
= -Wl
,--whole-archive \
97 $(BLOCKDEV_NO_LVOL_MODULES_LIST
:%=-lspdk_
%) \
98 -Wl
,--no-whole-archive \
99 $(BLOCKDEV_MODULES_DEPS
)
101 BLOCKDEV_NO_LVOL_MODULES_FILES
= $(call spdk_lib_list_to_static_libs
,$(BLOCKDEV_NO_LVOL_MODULES_LIST
))
103 COPY_MODULES_LINKER_ARGS
= -Wl
,--whole-archive \
104 $(COPY_MODULES_LIST
:%=-lspdk_
%) \
105 -Wl
,--no-whole-archive \
108 COPY_MODULES_FILES
= $(call spdk_lib_list_to_static_libs
,$(COPY_MODULES_LIST
))
110 SOCK_MODULES_LINKER_ARGS
= -Wl
,--whole-archive \
111 $(SOCK_MODULES_LIST
:%=-lspdk_
%) \
112 $(SOCK_MODULES_DEPS
) \
113 -Wl
,--no-whole-archive
115 SOCK_MODULES_FILES
= $(call spdk_lib_list_to_static_libs
,$(SOCK_MODULES_LIST
))