Subject: Re: OSF Dev Env (ODE) (was: fix for MAKEOBJDIRPREFIX=/obj make
To: None <sommerfeld@orchard.arlington.ma.us>
From: Simon J. Gerraty <sjg@quick.com.au>
List: tech-toolchain
Date: 04/22/2000 13:10:41
> > :@<tvar>@<string>@
> > 
> > which causes tvar to take on the value of each word in the variable and 
> > then evaluate string - which presumably uses tvar in a meaningful way.
> > This is a neat alternative to .for loops
> 
> I'm not sure I'd call it "neat".  
> 
> In a past job, I made extensive use of ODE and ODE make.  The looping
> construct above had some *serious* usability problems, leading to lots
> of write-only incomprehensible code in our project's equivalent to the
> bsd.*.mk file.

One of my colleagues is very keen to see :@
A .for loop appears to be expanded when the makefile is parsed whereas
:@ is expanded when the variable is used.  The difference is important
when trying to contain magic to the *.mk files.

> Anyhow, in many/most cases, it's a lot easier to understand what's
> going on when you use .for .

Sure, but you can't necessarily do all the same things.

> make really wants to be a functional language.  Before you add an
> obscure way to express "mapcar", how about adding functions/macros
> with parameters first? :-)

As a stretch objective perhaps :-), right now the ones I mentioned
will go a long way to improving the build env I'm working on.

--sjg