Follow-up question: it works for $PATH now that I let it loose. But it doesn't 
seem to work for LD_LIBRARY_PATH. The 'echo' works for one but not for the 
other (the result is that some of the executables fail because they can't 
find the libraries). Is there anything I'm missing?

Best,

- Cesar

On Friday 16 June 2006 07:39, Paul D. Smith wrote:
> %% Cesar Crusius <[EMAIL PROTECTED]> writes:
>
>   cc> Here's my problem: I'm trying to set up a build system where all
>   cc> the executables necessary to build something are in the repository
>   cc> itself. So I want the build to fail if it requires any executable
>   cc> not in the repository.  The obvious thing to do was
>
>   cc> PATH := $(PATH_TO_REPOSITORY_EXECS)
>
>   cc> but that doesn't work as it doesn't set the environment
>   cc> variable.
>
> It will, for normal rules.
>
>   cc> For example, if after that I do
>
>   cc> $(warning $(shell which gcc))
>
>   cc> I still get /usr/bin/gcc.
>
> That's because make variables are not exported to the $(shell ...)
> function.  This is a bug, but a known bug.  The reason it's not done is
> that you can get an infinite recursion situation this way.  That should
> be fixed but isn't yet.
>
> If you do this:
>
>     PATH := $(PATH_TO_REPOSITORY_EXECS)
>
>     all: ; @echo '$$PATH'
>
> you'll see that the commands in rules _DO_ have the modified value.


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to