我有一个makefile,根据某些属性设置vpath并生成一个源文件列表到一个变量中。我需要在不编译任何内容的情况下运行makefile(编译实际上由不同的makefile处理),并根据vpath设置查看文件名匹配的真实文件。
答案 0 :(得分:6)
选项1:让make进行路径搜索:
.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))
无论哪种方式,“make whichfiles”都会打印匹配文件列表。
如果找不到某些文件,选项1将失败,并且“无规则”报告无法找到的第一个文件。选项2将为每个丢失的文件打印“not-found:”。