On Sat, Sep 24, 2005 at 06:44:57PM +0200, Rafael Garcia-Suarez wrote:
> On 9/24/05, Nicholas Clark <[EMAIL PROTECTED]> wrote:
> > I also observe that sometimes when I edit files and rebuild, later files
> > needlessly get rebuilt, probably because make thinks something is out of
> > date, something that never gets updated, probably because it's not being
> 
> I don't get your reasoning here...

Sorry, yes, I failed to explain properly.

IIRC the following happens:

I edit (say) sv.c

I run make

make reasons that a lot of things are out of date.
Specifically,

1: all the Unicode tables are out of date with respect to lib/Config.pm
2: because that in turn is out of date w.r.t. miniperl
3: because that is out of date w.r.t. sv.o
4: because that is out of date w.r.t. sv.c

So the make reruns the build steps for 4,3,2,1
Only mv-if-diff kicks in, and lib/Config.pm isn't changed

(make never checks if a step actually changes the timestamp on a file)

So if I re-run make, make sees that lib/Config.pm is *still* out of date
w.r.t. miniperl, so (correctly) figures that steps 2 and 1 need re-running.

I stop the insanity with

  touch lib/Config.pm; make

and make re-runs the Unicode tables generation one last time, and then all is
happy.


Hence why I think that mv-if-diff is counterproductive.

Nicholas Clark

Reply via email to