2010-01-12 61 views
2

我有一个makefile,根据一些属性设置vpath并生成一个源文件列表到一个变量。我需要在不编译任何东西的情况下运行makefile(编译实际上由另一个makefile处理),并根据vpath设置查看文件名匹配哪些实际文件。如何在make中vpath匹配后获得绝对路径?

回答

6

选项1:凑合它的路径搜索:

.PHONY: whichfiles 
whichfiles: $(LIST_OF_SOURCE_FILES) 
    @echo $+ 

选项2:使用$(通配符)模拟路径搜索:

.PHONY: whichfiles 
whichfiles: 
    @echo $(foreach f,$(LIST_OF_SOURCE_FILES),$(firstword $(wildcard $(VPATH:%=%/$f)) not-found:$f)) 

无论哪种方式, “使whichfiles” 将打印匹配文件的列表。

如果找不到某些文件,则选项1将失败,并显示“无法生成规则”报告找不到的第一个文件。选项2将为每个丢失的文件打印“未找到:”。

相关问题