From a9112195151038c918872cb99ea09c82fe806cef Mon Sep 17 00:00:00 2001 From: Tyrann Date: Sat, 7 Jan 2012 18:01:32 +1030 Subject: [PATCH] Remove need for "prepare" in the Makefile Just conditionally do mkdir if it's needed. Potentially a few more calls to 'stat' during make, but should be cheap enough... --- Makefile | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 3ecb698c..279fc8f9 100644 --- a/Makefile +++ b/Makefile @@ -91,11 +91,11 @@ else quiet = quiet_ endif -quiet_cmd_mkdir = ' MKDIR $@' - cmd_mkdir = mkdir -p $@ +quiet_cmd_mkdir = ' MKDIR $(@D)' + cmd_mkdir = mkdir -p $(@D) define do_mkdir - @if [ ! -d $@ ]; then \ + @if [ ! -d $(@D) ]; then \ echo $($(quiet)cmd_mkdir); \ $(cmd_mkdir); \ fi; @@ -118,19 +118,17 @@ quiet_cmd_cc_o_c = ' CC $@' cmd_cc_o_c = $(CC) -c $(CPPFLAGS) $(CFLAGS) -o $@ $< define do_cc_o_c + @$(do_mkdir) @$(cmd_cc_dep_c); @echo $($(quiet)cmd_cc_o_c); @$(cmd_cc_o_c); endef -cmd_cc_dep_rc = \ - $(CC) -x c-header -MM -MT $@ $(CPPFLAGS) -o $(@D)/.$(@F).d $< ; \ - $(cmd_fixdep) - quiet_cmd_cc_link = ' LINK $@' cmd_cc_link = $(CC) -o $@ $^ $(1) define do_cc_link + @$(do_mkdir) @echo $($(quiet)cmd_cc_link); @$(call cmd_cc_link,$(1)) endef @@ -202,10 +200,7 @@ APPS = \ $(BIN_PFX)bsputil$(EXT) \ $(BIN_PFX)qbsp$(EXT) -all: prepare $(patsubst %,$(BIN_DIR)/%,$(APPS)) - -.PHONY: prepare -prepare: $(BUILD_DIRS) $(BIN_DIR) +all: $(patsubst %,$(BIN_DIR)/%,$(APPS)) COMMON_CPPFLAGS := -I$(TOPDIR)/include -DLINUX $(DPTHREAD) ifeq ($(DEBUG),Y) @@ -222,14 +217,6 @@ $(BUILD_DIR)/bspinfo/%.o: CPPFLAGS = $(COMMON_CPPFLAGS) $(BUILD_DIR)/bsputil/%.o: CPPFLAGS = $(COMMON_CPPFLAGS) $(BUILD_DIR)/common/%.o: CPPFLAGS = $(COMMON_CPPFLAGS) -$(BUILD_DIR)/qbsp: ; $(do_mkdir) -$(BUILD_DIR)/common: ; $(do_mkdir) -$(BUILD_DIR)/light: ; $(do_mkdir) -$(BUILD_DIR)/vis: ; $(do_mkdir) -$(BUILD_DIR)/bspinfo: ; $(do_mkdir) -$(BUILD_DIR)/bsputil: ; $(do_mkdir) -$(BIN_DIR): ; $(do_mkdir) - $(BUILD_DIR)/qbsp/%.o: qbsp/%.c ; $(do_cc_o_c) $(BUILD_DIR)/common/%.o: common/%.c ; $(do_cc_o_c) $(BUILD_DIR)/light/%.o: light/%.c ; $(do_cc_o_c) @@ -339,4 +326,3 @@ clean: @rm -f $(shell find . \( \ -name '*~' -o -name '#*#' -o -name '*.o' -o -name '*.res' \ \) -print) -