Re: [PATCH 00/11] Makefile: fix "Perl" and "Python" rules, speed up re-builds
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Feb 21, 2022, 20:14 UTC
- Message-ID
- <220221.86r17w9dsq.gmgdl@evledraar.gmail.com>
- In-Reply-To
- <cover-00.11-00000000000-20211217T002023Z-avarab@gmail.com>
On Fri, Dec 17 2021, Ævar Arnfjörð Bjarmason wrote:
A gentle reminder about considering picking up this topic that got lost around the holidays.
This thread doesn't have any reviews, but as the linked-to range-diff shows it's all had reviews already as part of the larger topic I split it up from (except for the trivial addition noted below).
Show 63 quoted lines
> This topic is split-up from v4 of ab/make-dependency[1]. Range-diff to
> it below. As noted in [2] I opted to split up that series rather than
> having it grow too large.
>
> This is miscellanious cleanups related to the "Perl" rules, and some
> fixes for bad dependency rules in 08/11. Then in 10/11 we make the
> "Python" rules use the new template we created for "Perl",
>
> We are then able to speed up "make" re-builds a bit in 11/11, as we
> don't need to inject @@GIT_VERSION@@ into the Perl scripts anymore.
>
> The 09/11 is new. It's a trivial sorting of the PERL_DEFINES list,
> which'll help to maintain it in the future.
>
> 1. https://lore.kernel.org/git/cover-v4-00.23-00000000000-20211117T101807Z-avarab@gmail.com/
> 2. https://lore.kernel.org/git/211217.86a6h09km9.gmgdl@evledraar.gmail.com/
>
>
> Ævar Arnfjörð Bjarmason (11):
> Makefile: clean perl/build/ even with NO_PERL=Y
> Makefile: don't set up "perl/build" rules under NO_PERL=Y
> Makefile: use "=" not ":=" for po/* and perl/*
> Makefile: remove "mv $@ $@+" dance redundant to .DELETE_ON_ERROR
> Makefile: guard Perl-only variable assignments
> Makefile: change "ifndef NO_PERL" to "ifdef NO_PERL"
> Makefile: adjust Perl-related comments & whitespace
> Makefile: correct "GIT-PERL-{DEFINES,HEADER}" dependency graph
> Makefile: sort PERL_DEFINES list
> Makefile: create a GIT-PYTHON-DEFINES, like "PERL"
> Makefile: stop needing @@GIT_VERSION@@ in *.perl scripts
>
> .gitignore | 2 +-
> Makefile | 160 +++++++++++++++++++++++---------------------
> git-cvsserver.perl | 6 +-
> git-send-email.perl | 7 +-
> git-svn.perl | 2 +-
> 5 files changed, 90 insertions(+), 87 deletions(-)
>
> Range-diff:
> 1: 1621ca72c1d < -: ----------- Makefile: don't invoke msgfmt with --statistics
> 4: daead5ec293 = 1: 185f5a9a9cf Makefile: clean perl/build/ even with NO_PERL=Y
> 2: b7c36c9fea0 = 2: 37eeccc5646 Makefile: don't set up "perl/build" rules under NO_PERL=Y
> 3: 29b000eb0f1 = 3: 572a82c71a1 Makefile: use "=" not ":=" for po/* and perl/*
> 5: 3c987590740 = 4: 5baff22f5af Makefile: remove "mv $@ $@+" dance redundant to .DELETE_ON_ERROR
> 6: b57f582ccd3 = 5: 992e325491d Makefile: guard Perl-only variable assignments
> 7: fcdee92f64c = 6: 5e94ef729fe Makefile: change "ifndef NO_PERL" to "ifdef NO_PERL"
> 8: 1e25b532ca2 = 7: 4eeef8571aa Makefile: adjust Perl-related comments & whitespace
> 9: 77d9855bfcf = 8: 8aa35537b08 Makefile: correct "GIT-PERL-{DEFINES,HEADER}" dependency graph
> -: ----------- > 9: 5ff768a5cec Makefile: sort PERL_DEFINES list
> 10: 6004cdcd8d9 = 10: fe79797f45e Makefile: create a GIT-PYTHON-DEFINES, like "PERL"
> 11: 17b30e96057 = 11: defbd9b6db2 Makefile: stop needing @@GIT_VERSION@@ in *.perl scripts
> 12: 30ddf7da2c8 < -: ----------- Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it
> 13: f378a7dc35e < -: ----------- Makefile: move $(comma), $(empty) and $(space) to shared.mak
> 14: 13cbb851d32 < -: ----------- Makefile: re-add and use the "shellquote" macros
> 15: 337953e4994 < -: ----------- Makefile: add a "TRACK_template" for GIT-*{FLAGS,DEFINES,...}
> 16: 5bb597c1993 < -: ----------- Makefile: add "$(QUIET)" boilerplate to shared.mak
> 17: 3c4d0589667 < -: ----------- Makefile: use $(wspfx) for $(QUIET...) in shared.mak
> 18: be5882b2c99 < -: ----------- Makefiles: add and use wildcard "mkdir -p" template
> 19: 2710f8af6cd < -: ----------- Makefile: correct the dependency graph of hook-list.h
> 20: 59f22a0269a < -: ----------- Makefile: use $(file) I/O instead of "FORCE" when possible
> 21: dd569a59c74 < -: ----------- Makefile: disable GNU make built-in wildcard rules
> 22: 4168a7e3b30 < -: ----------- Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES)
> 23: 48a3927d972 < -: ----------- Makefile: move ".SUFFIXES" rule to shared.mak