From: ksg Date: Tue, 30 Aug 2016 18:58:51 +0000 (-0700) Subject: Build System =Tool Compiler Fix X-Git-Url: https://www.kengrimes.com/gitweb/?p=henge%2Fwebcc.git;a=commitdiff_plain;h=5ea84e68b1bbc18773fca89ff78a6e0509921356 Build System =Tool Compiler Fix --- diff --git a/src/Makefile b/src/Makefile index 64a42a1..8e0c926 100644 --- a/src/Makefile +++ b/src/Makefile @@ -58,33 +58,26 @@ push: $(APPTARG) dox doc: doxygen dox.conf -#clean up intermediate dependency files and binaries -clean: - @echo "Cleaning build targets" - rm -f $(APPTARG) $(WEBTARG) $(CTARG) - -#Scrub down to minimal distribution -scrub: | clean - ################## DEFAULTS ##################### #cancel default %.o behavior for %.d dependency %.o : %.c #construct list of make rules for tools ifdef TOOLS -TOOLTARGS := $(foreach tool,$(TOOLS),$(tool)/$(tool)) +TOOLTRG := $(foreach tool,$(TOOLS),$(tool)/$(tool)) .phony: $(TOOLS) -$(TOOLS): $(TOOLTARGS) +$(TOOLS): $(TOOLTRG) T = $(notdir $@) -B = $(basename $T) -$(TOOLTARGS): $(TOOLOBJ) +D = $(dir $@) +B = $(basename $D) +$(TOOLTRG): $(TOOLOBJ) $($TCC) $($TFLG) $($TSRC:.c=.o) -o $@ #Tools only work on whatever system they're designed for #(typically GNU), so their creation rules are dependent #on each tool (define in .make/.buildtools.mk) -$(foreach tool,$(TOOLS),$(tool)/%.o): %.c +$(foreach tool,$(TOOLS),$(tool)/%.o): $(dir $@)%.c $($BCC) $(BFLG) $< -c -o $@ #Put our toolsrc on the ctarg list for generating deps @@ -117,3 +110,11 @@ ifdef APPTARGS include $(foreach app,$(APPTARGS),.make/app$(app).mk) endif +#clean up intermediate dependency files and binaries +clean: + @echo "Cleaning build targets" + rm -f $(APPTARG) $(WEBTARG) $(CTARG) + +#Scrub down to minimal distribution +scrub: | clean +