help-make
[Top][All Lists]
Advanced

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

Re: directory search fails!


From: grischka
Subject: Re: directory search fails!
Date: Sun, 26 Sep 2010 14:29:06 +0200
User-agent: Thunderbird 2.0.0.23 (Windows/20090812)

Eli,
I can not say any thing about your new wording as I think I have not
yet understood the directory search algorithm completely. I have spent
several hours without understanding it and unfortunately the manual
keeps me stopped paragraph after paragraph...

Surely there is way to much text for just a small peculiarity.
Basically what it is trying to say is:

1) make ignores files found via VPATH/vpath-search if the file is a
   target (that is if make knows a rule to build it).

2) Except
   a) when the file is found to be up-to-date
     or
   b) the VPATH/vpath-directory is listed also in GPATH.

That is all.

IMO it is the exception 2a per se which is confusing.

The question is basically:  How in the first place did the file get
there into the VPATH directory?  It must have been manually generated.
And if so then why would anyone add a rule to a makefile to re-build
the file in a place different from where it originally was, thus
ending up with the original file as an obsolete duplicate sooner or
later?

Manual says that this behavior "in practice is quite often exactly
what you want. ".  That's cheating.  People do not want behavior
that they don't understand, and those who understand it don't want
a logic that produces spurious files left in subdirectories.

Indeed the manual text itself looks very much as if those who wrote
it didn't know what the feature was good for, either.  So instead of
the behavior they documented the algorithm that they implemented and
left it to the reader to "reverse-engineer" the behavior from the
algorithm.

If however the implementation is easier to describe than the behavior
that it's supposed to create then a design problem exists most likely.

--- grischka




reply via email to

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