Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F142825827
D51490.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
8 KB
Referenced Files
None
Subscribers
None
D51490.diff
View Options
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -39,6 +39,13 @@
#
# MANDOC_CMD command and flags to create preformatted pages
#
+# MANGROUPS A list of groups, each of which should be a variable containing
+# a list of manual pages in that group. By default one group is
+# defined called "MAN".
+#
+# For each group, group-specific options may be set:
+# <group>OWN, <group>GRP, <group>MODE and <group>PACKAGE.
+#
# +++ targets +++
#
# maninstall:
@@ -49,11 +56,10 @@
.error bsd.man.mk cannot be included directly.
.endif
-.if ${MK_MANSPLITPKG} == "no"
-MINSTALL?= ${INSTALL} ${TAG_ARGS} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
-.else
-MINSTALL?= ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},man} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
-.endif
+MANGROUPS?= MAN
+
+# Backwards compatibility.
+MINSTALL?= ${MANINSTALL}
CATDIR= ${MANDIR:H:S/$/\/cat/}
CATEXT= .cat
@@ -65,18 +71,55 @@
SECTIONS= 1 2 3 4 5 6 7 8 9
.SUFFIXES: ${SECTIONS:S/^/./g}
-
# Backwards compatibility.
.if !defined(MAN)
.for __sect in ${SECTIONS}
-.if defined(MAN${__sect}) && !empty(MAN${__sect})
-MAN+= ${MAN${__sect}}
-.endif
+MANGROUPS+= MAN${__sect}
.endfor
.endif
+# Following the conventions of MANGROUPS, manpage links should be defined
+# as ${group}LINKS, which means the default groups' links would be called
+# MANLINKS. However it's actually called MLINKS, so for compatibility,
+# use ${MLINKS} as the default group's links if it's set.
+.if defined(MLINKS)
+MANLINKS= ${MLINKS}
+.endif
+
+maninstall: realmaninstall manlinksinstall .PHONY
+# Make sure all manpages are installed before we try to link any.
+.ORDER: realmaninstall manlinksinstall
+realmaninstall: .PHONY
+manlinksinstall: .PHONY
+
all-man:
+.for __group in ${MANGROUPS}
+
+realmaninstall: realmaninstall-${__group}
+manlinksinstall: manlinksinstall-${__group}
+
+${__group}OWN?= ${MANOWN}
+${__group}GRP?= ${MANGRP}
+${__group}MODE?= ${MANMODE}
+
+# 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}}
+.else
+${__group}TAGS+= package=${${__group}PACKAGE:U${PACKAGE:Uutilities}}-man
+.endif
+.endif
+
+${__group}TAG_ARGS= -T ${${__group}TAGS:[*]:S/ /,/g}
+.endif # defined(NO_ROOT)
+
+${__group}INSTALL?= ${INSTALL} ${${__group}TAG_ARGS} \
+ -o ${${__group}OWN} -g ${${__group}GRP} -m ${${__group}MODE}
+
.if ${MK_MANCOMPRESS} == "no"
# Make special arrangements to filter to a temporary file at build time
@@ -90,10 +133,10 @@
ZEXT=
.if defined(MANFILTER)
-.if defined(MAN) && !empty(MAN)
-CLEANFILES+= ${MAN:T:S/$/${FILTEXTENSION}/g}
-CLEANFILES+= ${MAN:T:S/$/${CATEXT}${FILTEXTENSION}/g}
-.for __page in ${MAN}
+.if defined(${__group}) && !empty(${__group})
+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}
all-man: ${__target}
${__target}: ${__page}
@@ -107,12 +150,12 @@
.endfor
.endif
.endfor
-.endif # !empty(MAN)
+.endif # !empty(${__group})
.else # !defined(MANFILTER)
-.if defined(MAN) && !empty(MAN)
-CLEANFILES+= ${MAN:T:S/$/${CATEXT}/g}
+.if defined(${__group}) && !empty(${__group})
+CLEANFILES+= ${${__group}:T:S/$/${CATEXT}/g}
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
-.for __page in ${MAN}
+.for __page in ${${__group}}
.for __target in ${__page:T:S/$/${CATEXT}/g}
all-man: ${__target}
${__target}: ${__page}
@@ -120,7 +163,7 @@
.endfor
.endfor
.else
-all-man: ${MAN}
+all-man: ${${__group}}
.endif
.endif
.endif # defined(MANFILTER)
@@ -129,10 +172,10 @@
ZEXT= ${MCOMPRESS_EXT}
-.if defined(MAN) && !empty(MAN)
-CLEANFILES+= ${MAN:T:S/$/${MCOMPRESS_EXT}/g}
-CLEANFILES+= ${MAN:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g}
-.for __page in ${MAN}
+.if defined(${__group}) && !empty(${__group})
+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}/}
all-man: ${__target}
${__target}: ${__page}
@@ -158,8 +201,9 @@
.endif # ${MK_MANCOMPRESS} == "no"
-.if !defined(NO_MLINKS) && defined(MLINKS) && !empty(MLINKS)
-.for _oname _osect _dname _dsect in ${MLINKS:C/\.([^.]*)$/.\1 \1/}
+_MANLINKS=
+.if !defined(NO_MLINKS) && defined(${__group}LINKS) && !empty(${__group}LINKS)
+.for _oname _osect _dname _dsect in ${${__group}LINKS:C/\.([^.]*)$/.\1 \1/}
_MANLINKS+= ${MANDIR}${_osect}${MANSUBDIR}/${_oname} \
${MANDIR}${_dsect}${MANSUBDIR}/${_dname}
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
@@ -169,37 +213,37 @@
.endfor
.endif
-.if defined(MAN) && !empty(MAN)
+.if defined(${__group}) && !empty(${__group})
.if ${MK_STAGING_MAN} == "yes"
-STAGE_TARGETS+= stage_files
-_mansets:= ${MAN:E:O:u:M*[1-9]:@s@man$s@}
-STAGE_SETS+= ${_mansets}
-.for _page in ${MAN}
-stage_files.man${_page:T:E}: ${_page}
+STAGE_TARGETS+= stage_files.${__group}
+_mansets.${__group}:= ${${__group}:E:O:u:M*[1-9]:@s@man$s@}
+STAGE_SETS+= ${_mansets.${__group}}
+.for _page in ${${__group}}
+stage_files.${__group}.man${_page:T:E}: ${_page}
.if target(${_page}${MCOMPRESS_EXT})
-stage_files.man${_page:T:E}: ${_page}${MCOMPRESS_EXT}
+stage_files.${__group}.man${_page:T:E}: ${_page}${MCOMPRESS_EXT}
.endif
-STAGE_DIR.man${_page:T:E}?= ${STAGE_OBJTOP}${MANDIR}${_page:T:E}${MANSUBDIR}
+STAGE_DIR.${__group}.man${_page:T:E}?= ${STAGE_OBJTOP}${MANDIR}${_page:T:E}${MANSUBDIR}
.endfor
-.if !defined(NO_MLINKS) && !empty(MLINKS)
-STAGE_SETS+= mlinks
-STAGE_TARGETS+= stage_links
-STAGE_LINKS.mlinks:= ${MLINKS:M*.[1-9]:@f@${f:S,^,${MANDIR}${f:E}${MANSUBDIR}/,}@}
-stage_links.mlinks: ${_mansets:@s@stage_files.$s@}
+.if !defined(NO_MLINKS) && !empty(${__group}LINKS)
+STAGE_SETS+= mlinks.${__group}
+STAGE_TARGETS+= stage_links.${__group}
+STAGE_LINKS.mlinks.${__group}:= ${${__group}LINKS:M*.[1-9]:@f@${f:S,^,${MANDIR}${f:E}${MANSUBDIR}/,}@}
+stage_links.mlinks.${__group}: ${_mansets.${__group}:@s@stage_files.${__group}.$s@}
.endif
.endif
.endif
-maninstall:
-.if defined(MAN) && !empty(MAN)
-maninstall: ${MAN}
+realmaninstall-${__group}:
+.if defined(${__group}) && !empty(${__group})
+realmaninstall-${__group}: ${${__group}}
.if ${MK_MANCOMPRESS} == "no"
.if defined(MANFILTER)
-.for __page in ${MAN}
- ${MINSTALL} ${__page:T:S/$/${FILTEXTENSION}/g} \
+.for __page in ${${__group}}
+ ${${__group}INSTALL} ${__page:T:S/$/${FILTEXTENSION}/g} \
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/${__page}
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
- ${MINSTALL} ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} \
+ ${${__group}INSTALL} ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} \
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page}
.endif
.endfor
@@ -212,41 +256,39 @@
esac; \
page=$$1; shift; sect=$$1; shift; \
d=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \
- ${ECHO} ${MINSTALL} $${page} $${d}; \
- ${MINSTALL} $${page} $${d}; \
+ ${ECHO} ${${__group}INSTALL} $${page} $${d}; \
+ ${${__group}INSTALL} $${page} $${d}; \
done
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
-.for __page in ${MAN}
- ${MINSTALL} ${__page:T:S/$/${CATEXT}/} \
+.for __page in ${${__group}}
+ ${${__group}INSTALL} ${__page:T:S/$/${CATEXT}/} \
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T}
.endfor
.endif
.endif # defined(MANFILTER)
.else # ${MK_MANCOMPRESS} == "yes"
-.for __page in ${MAN}
- ${MINSTALL} ${__page:T:S/$/${MCOMPRESS_EXT}/g} \
+.for __page in ${${__group}}
+ ${${__group}INSTALL} ${__page:T:S/$/${MCOMPRESS_EXT}/g} \
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
- ${MINSTALL} ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} \
+ ${${__group}INSTALL} ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} \
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T:S/$/${MCOMPRESS_EXT}/}
.endif
.endfor
.endif # ${MK_MANCOMPRESS} == "no"
.endif
+
+manlinksinstall-${__group}:
.for l t in ${_MANLINKS}
# On MacOS, assume case folding FS, and don't install links from foo.x to FOO.x.
.if ${.MAKE.OS} != "Darwin" || ${l:tu} != ${t:tu}
-.if ${MK_MANSPLITPKG} == "no"
- ${INSTALL_MANLINK} ${TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
-.else
- ${INSTALL_MANLINK} ${TAG_ARGS:D${TAG_ARGS},man} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
-.endif
+ ${INSTALL_MANLINK} ${${__group}TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
.endif
.endfor
manlint:
-.if defined(MAN) && !empty(MAN)
-.for __page in ${MAN}
+.if defined(${__group}) && !empty(${__group})
+.for __page in ${${__group}}
manlint: ${__page}lint
${__page}lint: ${__page}
.if defined(MANFILTER)
@@ -256,3 +298,5 @@
.endif
.endfor
.endif
+
+.endfor # __group in ${MANGROUPS}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jan 24, 11:05 PM (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27914793
Default Alt Text
D51490.diff (8 KB)
Attached To
Mode
D51490: bsd.man.mk: add MANGROUPS
Attached
Detach File
Event Timeline
Log In to Comment