help-make
[Top][All Lists]
Advanced

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

Re: question about Generating Prerequisites Automatically


From: Lin George
Subject: Re: question about Generating Prerequisites Automatically
Date: Thu, 11 May 2006 05:25:45 -0700 (PDT)

Thank you Paul!


> An ordinary target is updated if EITHER its
> prerequisites are newer, OR
> the target doesn't exist.
> 
> An intermediate target is updated ONLY if its
> prerequisites are newer.

This is exactly what I am looking for. I remembered
that you have mentioned before intermediate file is
useful for increasement build or something. Is that
correct?

I think if it is true, increasement build will suffer
from the issues of intermediate files -- they will not
be remade even if they are "needed", for example, the
intermediate files without any dependencies will
suffer from this issue. I am not sure why increasement
build will choose intermediate file.


regards,
George

--- "Paul D. Smith" <address@hidden> wrote:

> %% Lin George <address@hidden> writes:
> 
>   >> So, make uses one set of rules to determine
> when to rebuild normal
>   >> targets (that are not "intermediate"), and it
> uses a different set
>   >> of rules to determine when to rebuild targets
> that ARE
>   >> "intermediate".
> 
>   lg> That is exactly what I mean. :-)
> 
>   lg> Could you quote the rule which make will use
> to evaluate whether
>   lg> an intermediate file is "needed" please? I
> understand your sample,
>   lg> but it still seems mysterious to me about a
> general rule about how
>   lg> make will evaluate whether or not it is
> "needed". :-)
> 
> It's very, very simple; I've already quoted the
> relevant section of the
> manual earlier in this thread.  From "Chains of
> Implicit Rules" in the
> GNU make manual:
> 
> >    The first difference is what happens if the
> intermediate file does
> > not exist.  If an ordinary file B does not exist,
> and `make' considers
> > a target that depends on B, it invariably creates
> B and then updates
> > the target from B.  But if B is an intermediate
> file, then `make' can
> > leave well enough alone.  It won't bother updating
> B, or the ultimate
> > target, unless some prerequisite of B is newer
> than that target or
> > there is some other reason to update that target.
> 
> An ordinary target is updated if EITHER its
> prerequisites are newer, OR
> the target doesn't exist.
> 
> An intermediate target is updated ONLY if its
> prerequisites are newer.
> 
> -- 
>
-------------------------------------------------------------------------------
>  Paul D. Smith <address@hidden>          Find some
> GNU make tips at:
>  http://www.gnu.org                     
> http://make.paulandlesley.org
>  "Please remain calm...I may be mad, but I am a
> professional." --Mad Scientist
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




reply via email to

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