cvs commit: src/usr.sbin/kldxref Makefile

Marcel Moolenaar marcel at xcllnt.net
Mon Jul 31 16:58:16 UTC 2006


On Jul 31, 2006, at 9:32 AM, Yar Tikhiy wrote:

> On Mon, Jul 31, 2006 at 09:10:43AM -0700, Marcel Moolenaar wrote:
>>
>> On Jul 31, 2006, at 7:09 AM, Yar Tikhiy wrote:
>>
>>> On Sun, Jul 30, 2006 at 08:51:41PM +0000, Marcel Moolenaar wrote:
>>>> marcel      2006-07-30 20:51:41 UTC
>>>>
>>>>  FreeBSD src repository
>>>>
>>>>  Modified files:
>>>>    usr.sbin/kldxref     Makefile
>>>>  Log:
>>>>  Use NO_SHARED=YES to force a static link.
>>>>
>>>>  Pointed out by: ru@
>>>>
>>>>  Revision  Changes    Path
>>>>  1.9       +1 -1      src/usr.sbin/kldxref/Makefile
>>>
>>> Perhaps it should be spelled just ``NO_SHARED='' in keeping with
>>> the current style?
>>
>> I really don't know. Those NO_FOO knobs are not logical in their
>> use.
>>
>>>  Unfortunately style.Makefile(5) doesn't seem
>>> to list this rule...
>>
>> Feel free to change my commit to whatever you think is right.
>
> I was sly enough to add Ruslan to Cc in my previous mail :-)
> Let's wait for his opinion on this and below.

Sounds good.

> In the meanwhile I peeked in /usr/share/mk and found that the handling
> of NO_* knobs is quite far from being consistent.  For example:
>
> - NO_MAN -- can be just defined ("YES" and "NO" both mean true),
> 	    handled at <bsd.own.mk> level (note that <bsd.own.mk>
> 	    is often included separately now and includes some magic);
>
> - NO_OBJ -- can be just defined to be true, handled in <bsd.obj.mk>,
> 	    which is included from more convenient files like <bsd.prog.mk>;
>
> - NO_SHARED -- must be set to something != "no" for the effect,
> 	       handled in <bsd.prog.mk>.
>
> I'm unsure if there is a reason behind all this diversity.

I doubt there's a reason, because reason would be unreasonable
then :-)

I think the problem is inherent when the existence of the variable
counts and not its value. It's not intuitive and people use it in
different ways because of that. I personally like something simple
like SHARED=NO or SHARED=YES. The lack of definition then meaning
the default setting. This is trivially implemented with SHARED?=YES.
Anyway: that's just me...

-- 
  Marcel Moolenaar         USPA: A-39004          marcel at xcllnt.net




More information about the cvs-src mailing list