2016-08-10 5 views
0

GNU makeでオプションの依存関係を取得しようとしています。私は$(ワイルドカード)を使用しようとしたが、非期待出力取得しています:メイクファイルのオプションの依存性

test.mk:

a: 
     @echo "a" 
b: $(wildcard a) 
     @echo "b" 
     @touch a 

予想される出力:

$ make -f ./test.mk b 
b 
$ make -f ./test.mk b 
a 
b 

実際の出力:

$ make -f ./test.mk b 
b 
$ make -f ./test.mk b 
b 

$(ワイルドカード)について何が分かりませんか?

+0

は 'a'ファイルですか?ワイルドカードは '* .c'のようなパターンに使用されますか? –

+0

はい、 "a"はファイルで、$(ワイルドカード)はGNU make関数です。 – mathieu

+0

http://stackoverflow.com/questions/8175653/marking-a-makefile-dependency-as-optional-or-otherwise-重要でない –

答えて

1

$(wildcard ...)について何か不足しているわけではありません。 make bを2回目に実行すると、 ファイルaが既に存在するため、 makeは作成する必要がなく、レシピを実行しません。

あなたが追加した場合:

.PHONY: a 

をメイクファイルにターゲットaが必要な場合にかかわらず、このようなファイル の存在を、作られた、あなたが期待する行動を与えるが、それはあなたからはっきりしていないことになりますこれが本当にあなたの目的を捕らえるのであれば投稿してください。

+0

ああ、それは後で明白です。ありがとう! – mathieu

関連する問題