aboutsummaryrefslogtreecommitdiff
path: root/share/mk/bsd.man.mk
diff options
context:
space:
mode:
Diffstat (limited to 'share/mk/bsd.man.mk')
-rw-r--r--share/mk/bsd.man.mk28
1 files changed, 24 insertions, 4 deletions
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
index 36d2cf1a1433..1591a3e0905e 100644
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -97,6 +97,14 @@ manlinksinstall: .PHONY
all-man:
+# Take groups from both MANGROUPS and MANGROUPS.yes, to allow syntax like
+# MANGROUPS.${MK_FOO}=FOO. Sort and uniq the list of groups in case of
+# duplicates.
+.if defined(MANGROUPS) || defined(MANGROUPS.yes)
+MANGROUPS:=${MANGROUPS} ${MANGROUPS.yes}
+MANGROUPS:=${MANGROUPS:O:u}
+.endif
+
.for __group in ${MANGROUPS}
realmaninstall: realmaninstall-${__group}
@@ -105,15 +113,16 @@ manlinksinstall: manlinksinstall-${__group}
${__group}OWN?= ${MANOWN}
${__group}GRP?= ${MANGRP}
${__group}MODE?= ${MANMODE}
+${__group}PACKAGE?= ${PACKAGE:Uutilities}
# Tag processing is only done for NO_ROOT installs.
.if defined(NO_ROOT)
.if !defined(${__group}TAGS) || ! ${${__group}TAGS:Mpackage=*}
-.if ${MK_MANSPLITPKG} == "no"
-${__group}TAGS+= package=${${__group}PACKAGE:U${PACKAGE:Uutilities}}
+.if ${MK_MANSPLITPKG} == "no" || ${${__group}PACKAGE:M*-man}
+${__group}TAGS+= package=${${__group}PACKAGE}
.else
-${__group}TAGS+= package=${${__group}PACKAGE:U${PACKAGE:Uutilities}}-man
+${__group}TAGS+= package=${${__group}PACKAGE}-man
.endif
.endif
@@ -168,7 +177,18 @@ ${__target}: ${MANSRC.${__page:T}:U${__page}}
.endfor
.endfor
.else
-all-man: ${${__group}}
+.for __page in ${${__group}}
+.if defined(MANSRC.${__page:T})
+.for __target in ${__page:T:S/:/\:/g}
+all-man: ${__target}
+CLEANFILES+= ${__target}
+${__target}: ${MANSRC.${__page:T}}
+ ${CP} ${.ALLSRC} ${.TARGET}
+.endfor
+.else
+all-man: ${__page}
+.endif
+.endfor
.endif
.endif
.endif # defined(MANFILTER)