help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: suggestion to reduce unnecessary rebuilding


From: Dave Korn
Subject: RE: suggestion to reduce unnecessary rebuilding
Date: Fri, 25 Apr 2008 15:01:21 +0100

Paul Smith wrote:

> 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. 

  See the usage of "move-if-change" in gcc/binutils makefiles, for example.

> 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. 
> 
> The result of this is if you make an innocuous change (say, adding a
> comment) to a common header file that is included by all the source
> files, make will end up rebuilding every .o every time you type make.

  I think that's why in practice "move-if-change" is generally used in
conjunction with a dependency on a stamp file that /does/ get its timestamp
updated, isn't it?  (Actually, I never understood what the stampfiles were
used for before, and your explanation above has just made me think that this
might be the reason.  But I could still be completely misleading myself about
it.)


    cheers,
      DaveK
-- 
Can't think of a witty .sigline today....





reply via email to

[Prev in Thread] Current Thread [Next in Thread]