/ / Nastaviť premennú prostredia v cieľovom súbore - makefile

Nastaviť premennú prostredia v cieľovom súbore - makefile

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ď č. 1

skú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`