%% 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.
--
-------------------------------------------------------------------------------
Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at:
http://www.gnu.org http://make.paulandlesley.org
"Please remain calm...I may be mad, but I am a professional." --Mad Scientist
_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make