[fbsd] [HEADS UP] New world/kernel build options are imminent

Jeremie Le Hen jeremie at le-hen.org
Thu Apr 20 15:54:41 UTC 2006


Hi, Ruslan,

> Basically, the new implementation looks like this:
> 
> - There are MK_* options that are set either to "no" or "yes".
>   Makefiles test them with either ``== "no"'' or ``!= "no"''.
>   Users have no direct control over these variables, and attempt
>   to set them will result in an error from make(1).  Most options
>   default to "yes", but some default to "no".  Options may have
>   dependencies.
> 
> - Then there are WITH_*/WITHOUT_* user configurable knobs (value
>   is not important).  WITH_FOO changes MK_FOO to "yes", WITHOUT_FOO
>   changes MK_FOO to "no".  Both WITH_FOO and WITHOUT_FOO can't be
>   set at the same time, attempt to do so will result in an error.

During the early buildworld process, I need to disable a feature that
may have been enabled in src.conf(5) with the WITH_FOO knob.
IOW, I want to be sure that the feature FOO is disabled for
legacy, bootstrap-tools, build-tools and cross-tools targets.

However if the WITH_FOO knob is enabled in src.conf(5), using
"WITHOUT_FOO=" inside BMAKE, TMAKE and XMAKE macros would lead to an
error triggered by bsd.own.mk :
% 373  .if defined(WITH_${var}) && defined(WITHOUT_${var})
% 374  .error WITH_${var} and WITHOUT_${var} can't both be set.
% 375  .endif

How should I handle that ?  I could override SRCCONF and set it to
/dev/null, but I don't think it is acceptable because according to
Makefile.inc1, bootstrap-tools, build-tools and cross-tools targets
might be influenced by src.conf(5) knobs.

Best regards,
-- 
Jeremie Le Hen
< jeremie at le-hen dot org >< ttz at chchile dot org >


More information about the freebsd-current mailing list