Ответ 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`
У меня есть цель внутри 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)
попробуйте следующее:
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`