Re: [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets
From: Junio C Hamano <hidden>
Date: 2021-03-28 06:17:32
Ævar Arnfjörð Bjarmason [off-list ref] writes:
Don't show the very verbose $(FIND_SOURCE_FILES) command on every "make TAGS" invocation. Let's also use the "cmd >x+ && mv x+ x" pattern here so we don't momentarily clobber the file.
We do not "redirect" ctags and etags output into x+. Let's use "generate into temporary and rename to the final after seeing the command that generated the output finished successfully" pattern. Please also correct the explanation of why it is a good idea to use the pattern in this case. It is not about avoiding momentarily clobbering the output. It is to avoid leaving an incorrect output generated by a failed command in the file with the filename that consumers expect. Thanks for making our Makefile a bit less noisy. Anybody who makes "clean" and its friends quiet will get a gold star ;-)
quoted hunk
Signed-off-by: Ævar Arnfjörð Bjarmason <redacted> --- Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)diff --git a/Makefile b/Makefile index 55c8035fa80..f317af1b602 100644 --- a/Makefile +++ b/Makefile@@ -2690,12 +2690,15 @@ FIND_SOURCE_FILES = ( \ ) $(ETAGS_TARGET): FORCE - $(RM) $(ETAGS_TARGET) - $(FIND_SOURCE_FILES) | xargs etags -a -o $(ETAGS_TARGET) + echo $(ALL_SOURCE_FILES) + $(QUIET_GEN)$(RM) "$(ETAGS_TARGET)+" && \ + $(FIND_SOURCE_FILES) | xargs etags -a -o "$(ETAGS_TARGET)+" && \ + mv "$(ETAGS_TARGET)+" "$(ETAGS_TARGET)" tags: FORCE - $(RM) tags - $(FIND_SOURCE_FILES) | xargs ctags -a + $(QUIET_GEN)$(RM) tags+ && \ + $(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \ + mv tags+ tags cscope: $(RM) cscope*