mbox series

[00/11] Makefile: fix "Perl" and "Python" rules, speed up re-builds

Message ID cover-00.11-00000000000-20211217T002023Z-avarab@gmail.com (mailing list archive)
Headers show
Series Makefile: fix "Perl" and "Python" rules, speed up re-builds | expand

Message

Ævar Arnfjörð Bjarmason Dec. 17, 2021, 12:26 a.m. UTC
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

Comments

Ævar Arnfjörð Bjarmason Feb. 21, 2022, 8:14 p.m. UTC | #1
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).

> 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