ターゲット
ターゲット(親ターゲット)が前提条件で別のターゲット(サブターゲット)を呼び出す一般的な場合は、モード固有の変数を割り当てたいと思います(参照:マニュアルページ)、次の条件:
- 変数の値は親ターゲットに基づいています。
- サブターゲットにはこの変数が必要です
コンテキスト
ユースケースを次のように減らすことができます。簡単にするために、モード固有の変数の代わりにターゲット固有の変数を使用します(問題は同じです)。生成されたファイルは次のとおりです。
mother-target: VAR = Var-$@
mother-target: child-target
child-target:
echo VAR=$(VAR)
make
出力する予定ですVAR=Var-child-target
。出力したいですVAR=Var-mother-target
。
質問:定義された変数のターゲット名を参照するには?自動変数は@
常にチェーンの「最後」のターゲットとして識別されるようです。
努力する:
VAR
単純な拡張変数として、つまり空mother-target: VAR := Var-$@
です$@
。VAR
継承しないようにプライベートとして宣言すると、私のユースケースには適していません。サブゴールには変数が必要です。
実際に何が起こっているのかは、ターゲット名を解析することが実際に役立つモード固有の変数を使用することです%-target: VAR = Var-$@
。