諸悪の根源は擬似ターゲット その2
アルゴリズムの正確な記述が探してもないので実験による予測:
- ターゲットに結びついたレシピが当該ターゲット名リソースを生成するとは仮定しない。これを仮定すると技法的擬似ターゲット(みなしタスク)が使えない。
- すべての名前が技法的擬似ターゲット(みなしタスク)という仮定で考えたほうがいい。実リソースが生成されるかどうかはレシピの問題で、makeは関与しない。
- ターゲットにレシピがないことは問題ではない、と考える。そうでないと技法的擬似ターゲット(みなしタスク)が使えない。
- 結果的に、ルールは入れ子になった手続き呼び出しとなる。レシピがbodyで、前提がbeforeアドバイス(フック、ガード)となる。
- beforeアドバイス(ガード)なので、再帰的に逆向きに検索される。実行計画はツリー状になる。
- ターゲット(=手続き)にレシピ(=手続き本体)がなければ何もしない。何もしないでもエラーとはしないで実行を続ける。
- レシピの発動(トリガー)は、前提のレシピの発動と完了が条件となる。この条件が満たされないなら、当該ターゲットのレシピは発動されない。