]> git.proxmox.com Git - ceph.git/blob - ceph/src/spdk/mk/spdk.modules.mk
update sources to ceph Nautilus 14.2.1
[ceph.git] / ceph / src / spdk / mk / spdk.modules.mk
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
34 LVOL_MODULES_LIST = vbdev_lvol
35 # Modules below are added as dependency for vbdev_lvol
36 LVOL_MODULES_LIST += blob blob_bdev lvol
37
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
41
42 ifeq ($(CONFIG_CRYPTO),y)
43 BLOCKDEV_MODULES_LIST += vbdev_crypto
44 endif
45
46 ifeq ($(CONFIG_RDMA),y)
47 BLOCKDEV_MODULES_DEPS += -libverbs -lrdmacm
48 endif
49
50 ifeq ($(OS),Linux)
51 BLOCKDEV_MODULES_LIST += bdev_aio
52 BLOCKDEV_MODULES_DEPS += -laio
53 ifeq ($(CONFIG_VIRTIO),y)
54 BLOCKDEV_MODULES_LIST += bdev_virtio virtio
55 endif
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
60 endif
61 endif
62
63 ifeq ($(CONFIG_RBD),y)
64 BLOCKDEV_MODULES_LIST += bdev_rbd
65 BLOCKDEV_MODULES_DEPS += -lrados -lrbd
66 endif
67
68 ifeq ($(CONFIG_PMDK),y)
69 BLOCKDEV_MODULES_LIST += bdev_pmem
70 BLOCKDEV_MODULES_DEPS += -lpmemblk
71 endif
72
73 SOCK_MODULES_LIST = sock
74 SOCK_MODULES_LIST += sock_posix
75
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
80 else
81 SOCK_MODULES_DEPS = -lvppcom
82 endif
83 SOCK_MODULES_LIST += sock_vpp
84 endif
85
86 COPY_MODULES_LIST = copy_ioat ioat
87
88 BLOCKDEV_MODULES_LINKER_ARGS = -Wl,--whole-archive \
89 $(BLOCKDEV_MODULES_LIST:%=-lspdk_%) \
90 -Wl,--no-whole-archive \
91 $(BLOCKDEV_MODULES_DEPS)
92
93 BLOCKDEV_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(BLOCKDEV_MODULES_LIST))
94
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)
100
101 BLOCKDEV_NO_LVOL_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(BLOCKDEV_NO_LVOL_MODULES_LIST))
102
103 COPY_MODULES_LINKER_ARGS = -Wl,--whole-archive \
104 $(COPY_MODULES_LIST:%=-lspdk_%) \
105 -Wl,--no-whole-archive \
106 $(COPY_MODULES_DEPS)
107
108 COPY_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(COPY_MODULES_LIST))
109
110 SOCK_MODULES_LINKER_ARGS = -Wl,--whole-archive \
111 $(SOCK_MODULES_LIST:%=-lspdk_%) \
112 $(SOCK_MODULES_DEPS) \
113 -Wl,--no-whole-archive
114
115 SOCK_MODULES_FILES = $(call spdk_lib_list_to_static_libs,$(SOCK_MODULES_LIST))