гораздо проще объяснить мою проблему, показывая вам некоторый код.
Вот оно:
FILES = $(F1)
A.FILES = $(FILES)
FILES = $(F2)
B.FILES = $(FILES)
F1 := file1
F2 := file2
all: a b
a: $(A.FILES)
echo $^
b: $(B.FILES)
echo $^
$(F1) $(F2):
echo $@
Проблема в том, что make a
печатает файл2 вместо файла1. Как я могу сохранить указание A.FILES с переменной с именем FILES?
Я знаю,: = сделал бы эту работу, но я могу определить F1 позже.
Я хотел бы иметь что-то, что позволяет иметь следующее:
FILES = $(F1)
A.FILES <- FILES (assignation) such that A.FILES = $(F1)
Спасибо!