【发布时间】:2012-01-20 06:19:35
【问题描述】:
我想使用单个 Makefile 在数百个子目录中生成目标。每个子目录都是一个日期/时间戳,如下所示:20120119_153957,它与以下模式 ????????_?????? 匹配。没有与此模式匹配的其他子目录。
我想生成的一个目标称为????????_??????/graph.pdf。我有一个名为make_graph 的脚本,它可以使图形给定子目录名称。但我不确定如何编写一个 Makefile 来自动 glob 所有子目录并以编程方式生成这些目标。
例如,代码 SUBDIRS:=????????_?????? 似乎正确地 glob 所有子目录。我可以检查这条规则:
.PHONY: print
print:
echo $(SUBDIRS)
但是这个变量赋值
TARGETS:=$(SUBDIRS:%=%/graph.pdf)
似乎没有做我期望的事情并分配了很多很多目标。相反,以下规则只打印一个目标。
.PHONY: print
print:
echo $(TARGETS)
SUBDIRS 应该有正确的子目录但TARGET 只有一个文件,这很令人困惑。
【问题讨论】: