[cc'ing bug-gnulib as it's related; see <http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9106>]
> It used to be the case that if the results of running `configure' > didn't change anything of essence, "make" would do nothing. This > worked by producing the generated files under temporary names and by > using move-if-change to overwrite the old files if the new ones were > different. If memory serves, that process is pretty error-prone. One can't simply use move-if-change: one needs a separate time stamp file for each file that one is doing the move-if-change trick with. Otherwise, when you run 'make' again, it will cheerfully regenerate all the .h files again. And with the time stamp files, one runs into problems where the time stamp files are out of sync with reality. I'm not saying it can't be done, but it would be a pain to have it done without losing reliability during the build. Part of the problem is deciding automatically whether a change is one "of essence".