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 <daniel.verkamp@intel.com>
This commit is contained in:
Daniel Verkamp 2015-11-10 15:54:04 -07:00
parent 22eced89c4
commit dba4829471
9 changed files with 26 additions and 19 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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: ;

View File

@ -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)

View File

@ -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)