6000 以上のソース ファイルを持つ巨大な再帰的な makefile プロジェクトの変更に取り組んでいます。これらはすべて clearcase で制御されています。ソース ツリー全体をコピーしたくないので、変更したソース ファイルのみを含む新しいプロジェクトを作成し、変更したツリーに存在しない場合は元のツリーからソースを取得しようとしています。

ModDir各フォルダーがローカルに存在するかどうかを確認し、存在する場合はそのフォルダーで make を実行するように、既に makefile を変更しています。それ以外の場合は、で make を実行しsourceDirます。私の問題は、サブディレクトリのメイクファイルにあります。
各サブディレクトリ makefile には、そのモジュールに必要なすべてのソース ファイルのリストが含まれています。ファイルが存在する場合はローカルでビルドする方法を見つける必要がありますSourceDir/subdir。
つまり、私のイメージでは、Dir1makefile を からビルドし、他のファイルを からビルドする必要がF1ありModDir/Dir1/F1ますSourceDir/Dir1/F2-F3。
VPATH を使用して、make にソース ファイルを両方の場所 (ModDirもちろん最初に) に配置するように指示しようとしましたが、これは美しく機能します。ただし、make はオブジェクト ファイルが にあると想定しているためModDir、 に組み込まれているオブジェクト ファイルを見つけることができませんSourceDir。
また、ビルド前のルールを作成して、メイク ファイル リストを bash で変更しようとしましたが、それが可能かどうかもわかりません。
ModDirソース ファイルが存在する場合 ( )、そうでない場合( ) に、 make を使用して 1 つのディレクトリからビルドするにはどうすればよいSourceDirですか?