tech-toolchain archive

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

Re: make cleaning the environment for children



>It strikes me as a bad idea from a parsing perspective. Also, it seems

The alternative would be a new keyword - .unexport ?
A bare .unexport: could mean - clean the environment while
.unexport: FOO
just removes FOO.

As opposed to
.export: =
.export: - FOO

Other suggestions welcome.

>like it shouldn't be necessary (if I understand what it's supposed to
>mean) in combination with .undef .MAKE.EXPORTED.

.MAKE.EXPORTED tracks variables that make has exported (you've either
added to that, or provided as arg to  .export:) or will when
a child is forked.

Originally I did the clearing of .MAKE.EXPORTED implicitly, but then
figured keeping them separate operations allows more flexibility.

.export: = PATH

replaces environ with just $PATH, but otherwise does not affect
variables that are flagged to be exported after a fork.

.undef .MAKE.EXPORTED

stops the exporting of flagged vars after fork, but has not effect on
the environment inherited from the parent.

Ie. one way or another I wanted a syntax that can be used to clear the
inherited environment, and frobbing .MAKE.EXPORTED won't achieve that.

>Pity the whole thing doesn't work like .SUFFIXES though for
>consistency, but it seems to be a little too late for that.

Yes.  Though .SUFFIXES would be much more useful if you could
delete a suffix without having to delete them all.  
Actually all that's needed is for  ${.SUFFIXES} to give you the current
list.

Thanks
--sjg


Home | Main Index | Thread Index | Old Index