On Thu, 2008-04-24 at 15:01 -0400, Ilya Shlyakhter wrote:
I want to make a suggestion that can speed up make by reducing
unnecessary rebuilding:
Before making a target, if that target already exists, move it to a
temporary backup file.
After the target is re-made, diff the newly made target against the backup.
If it didn't change, reset the date of the newly made target to the
date of the backup.
In either case, delete the backup.
You can implement this yourself, in any makefile you like. You don't
need make to do it for you.
Then, if a source file is changed in an insignificant way (e.g. by
adding comments),
that source file is still recompiled, but at least the downstream
files that depend on it are not.
The problem is, the next time you do the build it will AGAIN rebuild
that target, AGAIN decide it hasn't changed, and AGAIN reset the stamp
back to the old time. And, the NEXT time you run make it will do it
again. Etc.