Thread (1 message) 1 message, 1 author, 2021-03-28

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*
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help