2017-01-25 7 views
0

make -C VAR=$(VAR) targetを使用して子に変数を渡すことができます(変数は単一のターゲットに対してのみ意味があるため、exportにすることをお勧めします)。しかし、VAR変数が親に定義されていない場合、子は空の文字列(VAR ?= ...を持ち、VARの値は空です)が得られます。どうすればこれを避けることができますか?定義されている場合のみ、変数を子に渡す

Define make variable at rule execution timeのバリエーションのように見えますが、私の特定の用途にはうまくいくはずですが、避けたい子供のデフォルト値を知るためには親のMakefileが必要です。

答えて

3

sub-makesを呼び出すときは常に$(MAKE)を使用してください。決してmakeを使用しないでください。あなたの例では-Cの後にディレクトリがありません。

のようなものについてはどう:

$(MAKE) $(if $(VAR),VAR=$(VAR)) 
関連する問題