RFC: NO_FOO knobs in make.conf

Bruce Evans bde at zeta.org.au
Sun Sep 7 02:10:07 PDT 2003


On Fri, 5 Sep 2003, Doug Barton wrote:

> Seems this topic is a perennial favorite, so I'd like to establish
> general agreement on a policy to deal with this going forward. I propose
> the following "guidelines" for discussion:
>
> 1. All new knobs, in all branches, should have WORD_SEPERATORS between
> distinct English words. This aids understanding of what the knob means
> for English speakers, and more importantly, those for whom English is
> not their first language. That, and actually having a standard are the
> two main reasons I'm proposing this version.

Does this rule apply to non-English words like SEPERATORS (sic) in the
above, BSD in FreeBSD,  DES in DES, des in des, RELENG in RELENG_*, etc.?
:->

>
> 2. Assuming that adequate volunteer resources can be found, all knobs in
> HEAD should be converted to the WORD_SEP format, and compatibility shims
> added, preferably with a suitable warning. This should happen prior to
> the 6-current branch.
>
> 3. At some point in the future, the shims in 2. will be removed in
> 6-current.
>
> 4. The shims from 2. should probably not be removed in the eventual
> RELENG_5. (I'm open on this, I just want to be sure we get it down "on
> paper.")
>
> 5. Conversion of the knobs should never be backported to RELENG_4

I won't complain much about the names of new variables, but
changing the names of old variables and adding compatibility cruft
to support 2 sets of names are wastes of time.

When you change this, don't forget to enforce the change on OtherBSD for
compatibility.  NetBSD uses:

%%%
#	$NetBSD: bsd.README,v 1.134 2003/08/03 09:23:15 lukem Exp $
...
NOxxx		If defined, disables a feature.
		Not intended for users.
		This is to allow Makefiles to disable functionality
		that they don't support (such as missing man pages).
		NOxxx variables must be defined before <bsd.own.mk>
		is included.
%%%

%%%
#	$NetBSD: bsd.own.mk,v 1.352 2003/08/01 22:51:34 mrg Exp $
...
#
# Define MKxxx variables (which are either yes or no) for users
# to set in /etc/mk.conf and override in the make environment.
# These should be tested with `== "no"' or `!= "no"'.
# The NOxxx variables should only be set by Makefiles.
#

#
# Supported NO* options (if defined, MK* will be forced to "no",
# regardless of user's mk.conf setting).
#
.for var in CRYPTO DOC HTML LINKLIB LINT MAN NLS OBJ PIC PICINSTALL PROFILE \
	SHARE
.if defined(NO${var})
MK${var}:=	no
.endif
.endfor
%%%

Perhaps the real point here is that the mostly-implementation-detail names
for the build system leaked out to user-visible names.

Bruce


More information about the freebsd-arch mailing list