autoconf/automake ビルド システムを使用している場合、コンパイラ フラグまたは Makefile.am (または configure.ac のようなさらに高いレベル) 内の他の変数が変更された場合、その Makefile に関連付けられた C++ ソース ファイルは自動的に再ビルドされません。これは、必要に応じてのみ再コンパイルする継続的なビルド システムの一部として automake を使用しているため、特に重要になります。
私の考えは、理論的には上記の問題を解決する .o ファイルの依存関係として Makefile を含めることでした。いくつか質問があります:
まず、そのようなルールを追加することは可能ですか? そのカスタム ルールをすべての Makefile.am に追加する必要はないようにしたいので、最上位ファイル (configure.ac など) に配置できるものは素晴らしいでしょう。
第 2 に、このアプローチの欠点は、場合によっては Makefile への変更が実際にはコンパイルに影響しないため、実際には必要ないときに再構築することになります。ビルドが正しいことをより確実に保証するために、これを受け入れて(または少なくともそれがどれほど苦痛かを試して)喜んでいると思いますが、この問題を解決するためのより良い方法はありますか? clearmake は、実際のコンパイラ コマンドを (他の依存関係と共に) 保存し、現在のコマンドと以前のコマンドを比較して、ファイルを再生成する必要があるかどうかを判断することで、これを解決すると考えています。