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.
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 _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
