Принудительное расширение переменных в GNU Make - PullRequest
4 голосов
/ 11 октября 2011

Как заставить переменные GNU Make немедленно вычислять переменные?Рассмотрим следующий пример:

TARGET:=fred
wilma:
    mkdir -p $(TARGET)
TARGET:=barney
betty:
    mkdir -p $(TARGET)
all: one two
.PHONY: one two all

При make all Make создаст только «barney», потому что строки рецепта оцениваются только после того, как make-файл был прочитан и было присвоено окончательное значение («barney»).

Мне нужно создать и "Фред", и "Барни" в этом случае.

1 Ответ

7 голосов
/ 11 октября 2011
wilma: TARGET:=fred
betty: TARGET:=barney
wilma betty:
     mkdir -p $(TARGET)
...