git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 03/11] Makefile: use "=" not ":=" for po/* and perl/*

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Dec 17, 2021, 00:26 UTC
Message-ID
<patch-03.11-572a82c71a1-20211217T002023Z-avarab@gmail.com>
In-Reply-To
<cover-00.11-00000000000-20211217T002023Z-avarab@gmail.com>

Change these variable definitions from being simply-expanded to be recursively expanded instead. I.e. they'll be lazily expanded when used.

I added these in 5e9637c6297 (i18n: add infrastructure for translating Git with gettext, 2011-11-18) and 20d2a30f8ff (Makefile: replace perl/Makefile.PL with simple make rules, 2017-12-10), the reason for using ":=" over "=" was that I didn't know the difference in 2011 (I think I copied some POC code), and in 2017 I used the 2011 commit for reference.

This doesn't make much if any of a practical difference, doing this is cheap either way, but as simply-expanded variables in our Makefile generally indicate special behavior (e.g. making a copy now, and modifying the RHS later) let's change these to show that nothing odd is going on here).

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
---
 Makefile | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/Makefile b/Makefile
index d4c31a2718f..cad9795ec0a 100644
--- a/Makefile
+++ b/Makefile
@@ -2719,11 +2719,11 @@ po/git.pot: $(GENERATED_H) FORCE
 pot: po/git.pot
 
 ifdef NO_GETTEXT
-POFILES :=
-MOFILES :=
+POFILES =
+MOFILES =
 else
-POFILES := $(wildcard po/*.po)
-MOFILES := $(patsubst po/%.po,po/build/locale/%/LC_MESSAGES/git.mo,$(POFILES))
+POFILES = $(wildcard po/*.po)
+MOFILES = $(patsubst po/%.po,po/build/locale/%/LC_MESSAGES/git.mo,$(POFILES))
 
 all:: $(MOFILES)
 endif
@@ -2732,10 +2732,10 @@ po/build/locale/%/LC_MESSAGES/git.mo: po/%.po
 	$(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $<
 
 ifndef NO_PERL
-LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm)
-LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL))
-LIB_CPAN := $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm)
-LIB_CPAN_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN))
+LIB_PERL = $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm)
+LIB_PERL_GEN = $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL))
+LIB_CPAN = $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm)
+LIB_CPAN_GEN = $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN))
 
 perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES
 	$(QUIET_GEN)mkdir -p $(dir $@) && \
-- 
2.34.1.1119.g7a3fc8778ee
Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 4 of 13 in “Makefile: fix "Perl" and "Python" rules, speed up re-builds”
  1. 00/11 Makefile: fix "Perl" and "Python" rules, speed up re-buildsÆvar Arnfjörð Bjarmason, Dec 17, 2021
  2. 01/11 Makefile: clean perl/build/ even with NO_PERL=YÆvar Arnfjörð Bjarmason, Dec 17, 2021
  3. 02/11 Makefile: don't set up "perl/build" rules under NO_PERL=YÆvar Arnfjörð Bjarmason, Dec 17, 2021
  4. 03/11 Makefile: use "=" not ":=" for po/* and perl/*Ævar Arnfjörð Bjarmason, Dec 17, 2021
  5. 04/11 Makefile: remove "mv $@ $@+" dance redundant to .DELETE_ON_ERRORÆvar Arnfjörð Bjarmason, Dec 17, 2021
  6. 05/11 Makefile: guard Perl-only variable assignmentsÆvar Arnfjörð Bjarmason, Dec 17, 2021
  7. 06/11 Makefile: change "ifndef NO_PERL" to "ifdef NO_PERL"Ævar Arnfjörð Bjarmason, Dec 17, 2021
  8. 07/11 Makefile: adjust Perl-related comments & whitespaceÆvar Arnfjörð Bjarmason, Dec 17, 2021
  9. 08/11 Makefile: correct "GIT-PERL-{DEFINES,HEADER}" dependency graphÆvar Arnfjörð Bjarmason, Dec 17, 2021
  10. 09/11 Makefile: sort PERL_DEFINES listÆvar Arnfjörð Bjarmason, Dec 17, 2021
  11. 10/11 Makefile: create a GIT-PYTHON-DEFINES, like "PERL"Ævar Arnfjörð Bjarmason, Dec 17, 2021
  12. 11/11 Makefile: stop needing @@GIT_VERSION@@ in *.perl scriptsÆvar Arnfjörð Bjarmason, Dec 17, 2021
  13. Ævar Arnfjörð BjarmasonFeb 21, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.