git@vger.kernel.org list mirror (unofficial, one of many)
 help / color / mirror / code / Atom feed
* [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets
@ 2021-03-28  2:18 Ævar Arnfjörð Bjarmason
  2021-03-28  5:56 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2021-03-28  2:18 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Ævar Arnfjörð Bjarmason

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.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 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*
-- 
2.31.1.442.g6c06c9fe35c


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets
  2021-03-28  2:18 [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets Ævar Arnfjörð Bjarmason
@ 2021-03-28  5:56 ` Junio C Hamano
  2021-03-31 21:20   ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2021-03-28  5:56 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason; +Cc: git

Ævar Arnfjörð Bjarmason  <avarab@gmail.com> 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 ;-)

> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
> ---
>  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*

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets
  2021-03-28  5:56 ` Junio C Hamano
@ 2021-03-31 21:20   ` Junio C Hamano
  0 siblings, 0 replies; 3+ messages in thread
From: Junio C Hamano @ 2021-03-31 21:20 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason; +Cc: git

Junio C Hamano <gitster@pobox.com> writes:

> Ævar Arnfjörð Bjarmason  <avarab@gmail.com> 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 ;-)
>
>> Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
>> ---
>>  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)

This echo I presume is a debugging aid to be removed?

>> +	$(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*

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-03-31 21:21 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-28  2:18 [PATCH] Makefile: add QUIET_GEN to "tags" and "TAGS" targets Ævar Arnfjörð Bjarmason
2021-03-28  5:56 ` Junio C Hamano
2021-03-31 21:20   ` Junio C Hamano

Code repositories for project(s) associated with this inbox:

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).