Как автоматически сгенерировать список целей make путем подстановки подкаталогов?

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

11
задан Laurence Gonsalves 20 January 2012 в 06:24
поделиться