[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Setting PATH from withing make for $(shell) ?
From: |
Paul D. Smith |
Subject: |
Re: Setting PATH from withing make for $(shell) ? |
Date: |
Fri, 16 Jun 2006 10:39:10 -0400 |
%% 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.
--
-------------------------------------------------------------------------------
Paul D. Smith <address@hidden> 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