2

いくつかのプロパティに応じてvpathを設定し、ソースファイルのリストを1つの変数に生成するmakefileがあります。何もコンパイルせずにmakefileを実行する必要があり(コンパイルは実際には別のmakefileによって処理されます)、vpath設定に応じてファイル名が一致する実際のファイルを確認するだけです。

4

1 に答える 1

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))

いずれにせよ、「make whichfiles」は、一致したファイルのリストを出力します。

一部のファイルが見つからない場合、オプション1は失敗し、「作成するルールなし」で、見つからなかった最初のファイルが報告されます。オプション2は、欠落しているファイルごとに「not-found:」を出力します。

于 2010-04-17T16:56:56.247 に答える