From dba4829471be157fffc0d7a0e2f1a71f822996f6 Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Tue, 10 Nov 2015 15:54:04 -0700 Subject: [PATCH] build: factor out common compile and link commands Add common $(COMPILE_C), $(LINK_C), and $(LIB_C) variables that contain the commands to build a .o from a .c, an app from objects and libraries, and a library from objects, respectively. Change-Id: Ie2eaa13156b8bf3db7a4ffa66161382d829aef07 Signed-off-by: Daniel Verkamp --- examples/nvme/identify/Makefile | 3 +-- examples/nvme/perf/Makefile | 3 +-- lib/memory/Makefile | 2 +- lib/nvme/Makefile | 2 +- lib/util/Makefile | 2 +- mk/nvme.unittest.mk | 7 ++----- mk/spdk.common.mk | 20 +++++++++++++++++--- test/lib/memory/Makefile | 3 +-- test/lib/nvme/aer/Makefile | 3 +-- 9 files changed, 26 insertions(+), 19 deletions(-) diff --git a/examples/nvme/identify/Makefile b/examples/nvme/identify/Makefile index 46cc3589b..e603dde88 100644 --- a/examples/nvme/identify/Makefile +++ b/examples/nvme/identify/Makefile @@ -53,8 +53,7 @@ all : $(APP) objs : $(OBJS) $(APP) : $(OBJS) $(SPDK_LIBS) - @echo " LINK $@" - $(Q)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + $(LINK_C) clean : $(Q)rm -f $(OBJS) *.d $(APP) diff --git a/examples/nvme/perf/Makefile b/examples/nvme/perf/Makefile index 1095b408a..4c7cbc7d4 100644 --- a/examples/nvme/perf/Makefile +++ b/examples/nvme/perf/Makefile @@ -58,8 +58,7 @@ all : $(APP) objs : $(OBJS) $(APP) : $(OBJS) $(SPDK_LIBS) - @echo " LINK $@" - $(Q)$(CC) $(CPPFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + $(LINK_C) clean : $(Q)rm -f $(OBJS) *.d $(APP) diff --git a/lib/memory/Makefile b/lib/memory/Makefile index 088d63615..8a660bc30 100644 --- a/lib/memory/Makefile +++ b/lib/memory/Makefile @@ -52,6 +52,6 @@ clean : $(Q)rm -f $(LIB) $(OBJS) *.d $(LIB) : $(OBJS) - $(Q)ar crDs $(LIB) $(OBJS) + $(LIB_C) include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/lib/nvme/Makefile b/lib/nvme/Makefile index a94cc3437..257c98d6a 100644 --- a/lib/nvme/Makefile +++ b/lib/nvme/Makefile @@ -50,6 +50,6 @@ clean : $(Q)rm -f libspdk_nvme.a $(OBJS) *.d libspdk_nvme.a : $(OBJS) - $(Q)ar crDs libspdk_nvme.a $(OBJS) + $(LIB_C) include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/lib/util/Makefile b/lib/util/Makefile index 7985d7e37..f5dfeff0c 100644 --- a/lib/util/Makefile +++ b/lib/util/Makefile @@ -50,6 +50,6 @@ clean : $(Q)rm -f libspdk_util.a $(OBJS) *.d libspdk_util.a : $(OBJS) - $(Q)ar crDs libspdk_util.a $(OBJS) + $(LIB_C) include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/mk/nvme.unittest.mk b/mk/nvme.unittest.mk index c7b523d6b..a60b3b98c 100644 --- a/mk/nvme.unittest.mk +++ b/mk/nvme.unittest.mk @@ -49,15 +49,12 @@ UT_APP = $(TEST_FILE:.c=) all: $(UT_APP) $(UT_APP) : $(OBJS) - @echo " LINK $@" - $(Q)$(CC) $(CFLAGS) -o $@ $(OBJS) $(LIBS) + $(LINK_C) clean: $(Q)rm -f $(UT_APP) $(OBJS) *.d %.o: $(NVME_DIR)/%.c %.d $(MAKEFILE_LIST) - @echo " CC $@" - $(Q)$(CC) $(DEPFLAGS) $(CFLAGS) -c $< -o $@ - $(Q)mv -f $*.d.tmp $*.d + $(COMPILE_C) include $(SPDK_ROOT_DIR)/mk/spdk.deps.mk diff --git a/mk/spdk.common.mk b/mk/spdk.common.mk index ac7211740..5ea863b29 100644 --- a/mk/spdk.common.mk +++ b/mk/spdk.common.mk @@ -90,10 +90,24 @@ MAKEFLAGS += --no-print-directory DEPFLAGS = -MMD -MP -MF $*.d.tmp +# Compile first input $< (.c) into $@ (.o) +COMPILE_C=\ + $(Q)echo " CC $@"; \ + $(CC) -o $@ $(DEPFLAGS) $(CFLAGS) -c $< && \ + mv -f $*.d.tmp $*.d + +# Link $(OBJS) and $(LIBS) into $@ (app) +LINK_C=\ + $(Q)echo " LINK $@"; \ + $(CC) -o $@ $(CPPFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) + +# Archive $(OBJS) into $@ (.a) +LIB_C=\ + $(Q)echo " LIB $@"; \ + ar crDs $@ $(OBJS) + %.o: %.c %.d $(MAKEFILE_LIST) - @echo " CC $@" - $(Q)$(CC) $(DEPFLAGS) $(CFLAGS) -c $< - $(Q)mv -f $*.d.tmp $*.d + $(COMPILE_C) %.d: ; diff --git a/test/lib/memory/Makefile b/test/lib/memory/Makefile index 9aa1de767..f49a417f9 100644 --- a/test/lib/memory/Makefile +++ b/test/lib/memory/Makefile @@ -49,8 +49,7 @@ OBJS = $(C_SRCS:.c=.o) all: $(APP) $(APP): $(OBJS) $(SPDK_LIBS) - @echo " LINK $@" - $(Q)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + $(LINK_C) clean: $(Q)rm -f $(OBJS) *.d $(APP) diff --git a/test/lib/nvme/aer/Makefile b/test/lib/nvme/aer/Makefile index 9afc263f1..b072e44c7 100644 --- a/test/lib/nvme/aer/Makefile +++ b/test/lib/nvme/aer/Makefile @@ -53,8 +53,7 @@ all : $(APP) objs : $(OBJS) $(APP) : $(OBJS) $(SPDK_LIBS) - @echo " LINK $@" - $(Q)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) + $(LINK_C) clean : $(Q)rm -f $(OBJS) *.d $(APP)