非常に大きなプロジェクトの makefile を最適化していますが、GNU make のvpathコマンドは非常に限られた作業しかできないことがわかりました。例えば:
vpath %.o $(OBJPATH)
OBJPATH によってパス値内のすべてのオブジェクト ファイルを検索することを意味します。つまり/dir1/../dir2/obj1.o、 と/dir3/../dir2/obj1.oは同じファイルですが、 を既に作成している場合、 と同じファイルを表しているにもかかわらず/dir1/../dir2/obj1.o、 ツールが のルールを考えているときに、/dir3/../dir2/obj1.oを見つけることができず、 を再作成する必要があります。/dir3/../dir2/obj1.o/dir1/../dir2/obj1.o
GNU make のソース コードを確認しました。ハッシュ テーブルを使用してファイル パス文字列を比較するため、文字列が異なる場合、それらは同じファイルを表しますが、vpath.
vpathより強力な機能で実現しませんか?