Я хотел бы использовать один 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
имеет только один файл.