aboutsummaryrefslogtreecommitdiff
path: root/share/mk
diff options
context:
space:
mode:
Diffstat (limited to 'share/mk')
-rw-r--r--share/mk/bsd.confs.mk2
-rw-r--r--share/mk/bsd.dirs.mk2
-rw-r--r--share/mk/bsd.doc.mk2
-rw-r--r--share/mk/bsd.files.mk6
-rw-r--r--share/mk/bsd.incs.mk2
-rw-r--r--share/mk/bsd.lib.mk2
-rw-r--r--share/mk/bsd.links.mk2
-rw-r--r--share/mk/bsd.man.mk34
-rw-r--r--share/mk/bsd.mkopt.mk68
-rw-r--r--share/mk/bsd.prog.mk2
-rw-r--r--share/mk/src.init.mk2
-rw-r--r--share/mk/src.libnames.mk8
-rw-r--r--share/mk/src.opts.mk10
13 files changed, 107 insertions, 35 deletions
diff --git a/share/mk/bsd.confs.mk b/share/mk/bsd.confs.mk
index ea702cece28d..77b573c7e42c 100644
--- a/share/mk/bsd.confs.mk
+++ b/share/mk/bsd.confs.mk
@@ -49,7 +49,7 @@ ${group}TAGS+= package=${PACKAGE:Uutilities}
. endif
. endif
${group}TAGS+= config
-${group}TAG_ARGS= -T ${${group}TAGS:[*]:S/ /,/g}
+${group}TAG_ARGS= -T ${${group}TAGS:ts,:[*]}
. endif
diff --git a/share/mk/bsd.dirs.mk b/share/mk/bsd.dirs.mk
index 317ff61cd604..1f81bda80eab 100644
--- a/share/mk/bsd.dirs.mk
+++ b/share/mk/bsd.dirs.mk
@@ -22,7 +22,7 @@ ${dir}_FLAG= -f ${${dir}_FLAGS}
. if !defined(${dir}TAGS) || ! ${${dir}TAGS:Mpackage=*}
${dir}TAGS+= package=${${dir}PACKAGE:Uutilities}
. endif
-${dir}TAG_ARGS= -T ${${dir}TAGS:[*]:S/ /,/g}
+${dir}TAG_ARGS= -T ${${dir}TAGS:ts,:[*]}
. endif
installdirs: installdirs-${dir}
diff --git a/share/mk/bsd.doc.mk b/share/mk/bsd.doc.mk
index ea8c68e87d50..675639db7611 100644
--- a/share/mk/bsd.doc.mk
+++ b/share/mk/bsd.doc.mk
@@ -82,7 +82,7 @@ TRFLAGS+= -t
.if !defined(TAGS) || ! ${TAGS:Mpackage=*}
TAGS+= package=${PACKAGE:Uutilities}
.endif
-TAG_ARGS= -T ${TAGS:[*]:S/ /,/g}
+TAG_ARGS= -T ${TAGS:ts,:[*]}
.endif
DCOMPRESS_EXT?= ${COMPRESS_EXT}
diff --git a/share/mk/bsd.files.mk b/share/mk/bsd.files.mk
index aedc414d6a28..3ec4da010577 100644
--- a/share/mk/bsd.files.mk
+++ b/share/mk/bsd.files.mk
@@ -39,14 +39,14 @@ STAGE_SETS+= ${group:C,[/*],_,g}
.if ${group} == "FILES"
FILESPACKAGE?= ${PACKAGE:Uutilities}
-FILESTAGS+= ${TAGS}
+FILESTAGS+= ${TAGS:Npackage=*}
.endif
.if defined(NO_ROOT)
.if !defined(${group}TAGS) || ! ${${group}TAGS:Mpackage=*}
-${group}TAGS+= package=${${group}PACKAGE:Uutilities}
+${group}TAGS+= package=${${group}PACKAGE:U${PACKAGE:Uutilities}}
.endif
-${group}TAG_ARGS= -T ${${group}TAGS:[*]:S/ /,/g}
+${group}TAG_ARGS= -T ${${group}TAGS:ts,:[*]}
.endif
diff --git a/share/mk/bsd.incs.mk b/share/mk/bsd.incs.mk
index df4cf4641141..848ee0aa2ea9 100644
--- a/share/mk/bsd.incs.mk
+++ b/share/mk/bsd.incs.mk
@@ -37,7 +37,7 @@ ${group}TAGS+= package=${${group}PACKAGE:Uutilities},dev
${group}TAGS+= package=${PACKAGE:Uutilities},dev
.endif
.endif
-${group}TAG_ARGS= -T ${${group}TAGS:[*]:S/ /,/g}
+${group}TAG_ARGS= -T ${${group}TAGS:ts,:[*]}
.endif
_${group}INCS=
diff --git a/share/mk/bsd.lib.mk b/share/mk/bsd.lib.mk
index 01dd979af155..3013f32c2b36 100644
--- a/share/mk/bsd.lib.mk
+++ b/share/mk/bsd.lib.mk
@@ -72,7 +72,7 @@ TAGS+= lib${_libcompat}
.if !defined(TAGS) || ! ${TAGS:Mpackage=*}
TAGS+= package=${PACKAGE:Uutilities}
.endif
-TAG_ARGS= -T ${TAGS:[*]:S/ /,/g}
+TAG_ARGS= -T ${TAGS:ts,:[*]}
.endif
# ELF hardening knobs
diff --git a/share/mk/bsd.links.mk b/share/mk/bsd.links.mk
index 437ffd0d3b34..509520a24a3a 100644
--- a/share/mk/bsd.links.mk
+++ b/share/mk/bsd.links.mk
@@ -7,7 +7,7 @@
.if !defined(TAGS) || ! ${TAGS:Mpackage=*}
TAGS+= package=${PACKAGE}
.endif
-TAG_ARGS= -T ${TAGS:[*]:S/ /,/g}
+TAG_ARGS= -T ${TAGS:ts,:[*]}
.endif
afterinstall: _installlinks
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
index a5a4fd528268..66155d1b4cd9 100644
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -114,7 +114,7 @@ ${__group}TAGS+= package=${${__group}PACKAGE:U${PACKAGE:Uutilities}}-man
.endif
.endif
-${__group}TAG_ARGS= -T ${${__group}TAGS:[*]:S/ /,/g}
+${__group}TAG_ARGS= -T ${${__group}TAGS:ts,:[*]}
.endif # defined(NO_ROOT)
${__group}INSTALL?= ${INSTALL} ${${__group}TAG_ARGS} \
@@ -137,13 +137,15 @@ ZEXT=
CLEANFILES+= ${${__group}:T:S/$/${FILTEXTENSION}/g}
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${FILTEXTENSION}/g}
.for __page in ${${__group}}
-.for __target in ${__page:T:S/$/${FILTEXTENSION}/g}
+# Escape colons in target names to support manual pages whose
+# filenames contain colons.
+.for __target in ${__page:T:S/:/\:/g:S/$/${FILTEXTENSION}/g}
all-man: ${__target}
${__target}: ${__page}
${MANFILTER} < ${.ALLSRC} > ${.TARGET}
.endfor
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
-.for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g}
+.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}${FILTEXTENSION}/g}
all-man: ${__target}
${__target}: ${__page}
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET}
@@ -156,7 +158,7 @@ ${__target}: ${__page}
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}/g}
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
.for __page in ${${__group}}
-.for __target in ${__page:T:S/$/${CATEXT}/g}
+.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}/g}
all-man: ${__target}
${__target}: ${__page}
${MANDOC_CMD} ${.ALLSRC} > ${.TARGET}
@@ -176,7 +178,7 @@ ZEXT= ${MCOMPRESS_EXT}
CLEANFILES+= ${${__group}:T:S/$/${MCOMPRESS_EXT}/g}
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g}
.for __page in ${${__group}}
-.for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/}
+.for __target in ${__page:T:S/:/\:/g:S/$/${MCOMPRESS_EXT}/}
all-man: ${__target}
${__target}: ${__page}
.if defined(MANFILTER)
@@ -186,7 +188,7 @@ ${__target}: ${__page}
.endif
.endfor
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
-.for __target in ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/}
+.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}${MCOMPRESS_EXT}/}
all-man: ${__target}
${__target}: ${__page}
.if defined(MANFILTER)
@@ -286,11 +288,11 @@ manlinksinstall-${__group}:
.endif
.endfor
-manlint:
+manlint: .PHONY checkmanlinks
.if defined(${__group}) && !empty(${__group})
.for __page in ${${__group}}
-manlint: ${__page}lint
-${__page}lint: ${__page}
+manlint: ${__page:S/:/\:/g}lint
+${__page:S/:/\:/g}lint: .PHONY ${__page}
.if defined(MANFILTER)
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} -Tlint
.else
@@ -299,4 +301,18 @@ ${__page}lint: ${__page}
.endfor
.endif
+checkmanlinks: .PHONY
+.if defined(${__group}LINKS)
+checkmanlinks: checkmanlinks-${__group}
+checkmanlinks-${__group}: .PHONY
+.for __page __link in ${${__group}LINKS}
+checkmanlinks-${__group}: checkmanlinks-${__group}-${__link}
+checkmanlinks-${__group}-${__link}: .PHONY ${__page}
+ @if ! egrep -q "^(\.\\\\\" )?\.Nm ${__link:R}( ,)?$$" ${.ALLSRC}; then \
+ echo "${__group}LINKS: '.Nm ${__link:R}' not found in ${__page}"; \
+ exit 1; \
+ fi >&2
+.endfor # __page __link in ${${__group}LINKS}
+.endif # defined(${__group}LINKS)
+
.endfor # __group in ${MANGROUPS}
diff --git a/share/mk/bsd.mkopt.mk b/share/mk/bsd.mkopt.mk
index f93101544bf7..4d67ba04294d 100644
--- a/share/mk/bsd.mkopt.mk
+++ b/share/mk/bsd.mkopt.mk
@@ -19,14 +19,6 @@
# If both WITH_FOO and WITHOUT_FOO are defined, WITHOUT_FOO wins and
# MK_FOO is set to "no" regardless of which list it was in.
#
-# All of __DEFAULT_YES_OPTIONS, __DEFAULT_NO_OPTIONS and
-# __DEFAULT_DEPENDENT_OPTIONS are undef'd after all this processing,
-# allowing this file to be included multiple times with different lists.
-#
-# Other parts of the build system will set BROKEN_OPTIONS to a list
-# of options that are broken on this platform. This will not be unset
-# before returning. Clients are expected to always += this variable.
-#
# Users should generally define WITH_FOO or WITHOUT_FOO, but the build
# system should use MK_FOO={yes,no} when it needs to override the
# user's desires or default behavior.
@@ -35,6 +27,19 @@
# defined and __FOO_DEFAULT if not. Valid values for FOO are specified
# by __FOO_OPTIONS.
#
+# All of __REQUIRED_OPTIONS, __DEFAULT_DEPENDENT_OPTIONS,
+# __DEFAULT_YES_OPTIONS, __DEFAULT_NO_OPTIONS, and __SINGLE_OPTIONS
+# are undef'd after all this processing, allowing this file to be
+# included multiple times with different lists. However, we keep
+# deduplicated lists of these options in similarly-named variables
+# without the leading underscores (i.e. FOO_OPTIONS is the complete
+# deduplicated list of all values of __FOO_OPTIONS across all
+# invokations of this file).
+#
+# Other parts of the build system will set BROKEN_OPTIONS to a list
+# of options that are broken on this platform. This will not be unset
+# before returning. Clients are expected to always += this variable.
+#
# Other parts of the build system will set BROKEN_SINGLE_OPTIONS to a
# list of 3-tuples of the form: "OPTION broken_value replacment_value".
# This will not be unset before returning. Clients are expected to
@@ -42,6 +47,33 @@
#
#
+# These variables accumulate all the options from our possibly
+# multiple callers so they're available to build tools such as
+# tools/build/options/makeman.
+#
+DEFAULT_NO_OPTIONS+=${__DEFAULT_NO_OPTIONS}
+DEFAULT_NO_OPTIONS:=${DEFAULT_NO_OPTIONS:O:u}
+DEFAULT_YES_OPTIONS+=${__DEFAULT_YES_OPTIONS}
+DEFAULT_YES_OPTIONS:=${DEFAULT_YES_OPTIONS:O:u}
+DEFAULT_DEPENDENT_OPTIONS+=${__DEFAULT_DEPENDENT_OPTIONS}
+DEFAULT_DEPENDENT_OPTIONS:=${DEFAULT_DEPENDENT_OPTIONS:O:u}
+REQUIRED_OPTIONS+=${__REQUIRED_OPTIONS}
+REQUIRED_OPTIONS:=${REQUIRED_OPTIONS:O:u}
+SINGLE_OPTIONS+=${__SINGLE_OPTIONS}
+SINGLE_OPTIONS:=${SINGLE_OPTIONS:O:u}
+
+#
+# All options defined by our caller; we will undef this before
+# returning.
+#
+__ALL_OPTIONS:= \
+ ${__DEFAULT_NO_OPTIONS} \
+ ${__DEFAULT_YES_OPTIONS} \
+ ${__REQUIRED_OPTIONS} \
+ ${__DEFAULT_DEPENDENT_OPTIONS:H} \
+ ${__SINGLE_OPTIONS}
+
+#
# MK_* options which default to "yes".
#
.for var in ${__DEFAULT_YES_OPTIONS}
@@ -72,6 +104,7 @@ MK_${var}:= yes
.endif
MK_${var}:= yes
.endfor
+.undef __REQUIRED_OPTIONS
#
# MK_* options which default to "no".
@@ -142,3 +175,22 @@ MK_${vv:H}?= ${MK_${vv:T}}
MK_${vv:H}:= ${MK_${vv:H}}
.endfor
.undef __DEFAULT_DEPENDENT_OPTIONS
+
+#
+# Define SRC_OPT_DEFS and SRC_OPT_LIST
+#
+SRC_OPT_DEFS?=-D__${MACHINE_ARCH}__
+SRC_OPT_LIST?=TARGET=${MACHINE} TARGET_ARCH=${MACHINE_ARCH}
+.for option in ${__ALL_OPTIONS:O:u}
+.if defined(OPT_${option})
+SRC_OPT_DEFS+=-D${option}=${OPT_${option}:Q}
+SRC_OPT_LIST+=${option}=${OPT_${option}:Q}
+.elif ${MK_${option}} == yes
+SRC_OPT_DEFS+=-D${option}
+SRC_OPT_LIST+=WITH_${option}=1
+.elif ${MK_${option}} == no
+SRC_OPT_DEFS+=-U${option}
+SRC_OPT_LIST+=WITHOUT_${option}=1
+.endif
+.endfor
+.undef __ALL_OPTIONS
diff --git a/share/mk/bsd.prog.mk b/share/mk/bsd.prog.mk
index f44556ef9b75..9350d4786cec 100644
--- a/share/mk/bsd.prog.mk
+++ b/share/mk/bsd.prog.mk
@@ -129,7 +129,7 @@ STRIP?= -s
.if !defined(TAGS) || ! ${TAGS:Mpackage=*}
TAGS+= package=${PACKAGE:Uutilities}
.endif
-TAG_ARGS= -T ${TAGS:[*]:S/ /,/g}
+TAG_ARGS= -T ${TAGS:ts,:[*]}
.endif
.if defined(NO_SHARED) && ${NO_SHARED:tl} != "no"
diff --git a/share/mk/src.init.mk b/share/mk/src.init.mk
index 01ea5437e5a7..fd3f3501f609 100644
--- a/share/mk/src.init.mk
+++ b/share/mk/src.init.mk
@@ -3,7 +3,7 @@
__<src.init.mk>__: .NOTMAIN
.if !target(buildenv)
-buildenv: .PHONY
+buildenv: .PHONY .NOTMAIN
${_+_}@env BUILDENV_DIR=${.CURDIR} ${MAKE} -C ${SRCTOP} buildenv
.endif
diff --git a/share/mk/src.libnames.mk b/share/mk/src.libnames.mk
index 0fe352dffaf4..9ca043e7733c 100644
--- a/share/mk/src.libnames.mk
+++ b/share/mk/src.libnames.mk
@@ -78,6 +78,7 @@ _INTERNALLIBS= \
smdb \
smutil \
telnet \
+ util++ \
vers \
wpaap \
wpacommon \
@@ -471,7 +472,11 @@ _DP_ncursesw= tinfow
_DP_formw= ncursesw
_DP_nvpair= spl
_DP_panelw= ncursesw
+.if ${MK_MITKRB5} == "no"
_DP_rpcsec_gss= gssapi
+.else
+_DP_rpcsec_gss= gssapi_krb5
+.endif
_DP_smb= kiconv
_DP_ulog= md
_DP_fifolog= z
@@ -694,6 +699,9 @@ LIBPKGECC?= ${LIBPKGECCDIR}/libpkgecc${PIE_SUFFIX}.a
LIBPMCSTATDIR= ${_LIB_OBJTOP}/lib/libpmcstat
LIBPMCSTAT?= ${LIBPMCSTATDIR}/libpmcstat${PIE_SUFFIX}.a
+LIBUTIL++DIR= ${_LIB_OBJTOP}/lib/libutil++
+LIBUTIL++?= ${LIBUTIL++DIR}/libutil++${PIE_SUFFIX}.a
+
LIBWPAAPDIR= ${_LIB_OBJTOP}/usr.sbin/wpa/src/ap
LIBWPAAP?= ${LIBWPAAPDIR}/libwpaap${PIE_SUFFIX}.a
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index ef43d3c939b2..f146a4b24424 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -80,6 +80,7 @@ __DEFAULT_YES_OPTIONS = \
CDDL \
CLANG \
CLANG_BOOTSTRAP \
+ CLEAN \
CPP \
CROSS_COMPILER \
CRYPT \
@@ -200,7 +201,6 @@ __DEFAULT_NO_OPTIONS = \
BHYVE_SNAPSHOT \
CLANG_EXTRAS \
CLANG_FORMAT \
- CLEAN \
DIALOG \
DETECT_TZ_CHANGES \
DISK_IMAGE_TOOLS_BOOTSTRAP \
@@ -296,9 +296,9 @@ __DEFAULT_NO_OPTIONS+=LLVM_TARGET_BPF LLVM_TARGET_MIPS
.include <bsd.compiler.mk>
.if ${__T} == "i386" || ${__T} == "amd64"
-__DEFAULT_NO_OPTIONS += FDT
+__DEFAULT_NO_OPTIONS+=FDT
.else
-__DEFAULT_YES_OPTIONS += FDT
+__DEFAULT_YES_OPTIONS+=FDT
.endif
.if ${__T:Marm*} == "" && ${__T:Mriscv64*} == ""
@@ -519,8 +519,4 @@ MK_${vv:H}:= ${MK_${vv:T}}
.endif
.endfor
-#
-# Set defaults for the MK_*_SUPPORT variables.
-#
-
.endif # !target(__<src.opts.mk>__)