help-make
[Top][All Lists]
Advanced

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

Re: Setting PATH from withing make for $(shell) ?


From: Cesar Crusius
Subject: Re: Setting PATH from withing make for $(shell) ?
Date: Fri, 16 Jun 2006 07:59:22 -0700
User-agent: KMail/1.9.1

On Friday 16 June 2006 07:39, Paul D. Smith wrote:
> %% Cesar Crusius <address@hidden> 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.

Ah thanks. The problem is then I chose the only thing that *doesn't* work to 
test that the variable was being set!

Best,

- Cesar




reply via email to

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