bsd.man.mk: add MANGROUPS
MANGROUPS allows manpages to be divided into groups with their own
options, analogous to CONFGROUPS. This is mainly used for installing
manpages into the correct package by setting ${<group>PACKAGE}.
Convert the backward-compatibility variables MAN1..MAN9 into man
groups.
Reviewed by: sjg
Differential Revision: https://reviews.freebsd.org/D51490
This commit is contained in:
+101
-57
@@ -39,6 +39,13 @@
|
|||||||
#
|
#
|
||||||
# MANDOC_CMD command and flags to create preformatted pages
|
# 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 +++
|
# +++ targets +++
|
||||||
#
|
#
|
||||||
# maninstall:
|
# maninstall:
|
||||||
@@ -49,11 +56,10 @@
|
|||||||
.error bsd.man.mk cannot be included directly.
|
.error bsd.man.mk cannot be included directly.
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if ${MK_MANSPLITPKG} == "no"
|
MANGROUPS?= MAN
|
||||||
MINSTALL?= ${INSTALL} ${TAG_ARGS} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
|
|
||||||
.else
|
# Backwards compatibility.
|
||||||
MINSTALL?= ${INSTALL} ${TAG_ARGS:D${TAG_ARGS},man} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
|
MINSTALL?= ${MANINSTALL}
|
||||||
.endif
|
|
||||||
|
|
||||||
CATDIR= ${MANDIR:H:S/$/\/cat/}
|
CATDIR= ${MANDIR:H:S/$/\/cat/}
|
||||||
CATEXT= .cat
|
CATEXT= .cat
|
||||||
@@ -65,18 +71,55 @@ MCOMPRESS_EXT?= ${COMPRESS_EXT}
|
|||||||
SECTIONS= 1 2 3 4 5 6 7 8 9
|
SECTIONS= 1 2 3 4 5 6 7 8 9
|
||||||
.SUFFIXES: ${SECTIONS:S/^/./g}
|
.SUFFIXES: ${SECTIONS:S/^/./g}
|
||||||
|
|
||||||
|
|
||||||
# Backwards compatibility.
|
# Backwards compatibility.
|
||||||
.if !defined(MAN)
|
.if !defined(MAN)
|
||||||
.for __sect in ${SECTIONS}
|
.for __sect in ${SECTIONS}
|
||||||
.if defined(MAN${__sect}) && !empty(MAN${__sect})
|
MANGROUPS+= MAN${__sect}
|
||||||
MAN+= ${MAN${__sect}}
|
|
||||||
.endif
|
|
||||||
.endfor
|
.endfor
|
||||||
.endif
|
.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:
|
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"
|
.if ${MK_MANCOMPRESS} == "no"
|
||||||
|
|
||||||
# Make special arrangements to filter to a temporary file at build time
|
# Make special arrangements to filter to a temporary file at build time
|
||||||
@@ -90,10 +133,10 @@ FILTEXTENSION=
|
|||||||
ZEXT=
|
ZEXT=
|
||||||
|
|
||||||
.if defined(MANFILTER)
|
.if defined(MANFILTER)
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
CLEANFILES+= ${MAN:T:S/$/${FILTEXTENSION}/g}
|
CLEANFILES+= ${${__group}:T:S/$/${FILTEXTENSION}/g}
|
||||||
CLEANFILES+= ${MAN:T:S/$/${CATEXT}${FILTEXTENSION}/g}
|
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${FILTEXTENSION}/g}
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
.for __target in ${__page:T:S/$/${FILTEXTENSION}/g}
|
.for __target in ${__page:T:S/$/${FILTEXTENSION}/g}
|
||||||
all-man: ${__target}
|
all-man: ${__target}
|
||||||
${__target}: ${__page}
|
${__target}: ${__page}
|
||||||
@@ -107,12 +150,12 @@ ${__target}: ${__page}
|
|||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
.endfor
|
||||||
.endif # !empty(MAN)
|
.endif # !empty(${__group})
|
||||||
.else # !defined(MANFILTER)
|
.else # !defined(MANFILTER)
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
CLEANFILES+= ${MAN:T:S/$/${CATEXT}/g}
|
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}/g}
|
||||||
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
.for __target in ${__page:T:S/$/${CATEXT}/g}
|
.for __target in ${__page:T:S/$/${CATEXT}/g}
|
||||||
all-man: ${__target}
|
all-man: ${__target}
|
||||||
${__target}: ${__page}
|
${__target}: ${__page}
|
||||||
@@ -120,7 +163,7 @@ ${__target}: ${__page}
|
|||||||
.endfor
|
.endfor
|
||||||
.endfor
|
.endfor
|
||||||
.else
|
.else
|
||||||
all-man: ${MAN}
|
all-man: ${${__group}}
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
.endif # defined(MANFILTER)
|
.endif # defined(MANFILTER)
|
||||||
@@ -129,10 +172,10 @@ all-man: ${MAN}
|
|||||||
|
|
||||||
ZEXT= ${MCOMPRESS_EXT}
|
ZEXT= ${MCOMPRESS_EXT}
|
||||||
|
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
CLEANFILES+= ${MAN:T:S/$/${MCOMPRESS_EXT}/g}
|
CLEANFILES+= ${${__group}:T:S/$/${MCOMPRESS_EXT}/g}
|
||||||
CLEANFILES+= ${MAN:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g}
|
CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g}
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
.for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/}
|
.for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/}
|
||||||
all-man: ${__target}
|
all-man: ${__target}
|
||||||
${__target}: ${__page}
|
${__target}: ${__page}
|
||||||
@@ -158,8 +201,9 @@ ${__target}: ${__page}
|
|||||||
|
|
||||||
.endif # ${MK_MANCOMPRESS} == "no"
|
.endif # ${MK_MANCOMPRESS} == "no"
|
||||||
|
|
||||||
.if !defined(NO_MLINKS) && defined(MLINKS) && !empty(MLINKS)
|
_MANLINKS=
|
||||||
.for _oname _osect _dname _dsect in ${MLINKS:C/\.([^.]*)$/.\1 \1/}
|
.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} \
|
_MANLINKS+= ${MANDIR}${_osect}${MANSUBDIR}/${_oname} \
|
||||||
${MANDIR}${_dsect}${MANSUBDIR}/${_dname}
|
${MANDIR}${_dsect}${MANSUBDIR}/${_dname}
|
||||||
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
||||||
@@ -169,37 +213,37 @@ _MANLINKS+= ${CATDIR}${_osect}${MANSUBDIR}/${_oname} \
|
|||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
.if ${MK_STAGING_MAN} == "yes"
|
.if ${MK_STAGING_MAN} == "yes"
|
||||||
STAGE_TARGETS+= stage_files
|
STAGE_TARGETS+= stage_files.${__group}
|
||||||
_mansets:= ${MAN:E:O:u:M*[1-9]:@s@man$s@}
|
_mansets.${__group}:= ${${__group}:E:O:u:M*[1-9]:@s@man$s@}
|
||||||
STAGE_SETS+= ${_mansets}
|
STAGE_SETS+= ${_mansets.${__group}}
|
||||||
.for _page in ${MAN}
|
.for _page in ${${__group}}
|
||||||
stage_files.man${_page:T:E}: ${_page}
|
stage_files.${__group}.man${_page:T:E}: ${_page}
|
||||||
.if target(${_page}${MCOMPRESS_EXT})
|
.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
|
.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
|
.endfor
|
||||||
.if !defined(NO_MLINKS) && !empty(MLINKS)
|
.if !defined(NO_MLINKS) && !empty(${__group}LINKS)
|
||||||
STAGE_SETS+= mlinks
|
STAGE_SETS+= mlinks.${__group}
|
||||||
STAGE_TARGETS+= stage_links
|
STAGE_TARGETS+= stage_links.${__group}
|
||||||
STAGE_LINKS.mlinks:= ${MLINKS:M*.[1-9]:@f@${f:S,^,${MANDIR}${f:E}${MANSUBDIR}/,}@}
|
STAGE_LINKS.mlinks.${__group}:= ${${__group}LINKS:M*.[1-9]:@f@${f:S,^,${MANDIR}${f:E}${MANSUBDIR}/,}@}
|
||||||
stage_links.mlinks: ${_mansets:@s@stage_files.$s@}
|
stage_links.mlinks.${__group}: ${_mansets.${__group}:@s@stage_files.${__group}.$s@}
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
maninstall:
|
realmaninstall-${__group}:
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
maninstall: ${MAN}
|
realmaninstall-${__group}: ${${__group}}
|
||||||
.if ${MK_MANCOMPRESS} == "no"
|
.if ${MK_MANCOMPRESS} == "no"
|
||||||
.if defined(MANFILTER)
|
.if defined(MANFILTER)
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
${MINSTALL} ${__page:T:S/$/${FILTEXTENSION}/g} \
|
${${__group}INSTALL} ${__page:T:S/$/${FILTEXTENSION}/g} \
|
||||||
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/${__page}
|
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/${__page}
|
||||||
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
.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}
|
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page}
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
.endfor
|
||||||
@@ -212,41 +256,39 @@ maninstall: ${MAN}
|
|||||||
esac; \
|
esac; \
|
||||||
page=$$1; shift; sect=$$1; shift; \
|
page=$$1; shift; sect=$$1; shift; \
|
||||||
d=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \
|
d=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \
|
||||||
${ECHO} ${MINSTALL} $${page} $${d}; \
|
${ECHO} ${${__group}INSTALL} $${page} $${d}; \
|
||||||
${MINSTALL} $${page} $${d}; \
|
${${__group}INSTALL} $${page} $${d}; \
|
||||||
done
|
done
|
||||||
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
${MINSTALL} ${__page:T:S/$/${CATEXT}/} \
|
${${__group}INSTALL} ${__page:T:S/$/${CATEXT}/} \
|
||||||
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T}
|
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T}
|
||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
.endif # defined(MANFILTER)
|
.endif # defined(MANFILTER)
|
||||||
.else # ${MK_MANCOMPRESS} == "yes"
|
.else # ${MK_MANCOMPRESS} == "yes"
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
${MINSTALL} ${__page:T:S/$/${MCOMPRESS_EXT}/g} \
|
${${__group}INSTALL} ${__page:T:S/$/${MCOMPRESS_EXT}/g} \
|
||||||
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/
|
${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/
|
||||||
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
|
.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}/}
|
${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T:S/$/${MCOMPRESS_EXT}/}
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
.endfor
|
||||||
.endif # ${MK_MANCOMPRESS} == "no"
|
.endif # ${MK_MANCOMPRESS} == "no"
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
manlinksinstall-${__group}:
|
||||||
.for l t in ${_MANLINKS}
|
.for l t in ${_MANLINKS}
|
||||||
# On MacOS, assume case folding FS, and don't install links from foo.x to FOO.x.
|
# 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 ${.MAKE.OS} != "Darwin" || ${l:tu} != ${t:tu}
|
||||||
.if ${MK_MANSPLITPKG} == "no"
|
${INSTALL_MANLINK} ${${__group}TAG_ARGS} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
|
||||||
${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
|
|
||||||
.endif
|
.endif
|
||||||
.endfor
|
.endfor
|
||||||
|
|
||||||
manlint:
|
manlint:
|
||||||
.if defined(MAN) && !empty(MAN)
|
.if defined(${__group}) && !empty(${__group})
|
||||||
.for __page in ${MAN}
|
.for __page in ${${__group}}
|
||||||
manlint: ${__page}lint
|
manlint: ${__page}lint
|
||||||
${__page}lint: ${__page}
|
${__page}lint: ${__page}
|
||||||
.if defined(MANFILTER)
|
.if defined(MANFILTER)
|
||||||
@@ -256,3 +298,5 @@ ${__page}lint: ${__page}
|
|||||||
.endif
|
.endif
|
||||||
.endfor
|
.endfor
|
||||||
.endif
|
.endif
|
||||||
|
|
||||||
|
.endfor # __group in ${MANGROUPS}
|
||||||
|
|||||||
Reference in New Issue
Block a user