Make: Add deps for each shared obj individually

This prevents the SPDK build from requirng unnecessary dependencies when
not compiling certain features. Also, fixes github issue #434

Change-Id: I7d0520474f3656ae32670313f2290e6b741c5ca8
Signed-off-by: Seth Howell <seth.howell@intel.com>
Reviewed-on: https://review.gerrithub.io/426131
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Lance Hartmann <lance.hartmann@oracle.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
Seth Howell 2018-09-19 12:15:37 -07:00 committed by Jim Harris
parent c779298802
commit 89ef21520d
9 changed files with 55 additions and 3 deletions

View File

@ -36,5 +36,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = bdev_aio.c bdev_aio_rpc.c C_SRCS = bdev_aio.c bdev_aio_rpc.c
LIBNAME = bdev_aio LIBNAME = bdev_aio
LOCAL_SYS_LIBS = -laio
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -36,5 +36,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = vbdev_lvol.c vbdev_lvol_rpc.c C_SRCS = vbdev_lvol.c vbdev_lvol_rpc.c
LIBNAME = vbdev_lvol LIBNAME = vbdev_lvol
LOCAL_SYS_LIBS = -luuid
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -36,5 +36,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = bdev_malloc.c bdev_malloc_rpc.c C_SRCS = bdev_malloc.c bdev_malloc_rpc.c
LIBNAME = bdev_malloc LIBNAME = bdev_malloc
LOCAL_SYS_LIBS = -luuid
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -40,5 +40,6 @@ C_SRCS = acceptor.c conn.c \
tgt_node.c iscsi_subsystem.c \ tgt_node.c iscsi_subsystem.c \
iscsi_rpc.c task.c iscsi_rpc.c task.c
LIBNAME = iscsi LIBNAME = iscsi
LOCAL_SYS_LIBS = -lcrypto
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -36,6 +36,9 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = log.c log_flags.c C_SRCS = log.c log_flags.c
LIBNAME = log LIBNAME = log
ifeq ($(CONFIG_LOG_BACKTRACE),y)
LOCAL_SYS_LIBS += -lunwind
endif
DIRS-y = rpc DIRS-y = rpc

View File

@ -38,5 +38,24 @@ C_SRCS = nvme_ctrlr_cmd.c nvme_ctrlr.c nvme_fabric.c nvme_ns_cmd.c nvme_ns.c nvm
nvme_ns_ocssd_cmd.c nvme_ns_ocssd_cmd.c
C_SRCS-$(CONFIG_RDMA) += nvme_rdma.c C_SRCS-$(CONFIG_RDMA) += nvme_rdma.c
LIBNAME = nvme LIBNAME = nvme
LOCAL_SYS_LIBS = -luuid
ifeq ($(CONFIG_RDMA),y)
LOCAL_SYS_LIBS += -libverbs -lrdmacm
#Attach only if FreeBSD and RDMA is specified with configure
ifeq ($(OS),FreeBSD)
# Mellanox - MLX4 HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libmlx4.*)","")
LOCAL_SYS_LIBS += -lmlx4
endif
# Mellanox - MLX5 HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libmlx5.*)","")
LOCAL_SYS_LIBS += -lmlx5
endif
# Chelsio HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libcxgb4.*)","")
LOCAL_SYS_LIBS += -lcxgb4
endif
endif
endif
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -34,12 +34,30 @@
SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..) SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
LIBNAME = nvmf
C_SRCS = ctrlr.c ctrlr_discovery.c ctrlr_bdev.c \ C_SRCS = ctrlr.c ctrlr_discovery.c ctrlr_bdev.c \
subsystem.c nvmf.c \ subsystem.c nvmf.c \
request.c transport.c request.c transport.c
C_SRCS-$(CONFIG_RDMA) += rdma.c C_SRCS-$(CONFIG_RDMA) += rdma.c
LIBNAME = nvmf
LOCAL_SYS_LIBS = -luuid
ifeq ($(CONFIG_RDMA),y)
LOCAL_SYS_LIBS += -libverbs -lrdmacm
#Attach only if FreeBSD and RDMA is specified with configure
ifeq ($(OS),FreeBSD)
# Mellanox - MLX4 HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libmlx4.*)","")
LOCAL_SYS_LIBS += -lmlx4
endif
# Mellanox - MLX5 HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libmlx5.*)","")
LOCAL_SYS_LIBS += -lmlx5
endif
# Chelsio HBA Userspace Library
ifneq ("$(wildcard /usr/lib/libcxgb4.*)","")
LOCAL_SYS_LIBS += -lcxgb4
endif
endif
endif
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -36,5 +36,6 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
C_SRCS = base64.c bit_array.c cpuset.c crc16.c crc32.c crc32c.c crc32_ieee.c fd.c strerror_tls.c string.c uuid.c C_SRCS = base64.c bit_array.c cpuset.c crc16.c crc32.c crc32c.c crc32_ieee.c fd.c strerror_tls.c string.c uuid.c
LIBNAME = util LIBNAME = util
LOCAL_SYS_LIBS = -luuid
include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk include $(SPDK_ROOT_DIR)/mk/spdk.lib.mk

View File

@ -44,6 +44,13 @@ else
DEP := $(LIB) DEP := $(LIB)
endif endif
ifeq ($(OS),FreeBSD)
LOCAL_SYS_LIBS += -L/usr/local/lib -lrt
else
LOCAL_SYS_LIBS += -lrt
endif
.PHONY: all clean $(DIRS-y) .PHONY: all clean $(DIRS-y)
all: $(DEP) $(DIRS-y) all: $(DEP) $(DIRS-y)
@ -57,7 +64,7 @@ $(SHARED_LINKED_LIB): $(SHARED_REALNAME_LIB)
$(SHARED_REALNAME_LIB): $(LIB) $(SHARED_REALNAME_LIB): $(LIB)
$(Q)echo " SO $(notdir $@)"; \ $(Q)echo " SO $(notdir $@)"; \
$(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE)) $(call spdk_build_realname_shared_lib,$^,$(SPDK_MAP_FILE),$(LOCAL_SYS_LIBS))
$(LIB): $(OBJS) $(LIB): $(OBJS)
$(LIB_C) $(LIB_C)