git: b908f6c45e02 - main - bsd.mkopt.mk: Add REQUIRED_OPTIONS list

From: Colin Percival <cperciva_at_FreeBSD.org>
Date: Tue, 20 Jun 2023 00:23:28 UTC
The branch main has been updated by cperciva:

URL: https://cgit.FreeBSD.org/src/commit/?id=b908f6c45e0202deb86fc9bde1b07212924c05fc

commit b908f6c45e0202deb86fc9bde1b07212924c05fc
Author:     Colin Percival <cperciva@FreeBSD.org>
AuthorDate: 2023-06-17 20:08:37 +0000
Commit:     Colin Percival <cperciva@FreeBSD.org>
CommitDate: 2023-06-20 00:23:09 +0000

    bsd.mkopt.mk: Add REQUIRED_OPTIONS list
    
    Options on this list will be forced to 'yes'.  This is intended for use
    as a transitional measure when an option is ceasing to be optional,
    before all of the associated make logic is removed.
    
    Differential Revision:  https://reviews.freebsd.org/D40590
---
 share/mk/bsd.mkopt.mk | 10 ++++++++++
 share/mk/src.opts.mk  |  5 +++++
 2 files changed, 15 insertions(+)

diff --git a/share/mk/bsd.mkopt.mk b/share/mk/bsd.mkopt.mk
index 3c6675b402cc..33eed9c8bce6 100644
--- a/share/mk/bsd.mkopt.mk
+++ b/share/mk/bsd.mkopt.mk
@@ -8,6 +8,8 @@
 # "yes", unless WITHOUT_FOO is defined, in which case it is set to
 # "no".
 #
+# For each option FOO in __REQUIRED_OPTIONS, MK_FOO is set to "yes".
+#
 # For each option FOO in __DEFAULT_NO_OPTIONS, MK_FOO is set to "no",
 # unless WITH_FOO is defined, in which case it is set to "yes".
 #
@@ -52,6 +54,14 @@ MK_${var}:=	yes
 .endfor
 .undef __DEFAULT_YES_OPTIONS
 
+#
+# MK_* options which are always yes, typically as a transitional
+# step towards removing the options entirely.
+#
+.for var in ${__REQUIRED_OPTIONS}
+MK_${var}:=	yes
+.endfor
+
 #
 # MK_* options which default to "no".
 #
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 7b67a55f34b4..8120e23cb28b 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -53,6 +53,9 @@ __<src.opts.mk>__:
 # BROKEN was selected as the least imperfect one considered at the
 # time. Options are added to BROKEN_OPTIONS list on a per-arch basis.
 # At this time, there's no provision for mutually incompatible options.
+# Options listed in 'REQUIRED_OPTIONS' will be hard-wired to 'yes'; this
+# is intended as a transitional measure while options are in the process
+# of being removed.
 
 __DEFAULT_YES_OPTIONS = \
     ACCT \
@@ -213,6 +216,8 @@ __DEFAULT_NO_OPTIONS = \
     SORT_THREADS \
     ZONEINFO_LEAPSECONDS_SUPPORT \
 
+__REQUIRED_OPTIONS = \
+
 # LEFT/RIGHT. Left options which default to "yes" unless their corresponding
 # RIGHT option is disabled.
 __DEFAULT_DEPENDENT_OPTIONS= \