2010-01-12 96 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將爲每個丟失的文件打印「未找到:」。

相關問題