[Top][All Lists]

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

Re: Why not solve the vpath missing directory problem?

From: Bryan Ischo
Subject: Re: Why not solve the vpath missing directory problem?
Date: Fri, 3 Nov 2006 21:18:53 -0500 (EST)
User-agent: SquirrelMail/1.4.8-1.fc5

> As far as removing this behavior, I can think of only one scenario in
> which make would behave differently after this change: if someone is
> _relying_ on the fact that make will drop directories that don't exist
> from vpath.  They would create the directories after make was invoked,
> specifically to avoid having them in vpath.  However, I can't honestly
> believe anyone does this: it seems to me to be too error-prone to be
> useful.

Thank you for your response.  It seems to me that it would just as easy
for the makefile writer to *not* put the path in question into vpath in
the makefile if they don't want it to end up in vpath, except when the
developer sometimes wants the path in vpath and sometimes doesn't, and
wants to use the existence of the directory in the filesystem at the time
that make is run to be the deciding factor rather than makefile code.  For
example, this would do the trick just as well as relying on the vpath
command to conditionally exclude the directory if it does not exist, would
it not?

vpath src:$(shell [ -d dir_to_use ] && echo dir_to_use)

The above would only add dir_to_use to vpath if it existed at the time
that the makefile were evaluated.  Thus even if vpath always added the
directory regardless of its existence, the above could be used to get the
same behavior of the current vpath implementation.

I plan to take a stab at adding the functionality I desire (the vpath
command adds paths to vpath regardless of whether the directory exists or
not) to the GNU Make source, and testing its performance on a large vpaths
to quantify the speed hit that is taken by including nonexistent paths in

I will post my findings to this list.

Thank you,

reply via email to

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