以下に、例として簡単な依存関係リストを添付します。Unix tsort を使用して、ノードに番号を付けることで同じ問題を解決しています
Root 0
File1 1
File2 2
File1.cpp 3
File2.cpp 4
> tsort
0 1
0 2
1 3
2 4
Generates:
0 2 1 3 4
私が理解できないのは、変更されたファイルのみを再コンパイルするために、この依存関係リストを効率的に使用する方法です。make が内部的にどのように機能するかを理解しようとしており、同じための独自の小さなプロトタイプを作成しようとしています。トポロジーソート以外のアプローチは歓迎されます。