Подтвердить что ты не робот

Установить переменную Makefile внутри цели

У меня есть цель внутри make файла:

all: $(TARGETS)

Я хочу вариант, который отличается от all только тем, что он устанавливает переменную среды. Что-то вроде:

all-abc: $(TARGETS)
    ABC=123

но это не работает, потому что зависимости обрабатываются до того, как будет установлена ​​переменная. Я думал о наличии другой зависимости до реальных, которая просто устанавливает переменную среды, но я не думаю, что окружающая среда сохраняется в разных целях. То есть,

abc:
    ABC=123
all-abc: abc $(TARGETS)

не работает. То, что я в конечном итоге хочу сделать, это

$ make all-abc

вместо

$ ABC=123 make

Возможно ли установить такую ​​переменную среды?

(GNU Make 3.82)

4b9b3361

Ответ 1

попробуйте следующее:

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 going to be executed after the rule `all`