Re: [PATCH v2 4/5] Makefile: don't use "FORCE" for tags targets
From: Ramsay Jones <hidden>
Date: 2021-06-30 00:13:09
On 29/06/2021 12:12, Ævar Arnfjörð Bjarmason wrote:
quoted hunk ↗ jump to hunk
Remove the "FORCE" dependency from the "tags", "TAGS" and "cscope.out" targets, instead make them depend on whether or not the relevant source files have changed. Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> --- Makefile | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-)diff --git a/Makefile b/Makefile index 2e3b257164..7b0d9773b0 100644 --- a/Makefile +++ b/Makefile@@ -2727,19 +2727,21 @@ FIND_SOURCE_FILES = ( \ | sed -e 's|^\./||' \ ) -$(ETAGS_TARGET): FORCE +FOUND_SOURCE_FILES = $(shell $(FIND_SOURCE_FILES)) + +$(ETAGS_TARGET): $(FOUND_SOURCE_FILES) $(QUIET_GEN)$(RM) "$(ETAGS_TARGET)+" && \ $(FIND_SOURCE_FILES) | xargs etags -a -o "$(ETAGS_TARGET)+" && \ mv "$(ETAGS_TARGET)+" "$(ETAGS_TARGET)" -tags: FORCE +tags: $(FOUND_SOURCE_FILES) $(QUIET_GEN)$(RM) tags+ && \ $(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \ mv tags+ tags
I was expecting to see the above targets to be changed, similarly to ...
-cscope.out: +cscope.out: $(FOUND_SOURCE_FILES) $(QUIET_GEN)$(RM) cscope.out && \ - $(FIND_SOURCE_FILES) | xargs cscope -f$@ -b + echo $(FOUND_SOURCE_FILES) | xargs cscope -f$@ -b
... this hunk (ie. 'an "echo <list> | xargs" pattern') Indeed, the above phrase was taken from the commit message of the next patch (5/5), which implies that this change had already happened (presumably in this patch). ATB, Ramsay Jones
quoted hunk ↗ jump to hunk
.PHONY: cscope cscope: cscope.out@@ -2923,7 +2925,7 @@ check: config-list.h command-list.h exit 1; \ fi -FOUND_C_SOURCES = $(filter %.c,$(shell $(FIND_SOURCE_FILES))) +FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES)) COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES)) %.cocci.patch: %.cocci $(COCCI_SOURCES)