代码之家  ›  专栏  ›  技术社区  ›  Honza

在make中进行vpath匹配后如何获取绝对路径?

  •  2
  • Honza  · 技术社区  · 15 年前

    我有一个makefile,它根据一些属性设置vpath并将源文件列表生成一个变量。我需要在不编译任何内容的情况下运行makefile(编译实际上是由另一个makefile处理的),然后根据vpath设置查看文件名匹配的真实文件。

    1 回复  |  直到 14 年前
        1
  •  6
  •   moleeye    14 年前

    选项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将为每个丢失的文件打印“未找到:”。

    推荐文章