On 05/08/2011 01:15 PM, Stefan Hajnoczi wrote:
I think the real problem is that dependencies need to be regenerated after ./configure?
There are three ways to do that, the trivial but wrong one, and the correct but overzealous one:
- delete .d files. This forces regeneration of dependencies, but if you do not correspondingly delete .o files, you will likely have an incomplete build (possibly _nothing_ will be built).
- delete .d and .o files. This forces regeneration of dependencies and recompilation. True, a lot of distros are using ccache nowadays, but still this will cause a complete walk of all directories to pass those files to ccache and relink the executables. It will likely take a minute or three.
- detect changes in the configuration and, if those happen, delete .d and .o files. This is the correct one, and for one what the Linux kernel makefiles do, but also the biggest effort to implement.
Paolo