From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Denton Liu" <liu.denton@gmail.com>,
"Felipe Contreras" <felipe.contreras@gmail.com>,
"Kristof Provost" <Kristof@provost-engineering.be>,
"Taylor Blau" <me@ttaylorr.com>, "Jeff King" <peff@peff.net>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v2 0/5] Makefile: "make tags" fixes & cleanup
Date: Tue, 29 Jun 2021 13:12:54 +0200 [thread overview]
Message-ID: <cover-0.5-0000000000-20210629T110837Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-0.3-00000000000-20210622T141844Z-avarab@gmail.com>
A v2 of my fixes to the tags targets. This no longer depends on my
.DELETE_ON_ERROR change, and goes directly on top of "master". See [2]
for the just-submitted v2 of that other series.
The big win here is that none of the tags targets depend on "FORCE"
anymore, so we'll only re-generate them if our sources change.
I missed the interaction of the "-a" flag and xargs splitting the
arguments into am implicit -n, so in v1 of this we could end up with
incomplete tag files. In this v2 we more incrementally reach similar
ends, but in the end result retain our rm/gen/mv dance, since it's
needed in this case.
1. http://lore.kernel.org/git/cover-0.3-00000000000-20210622T141844Z-avarab@gmail.com
2. https://lore.kernel.org/git/patch-1.1-2557117855-20210629T084356Z-avarab@gmail.com/
Ævar Arnfjörð Bjarmason (5):
Makefile: move ".PHONY: cscope" near its target
Makefile: add QUIET_GEN to "cscope" target
Makefile: fix "cscope" target to refer to cscope.out
Makefile: don't use "FORCE" for tags targets
Makefile: normalize clobbering & xargs for tags targets
.gitignore | 2 +-
Makefile | 34 ++++++++++++++++++++--------------
2 files changed, 21 insertions(+), 15 deletions(-)
Range-diff against v1:
1: 383a90c8ac = 1: dd6cfd6022 Makefile: move ".PHONY: cscope" near its target
-: ---------- > 2: 56daa09738 Makefile: add QUIET_GEN to "cscope" target
2: ea39f1f5cd ! 3: 35c8b83904 Makefile: fix "cscope" target to refer to cscope.out
@@ Commit message
The cscope target added in a2a9150bf06 (makefile: Add a cscope target,
2007-10-06) has for some reason been referring to cscope* instead of
- cscope.out. Let's generate the cscope.out file directly so we don't
- need to speculate.
+ cscope.out.
- The "-fcscope.out" (note, no whitespace) argument is enabled by
- default on my system's cscope 15.9, but let's provide it explicitly
- for good measure.
+ Let's generate the cscope.out file directly so we don't need to
+ speculate. The "-fcscope.out" (note, no whitespace) argument is
+ enabled by default on my system's cscope 15.9, but let's provide it
+ explicitly for good measure.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
@@ Makefile: tags: FORCE
mv tags+ tags
+cscope.out:
++ $(QUIET_GEN)$(RM) cscope.out && \
+ $(FIND_SOURCE_FILES) | xargs cscope -f$@ -b
+
.PHONY: cscope
-cscope:
-- $(RM) cscope*
+- $(QUIET_GEN)$(RM) cscope* && \
- $(FIND_SOURCE_FILES) | xargs cscope -b
+cscope: cscope.out
3: 67fc87665d ! 4: b924cc3f56 Makefile: don't use "FORCE" for tags targets
@@ Commit message
targets, instead make them depend on whether or not the relevant
source files have changed.
- I'm also removing the "-o" option from them, that seems to have been
- cargo-culted when they were initially added in f81e7c626f3 (Makefile:
- Add TAGS and tags targets, 2006-03-18). It would make sense to use
- that option if we had been appending to tag files, it doesn't make any
- sense that it was used after we'd just removed the files file being
- appended to.
-
- This will potentially cause a partial file to be left behind if the
- command dies, but my in-flight series to use the ".DELETE_ON_ERROR"
- flag in the Makefile[1] will make that problem go away. I think even
- without that it's not problem we need to worry about in these cases.
-
- 1. https://lore.kernel.org/git/patch-1.1-9420448e74f-20210622T141100Z-avarab@gmail.com/
-
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## Makefile ##
@@ Makefile: FIND_SOURCE_FILES = ( \
)
-$(ETAGS_TARGET): FORCE
-- $(QUIET_GEN)$(RM) "$(ETAGS_TARGET)+" && \
-- $(FIND_SOURCE_FILES) | xargs etags -a -o "$(ETAGS_TARGET)+" && \
-- mv "$(ETAGS_TARGET)+" "$(ETAGS_TARGET)"
+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
-- $(QUIET_GEN)$(RM) tags+ && \
-- $(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \
-- mv tags+ tags
-+$(ETAGS_TARGET): $(FOUND_SOURCE_FILES)
-+ $(QUIET_GEN)echo $(FOUND_SOURCE_FILES) | \
-+ xargs etags -o $@
-+
+tags: $(FOUND_SOURCE_FILES)
-+ $(QUIET_GEN)echo $(FOUND_SOURCE_FILES) | \
-+ xargs ctags -o $@
+ $(QUIET_GEN)$(RM) tags+ && \
+ $(FIND_SOURCE_FILES) | xargs ctags -a -o tags+ && \
+ mv tags+ tags
- cscope.out:
+-cscope.out:
++cscope.out: $(FOUND_SOURCE_FILES)
+ $(QUIET_GEN)$(RM) cscope.out && \
- $(FIND_SOURCE_FILES) | xargs cscope -f$@ -b
-+ $(QUIET_GEN)echo $(FOUND_SOURCE_FILES) | \
-+ xargs cscope -f$@ -b
++ echo $(FOUND_SOURCE_FILES) | xargs cscope -f$@ -b
.PHONY: cscope
cscope: cscope.out
-: ---------- > 5: 5195d99e25 Makefile: normalize clobbering & xargs for tags targets
--
2.32.0.613.g20d5ce26552
next prev parent reply other threads:[~2021-06-29 11:13 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-22 14:21 [PATCH 0/3] Makefile: "make tags" fixes & cleanup Ævar Arnfjörð Bjarmason
2021-06-22 14:21 ` [PATCH 1/3] Makefile: move ".PHONY: cscope" near its target Ævar Arnfjörð Bjarmason
2021-06-22 14:21 ` [PATCH 2/3] Makefile: fix "cscope" target to refer to cscope.out Ævar Arnfjörð Bjarmason
2021-06-22 19:25 ` Jeff King
2021-06-22 19:49 ` Chris Torek
2021-06-23 19:54 ` Felipe Contreras
2021-06-23 19:51 ` Felipe Contreras
2021-06-23 19:25 ` Felipe Contreras
2021-06-22 14:21 ` [PATCH 3/3] Makefile: don't use "FORCE" for tags targets Ævar Arnfjörð Bjarmason
2021-06-22 19:28 ` Jeff King
2021-06-23 19:49 ` Felipe Contreras
2021-06-22 15:16 ` [PATCH 0/3] Makefile: "make tags" fixes & cleanup Taylor Blau
2021-06-29 6:29 ` Junio C Hamano
2021-06-29 12:07 ` Ævar Arnfjörð Bjarmason
2021-06-29 11:12 ` Ævar Arnfjörð Bjarmason [this message]
2021-06-29 11:12 ` [PATCH v2 1/5] Makefile: move ".PHONY: cscope" near its target Ævar Arnfjörð Bjarmason
2021-06-29 11:12 ` [PATCH v2 2/5] Makefile: add QUIET_GEN to "cscope" target Ævar Arnfjörð Bjarmason
2021-06-29 11:12 ` [PATCH v2 3/5] Makefile: fix "cscope" target to refer to cscope.out Ævar Arnfjörð Bjarmason
2021-07-01 22:23 ` Jeff King
2021-07-01 22:25 ` Jeff King
2021-06-29 11:12 ` [PATCH v2 4/5] Makefile: don't use "FORCE" for tags targets Ævar Arnfjörð Bjarmason
2021-06-30 0:05 ` Ramsay Jones
2021-06-29 11:12 ` [PATCH v2 5/5] Makefile: normalize clobbering & xargs " Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 0/5] Makefile: "make tags" fixes & cleanup Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 1/5] Makefile: move ".PHONY: cscope" near its target Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 2/5] Makefile: add QUIET_GEN to "cscope" target Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 3/5] Makefile: don't use "FORCE" for tags targets Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 4/5] Makefile: the "cscope" target always creates a "cscope.out" Ævar Arnfjörð Bjarmason
2021-07-22 16:55 ` Junio C Hamano
2021-07-22 17:58 ` Taylor Blau
2021-07-22 18:50 ` Junio C Hamano
2021-07-22 21:20 ` Ævar Arnfjörð Bjarmason
2021-07-21 23:23 ` [PATCH v3 5/5] Makefile: normalize clobbering & xargs for tags targets Ævar Arnfjörð Bjarmason
2021-07-23 10:43 ` Jeff King
2021-07-23 10:47 ` Jeff King
2021-07-23 10:47 ` [PATCH v3 0/5] Makefile: "make tags" fixes & cleanup Jeff King
2021-07-23 15:25 ` Junio C Hamano
2021-07-23 19:32 ` Felipe Contreras
2021-07-23 19:41 ` Felipe Contreras
2021-08-04 22:54 ` [PATCH v4 " Ævar Arnfjörð Bjarmason
2021-08-04 22:54 ` [PATCH v4 1/5] Makefile: move ".PHONY: cscope" near its target Ævar Arnfjörð Bjarmason
2021-08-04 22:54 ` [PATCH v4 2/5] Makefile: add QUIET_GEN to "cscope" target Ævar Arnfjörð Bjarmason
2021-08-04 22:54 ` [PATCH v4 3/5] Makefile: don't use "FORCE" for tags targets Ævar Arnfjörð Bjarmason
2021-08-04 22:54 ` [PATCH v4 4/5] Makefile: remove "cscope.out", not "cscope*" in cscope.out target Ævar Arnfjörð Bjarmason
2021-08-04 22:54 ` [PATCH v4 5/5] Makefile: normalize clobbering & xargs for tags targets Ævar Arnfjörð Bjarmason
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover-0.5-0000000000-20210629T110837Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=Kristof@provost-engineering.be \
--cc=felipe.contreras@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=liu.denton@gmail.com \
--cc=me@ttaylorr.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public 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).