もし改善できるなら(架空)
現実的には何の望みもないが、思考実験として:
- 組み込みルールを廃止する。
- モジュール/ライブラリ機能を入れる。
- include
のようにして、標準ルールは取り込める。 - 内部に持っているルールベースをダンプできるようにする。JSON型式とDOT型式。
- リソース名空間とタスク名空間を分ける。
- 空レシピとレシピ省略に関する明確なセマンティクスを作る。
- レシピ部分をタブではなくてブレイスで識別する。
- パターンに完全な正規表現を使う。/regexp/ 記法を使えばいい。
- タスクがリソースを操作するとき、そのことを事前条件/事後条件として宣言できるようにする。
- リソースに付随した無名のレシピ(リソース名で指し示しは出来る)にも事前条件と事後条件の宣言を可能とする。
- 関数定義をまともにする。callはやめる。関数とタスクは統合してもいいかもしれない。
- makefile内でコマンドラインと同じオプション指定ができる。
- 特殊な用途や短絡的な利便性のために原理原則を曲げない!