Я хотел бы использовать один Makefile для генерации целей в сотнях подкаталогов. Каждый подкаталог представляет собой метку даты / времени, например: 20120119_153957
, что соответствует следующему шаблону ????????_??????
. Других подкаталогов, соответствующих этому шаблону, нет.
Одна цель, которую я хотел бы создать, называется ????????_??????/graph.pdf
. У меня есть скрипт с именем make_graph
, который сделает график с именем подкаталога. Но я не уверен, как написать Makefile, который будет автоматически отбрасывать все подкаталоги и генерировать эти цели программно.
Например, код SUBDIRS:=????????_??????
, похоже, правильно отображает все подкаталоги. Я могу проверить с этим правилом:
.PHONY: print
print:
echo $(SUBDIRS)
Однако это присвоение переменной
TARGETS:=$(SUBDIRS:%=%/graph.pdf)
, похоже, не выполняет то, что я ожидаю, и назначает множество целей. Вместо этого следующее правило просто печатает одну цель.
.PHONY: print
print:
echo $(TARGETS)
Очень странно, что SUBDIRS
должен иметь правильные подкаталоги, но TARGET
имеет только один файл.