Mám cieľ v súbore makefile:
all: $(TARGETS)
Chcem variant, ktorý sa líši od all
len tým, že nastavuje premennú prostredia. Niečo ako:
all-abc: $(TARGETS)
ABC=123
ale to nefunguje, pretože závislostipred spracovaním premennej. Myslel som na to, že budem mať inú závislosť pred skutočnými, ktoré len nastavujú premennú prostredia, ale nemyslím si, že životné prostredie bude pretrvávať naprieč cieľmi. To znamená, že
abc:
ABC=123
all-abc: abc $(TARGETS)
To, čo som nakoniec chcel mať, je
$ make all-abc
namiesto
$ ABC=123 make
Je možné nastaviť premennú prostredia, ako je táto?
(GNU Značka 3.82)
odpovede:
20 pre odpoveď č. 1skúste to:
all:
@#usual rule, if you call `make all-abc`, this will print "123"
@echo $(ABC)
all-abc: ABC=123
all-abc: all
@#what you put here it"s going to be executed after the rule `all`