Вы можете добавить:
$(eval VALUE := $(VALUE))
к рецепту prerule
, но имейте в виду, что он установит переменную VALUE
глобально, как только рецепт prerule
будет выполнен.Не только для контекста правила record
.
Демо:
$ cat Makefile
prerule: VALUE = Hello
prerule:
@echo "VALUE = $(VALUE) in $@"
$(eval VALUE := $(VALUE))
record: prerule
@echo "VALUE = $(VALUE) in $@"
foobar:
@echo "VALUE = $(VALUE) in $@"
$ make foobar
VALUE = in foobar
$ make foobar record
VALUE = in foobar
VALUE = Hello in prerule
VALUE = Hello in record
$ make record foobar
VALUE = Hello in prerule
VALUE = Hello in foobar
VALUE = Hello in record