cvs commit: src/usr.sbin/kldxref Makefile
M. Warner Losh
imp at bsdimp.com
Tue Aug 1 01:17:40 UTC 2006
In message: <20060731163209.GB50797 at comp.chem.msu.su>
Yar Tikhiy <yar at comp.chem.msu.su> writes:
: 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.
: 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.
It all started out '.if defined(NO_FOO)' or '.if !defined(NO_FOO)'.
This is why NO_OBJ and NO_MAN are that way. Then people wanted to
override the global default to force things to be linked statically.
This was so that things like init could always be static back in the
day. This accounts for NO_SHARED handling. It is a miss-mash.
That's why we're not supposed to set NO_FOO anymore. MK_FOO is set to
yes or no depending on defaults and WITH/WITHOUT_FOO. I'm not sure
why ru@ didn't include the above in his big cleanup.
More information about the cvs-src