2017-11-01 6 views
0

私は他のデータファイルに依存するデータファイルを持っていますが、生成スクリプトはそれらが存在しない場合は無視します。スクリプトは、存在しないものも含めて自動的にメークファイルを作成します。作成された場合、依存するファイルが再作成されます。Makefile:存在しなければ前提条件を無視する

data: infile1.raw infile2.raw 
     touch [email protected] 
infile1.raw: 
infile2.raw: 

空のルールを追加すると、エラーは回避されますが、不要なレクリエーションが発生します。

暗黙のルールが動作することがありますが、信頼性がありません。%.raw:は、infile1.rawのターゲットを作成するルールがないと不平を言います。 %.raw:;でビルドする必要がないことを明示的に述べると、エラーは取り除かれますが、再構築が再度行われます。私はそれは非常に難しいそう遠くない多くのファイルにマッチしているような方法でこれを自動化するよう

data: $(wildcard infile*.raw) 

ようなワイルドカードを避けるために望んでいるだろう。

欠落している依存関係を無視する方法はありますか?あなたはあまりにも多くの偽の一致を与えている

答えて

1

のみwildcard場合は、ホワイトリスト

whitelist := infile1.raw infile2.raw 

data: $(filter $(whitelist),$(wildcard infile*.raw)) 
wildcardを使用
関連する問題