Danek Duvall <[email protected]> writes:
> James C. McPherson wrote:
>
>> The answer is that while most people are using bldenv or nightly with
>> an appropriate env file, some (including myself) use "ws" or some other
>> method to set $SRC, $ROOT etc. Having the PRE_POUND etc in Makefile.master
>> makes sure that those people also see the benefit of the changes. I've
>> included a comment to this effect in Makefile.master.
>
> And the reason it's still in nightly and bldenv is so that folks who are
> using the new nightly and bldenv with older workspaces also benefit from
> having POUND_SIGN pre-defined in the environment? Did you confirm that the
> shell wasn't called even in that case, like Rich said he thought it might?
It's actually James that pointed that out to me, From make(1S):
Next, make imports variables from the environment (unless
the -e option is in effect), and treats them as defined mac-
ros. Because make uses the most recent definition it
encounters, a macro definition in the makefile normally
overrides an environment variable of the same name. When -e
is in effect, however, environment variables are read in
after all makefiles have been read. In that case, the
environment variables take precedence over definitions in
the makefile.
A Makefile of the form:
POUND_SIGN:sh= echo \\043 && touch /tmp/foo
all:
@echo POUND_SIGN "$(POUND_SIGN)"
Will create /tmp/foo in every case:
dmake
dmake -e
POUND_SIGN="#" dmake
POUND_SIGN="#" dmake -e
It's quite possible I'm being absolutely dense, but their presence in
bldenv and nightly appears to me to do absolutely nothing of value.
-- Rich
_______________________________________________
tools-discuss mailing list
[email protected]