Commit 407b550f authored by Jim Harris's avatar Jim Harris
Browse files

build: define SPDK_LIB_LIST to simplify building dependencies and linker args



Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ia969f9e5ed01f4b58cec2559133347d836118131
parent 2655503f
Loading
Loading
Loading
Loading
+6 −23
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk
include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk

APP = iscsi_tgt
@@ -45,35 +46,17 @@ CFLAGS += -I$(SPDK_ROOT_DIR)/lib

C_SRCS := iscsi_tgt.c

SPDK_LIBS = \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_json.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_jsonrpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_bdev_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_bdev.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_iscsi.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_scsi.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_net.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_copy.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_trace.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_conf.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_util.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_log.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_log_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_event.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_app_rpc.a \
SPDK_LIB_LIST = jsonrpc json rpc bdev_rpc bdev iscsi scsi net copy trace conf
SPDK_LIB_LIST += util log log_rpc event app_rpc

ifeq ($(CONFIG_RDMA), y)
LIBS += -libverbs -lrdmacm
endif
LIBS += -Wl,--whole-archive $(SPDK_LIBS) -Wl,--no-whole-archive
LIBS += -lcrypto $(ENV_LINKER_ARGS)
LIBS += $(ENV_LINKER_ARGS)
LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \
	$(COPY_MODULES_LINKER_ARGS)
LIBS += $(SPDK_LIB_LINKER_ARGS) -lcrypto

all : $(APP)

$(APP) : $(OBJS) $(SPDK_LIBS) $(ENV_LIBS)
$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS)
	$(LINK_C)

clean :
+6 −32
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk
include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk

APP = nvmf_tgt
@@ -41,43 +42,16 @@ CFLAGS += $(ENV_CFLAGS)

C_SRCS := conf.c nvmf_tgt.c nvmf_rpc.c

SPDK_LIBS = \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_nvmf.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_nvme.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_event.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_log.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_trace.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_conf.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_util.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_bdev.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_copy.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_jsonrpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_json.a \

# These libraries do not expose any external API, only constructors,
# so they must be linked specially to ensure they are not removed.
SPDK_WHOLE_LIBS = \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_app_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_log_rpc.a \
	$(SPDK_ROOT_DIR)/build/lib/libspdk_bdev_rpc.a \
SPDK_LIB_LIST = nvmf event log trace conf util bdev copy rpc jsonrpc json
SPDK_LIB_LIST += app_rpc log_rpc bdev_rpc

LIBS += $(BLOCKDEV_MODULES_LINKER_ARGS) \
        $(COPY_MODULES_LINKER_ARGS)

LIBS += $(SPDK_LIBS)

LIBS += -Wl,--whole-archive $(SPDK_WHOLE_LIBS) -Wl,--no-whole-archive

ifeq ($(CONFIG_RDMA),y)
LIBS += -libverbs -lrdmacm
endif

LIBS += $(ENV_LINKER_ARGS)
	$(COPY_MODULES_LINKER_ARGS) \
	$(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS)

all : $(APP)

$(APP) : $(OBJS) $(SPDK_LIBS) $(SPDK_WHOLE_LIBS) $(BLOCKDEV_MODULES) $(LINKER_MODULES) $(ENV_LIBS)
$(APP) : $(OBJS) $(SPDK_LIB_FILES) $(SPDK_WHOLE_LIBS) $(BLOCKDEV_MODULES_FILES) $(LINKER_MODULES) $(ENV_LIBS)
	$(LINK_C)

clean :
+4 −5
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

APP = perf

@@ -40,15 +41,13 @@ C_SRCS := perf.c

CFLAGS += -I. $(ENV_CFLAGS)

SPDK_LIBS += $(SPDK_ROOT_DIR)/build/lib/libspdk_ioat.a \
	     $(SPDK_ROOT_DIR)/build/lib/libspdk_util.a \
	     $(SPDK_ROOT_DIR)/build/lib/libspdk_log.a \
SPDK_LIB_LIST = ioat util log

LIBS += $(SPDK_LIBS) $(ENV_LINKER_ARGS)
LIBS += $(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS)

all: $(APP)

$(APP): $(OBJS) $(SPDK_LIBS) $(ENV_LIBS)
$(APP): $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS)
	$(LINK_C)

clean:
+4 −5
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

APP = verify

@@ -40,15 +41,13 @@ C_SRCS := verify.c

CFLAGS += -I. $(ENV_CFLAGS)

SPDK_LIBS += $(SPDK_ROOT_DIR)/build/lib/libspdk_ioat.a \
	     $(SPDK_ROOT_DIR)/build/lib/libspdk_util.a \
	     $(SPDK_ROOT_DIR)/build/lib/libspdk_log.a \
SPDK_LIB_LIST = ioat util log

LIBS += $(SPDK_LIBS) $(ENV_LINKER_ARGS)
LIBS += $(SPDK_LIB_LINKER_ARGS) $(ENV_LINKER_ARGS)

all: $(APP)

$(APP): $(OBJS) $(SPDK_LIBS) $(ENV_LIBS)
$(APP): $(OBJS) $(SPDK_LIB_FILES) $(ENV_LIBS)
	$(LINK_C)

clean:
+3 −2
Original line number Diff line number Diff line
@@ -68,5 +68,6 @@ endif

ENV_CFLAGS = $(DPDK_INC)
ENV_CXXFLAGS = $(ENV_CFLAGS)
ENV_LIBS = $(SPDK_ROOT_DIR)/build/lib/libspdk_env_dpdk.a $(DPDK_LIB)
ENV_LINKER_ARGS = -Wl,--start-group -Wl,--whole-archive $(SPDK_ROOT_DIR)/build/lib/libspdk_env_dpdk.a $(DPDK_LIB) -Wl,--end-group -Wl,--no-whole-archive
ENV_DPDK_FILE = $(call spdk_lib_list_to_files,env_dpdk)
ENV_LIBS = $(ENV_DPDK_FILE) $(DPDK_LIB)
ENV_LINKER_ARGS = -Wl,--start-group -Wl,--whole-archive $(ENV_LIBS) -Wl,--end-group -Wl,--no-whole-archive
Loading