From 4bedcb02ec93d98a3ad900abdf6ea138ea8adf0f Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Wed, 5 Aug 2009 16:58:12 +0300 Subject: build: update make rules --- Make.rules | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Make.rules b/Make.rules index e6db280..3bdf267 100644 --- a/Make.rules +++ b/Make.rules @@ -47,6 +47,8 @@ export srctree objtree ## # Consult SCM for better version string. +TAGPREFIX ?= v + GIT_REV := $(shell test -d .git && git describe || echo exported) ifneq ($(GIT_REV), exported) FULL_VERSION := $(patsubst $(TAGPREFIX)%,%,$(GIT_REV)) @@ -152,7 +154,8 @@ escsq = $(subst $(squote),'\$(squote)',$1) # Find any prerequisites that is newer than target or that does not exist. # PHONY targets skipped in both cases. -any-prereq = $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^),$^) +local-target-prereqs = % +any-prereq = $(filter $(local-target-prereqs), $(filter-out $(PHONY),$?) $(filter-out $(PHONY) $(wildcard $^), $^)) # Execute command if command has changed or prerequisite(s) are updated. # @@ -188,6 +191,8 @@ define rule_cc_o_c rm $(depfile) endef +$(obj)/%.o: override local-target-prereqs=% + $(obj)/%.o: $(src)/%.c FORCE $(call if_changed_rule,cc_o_c) @@ -204,6 +209,8 @@ quiet_cmd_ld = LD $@ $(addprefix $(obj)/,$($(@F)-objs)) \ $(LIBS) $(LIBS_$(@F)) +$(__progs): override local-target-prereqs=$(addprefix $(obj)/,$($(*F)-objs)) + $(__progs): $(obj)/%: $(cobjs) FORCE $(call if_changed,ld) -- cgit v1.2.3