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.mk49
1 files changed, 40 insertions, 9 deletions
diff --git a/share/mk/bsd.man.mk b/share/mk/bsd.man.mk
index f44048b4e453..a2c34eff9e3e 100644
--- a/share/mk/bsd.man.mk
+++ b/share/mk/bsd.man.mk
@@ -21,6 +21,9 @@
# MAN The manual pages to be installed. For sections see
# variable ${SECTIONS}
#
+# MANSRC.${MAN:T} Name of source file for an individual manual page.
+# Defaults to the manual page name.
+#
# MCOMPRESS_CMD Program to compress man pages. Output is to
# stdout. [${COMPRESS_CMD}]
#
@@ -141,13 +144,13 @@ CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${FILTEXTENSION}/g}
# filenames contain colons.
.for __target in ${__page:T:S/:/\:/g:S/$/${FILTEXTENSION}/g}
all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${MANSRC.${__page:T}:U${__page}}
${MANFILTER} < ${.ALLSRC} > ${.TARGET}
.endfor
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}${FILTEXTENSION}/g}
all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${MANSRC.${__page:T}:U${__page}}
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} > ${.TARGET}
.endfor
.endif
@@ -160,12 +163,23 @@ CLEANFILES+= ${${__group}:T:S/$/${CATEXT}/g}
.for __page in ${${__group}}
.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}/g}
all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${MANSRC.${__page:T}:U${__page}}
${MANDOC_CMD} ${.ALLSRC} > ${.TARGET}
.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)
@@ -180,7 +194,7 @@ CLEANFILES+= ${${__group}:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g}
.for __page in ${${__group}}
.for __target in ${__page:T:S/:/\:/g:S/$/${MCOMPRESS_EXT}/}
all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${MANSRC.${__page:T}:U${__page}}
.if defined(MANFILTER)
${MANFILTER} < ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET}
.else
@@ -190,7 +204,7 @@ ${__target}: ${__page}
.if defined(MANBUILDCAT) && !empty(MANBUILDCAT)
.for __target in ${__page:T:S/:/\:/g:S/$/${CATEXT}${MCOMPRESS_EXT}/}
all-man: ${__target}
-${__target}: ${__page}
+${__target}: ${MANSRC.${__page:T}:U${__page}}
.if defined(MANFILTER)
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} | ${MCOMPRESS_CMD} > ${.TARGET}
.else
@@ -238,7 +252,10 @@ stage_links.mlinks.${__group}: ${_mansets.${__group}:@s@stage_files.${__group}.$
realmaninstall-${__group}:
.if defined(${__group}) && !empty(${__group})
-realmaninstall-${__group}: ${${__group}}
+.for __page in ${${__group}}
+__mansrc.${__group}+= ${MANSRC.${__page:T}:U${__page}}
+.endfor
+realmaninstall-${__group}: ${__mansrc.${__group}}
.if ${MK_MANCOMPRESS} == "no"
.if defined(MANFILTER)
.for __page in ${${__group}}
@@ -288,11 +305,11 @@ manlinksinstall-${__group}:
.endif
.endfor
-manlint:
+manlint: .PHONY checkmanlinks
.if defined(${__group}) && !empty(${__group})
.for __page in ${${__group}}
manlint: ${__page:S/:/\:/g}lint
-${__page:S/:/\:/g}lint: ${__page}
+${__page:S/:/\:/g}lint: .PHONY ${MANSRC.${__page:T}:U${__page}}
.if defined(MANFILTER)
${MANFILTER} < ${.ALLSRC} | ${MANDOC_CMD} -Tlint
.else
@@ -301,4 +318,18 @@ ${__page:S/:/\:/g}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}