tech-userlevel archive

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

Re: make: new modifyer :Y



 >> I'm surprised that 30 lines of code can cause objections. 

> It's not that it's 30 or 300 or 300,000 or even 3; it's that the
> primary problem with make, both now and historically, has that people
> have gone and added special-case hacks to it, time and again, without
> worrying about generalizing what they're doing, being systematic, or
> pursuing any kind of coherent high-level design.

What we have now (my personal view).

1) !empty(FOO:M[Yy][Ee][Ss])
   !empty(FOO:M[Nn][Oo])

   The most ugly solution I've ever seen :-( Period.

2) defined(FOO) && ${FOO} == "yes"
   defined(FOO) && ${FOO} != "no"

   Too much characters. Buggy.

3) ${FOO:U:tl} == "yes"

   Relatively short and clear. Used very rarely. Personally, I prefer
   this form but I'm the only one.

4) ${FOO:M${ISTRUE}}

   IMHO this is as ugly as item 1) and 2). Very bad way to go.

5) Treat "yes" and "no" as True and False in boolean expressions
   (.if, &&, || etc.)
   This is probably a good way to go but requires (how much?) time
   to research and develop.

6) :Y it works NOW, it is coherent with other parts of make,
   implements high level constructon _used very often_,
   doesn't break anything, works fast.

7) types and typed variables in make(1). Fantasy.

-- 
Best regards, Aleksey Cheusov.


Home | Main Index | Thread Index | Old Index