bsd.man.mk revision 83075
150476Speter# $FreeBSD: head/share/mk/bsd.man.mk 83075 2001-09-05 11:24:34Z ru $ 215903Swosch# 315903Swosch# The include file <bsd.man.mk> handles installing manual pages and 431074Swosch# their links. 515903Swosch# 615903Swosch# 715903Swosch# +++ variables +++ 815903Swosch# 915903Swosch# DESTDIR Change the tree where the man pages gets installed. [not set] 1015903Swosch# 1115903Swosch# MANDIR Base path for manual installation. [${SHAREDIR}/man/man] 1215903Swosch# 1315903Swosch# MANOWN Manual owner. [${SHAREOWN}] 1415903Swosch# 1515903Swosch# MANGRP Manual group. [${SHAREGRP}] 1615903Swosch# 1715903Swosch# MANMODE Manual mode. [${NOBINMODE}] 1815903Swosch# 1915903Swosch# MANSUBDIR Subdirectory under the manual page section, i.e. "/i386" 2015903Swosch# or "/tahoe" for machine specific manual pages. 2115903Swosch# 2274806Sru# MAN The manual pages to be installed. For sections see 2315903Swosch# variable ${SECTIONS} 2415903Swosch# 2523546Swosch# MCOMPRESS_CMD Program to compress man pages. Output is to 2623546Swosch# stdout. [${COMPRESS_CMD}] 2715903Swosch# 2815903Swosch# MLINKS List of manual page links (using a suffix). The 2915903Swosch# linked-to file must come first, the linked file 3015903Swosch# second, and there may be multiple pairs. The files 3115903Swosch# are hard-linked. 3215903Swosch# 3315903Swosch# NOMANCOMPRESS If you do not want unformatted manual pages to be 3415903Swosch# compressed when they are installed. [not set] 3515903Swosch# 3620935Swosch# NOMLINKS If you do not want install manual page links. [not set] 3720935Swosch# 3860749Shoek# MANFILTER command to pipe the raw man page through before compressing 3917511Speter# or installing. Can be used to do sed substitution. 4015903Swosch# 4127659Spst# MANBUILDCAT create preformatted manual pages in addition to normal 4227659Spst# pages. [not set] 4327659Spst# 4427659Spst# MROFF_CMD command and flags to create preformatted pages 4527659Spst# 4615903Swosch# +++ targets +++ 4715903Swosch# 4815903Swosch# maninstall: 4915903Swosch# Install the manual pages and their links. 5015903Swosch# 511638Srgrimes 5211468SbdeMINSTALL= ${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} 531638Srgrimes 5427659SpstCATDIR= ${MANDIR:H:S/$/\/cat/} 5527659SpstCATEXT= .cat 5679613SruMROFF_CMD?= groff -Tascii -mtty-char -man -t 5727659Spst 5823546SwoschMCOMPRESS_CMD?= ${COMPRESS_CMD} 5923546SwoschMCOMPRESS_EXT?= ${COMPRESS_EXT} 6011468Sbde 6174939SruSECTIONS= 1 1aout 2 3 4 5 6 7 8 9 6274939Sru.SUFFIXES: ${SECTIONS:S/^/./g} 6311468Sbde 6474939Sru# Backwards compatibility. 6574939Sru.if !defined(MAN) 6611623Sbde.for sect in ${SECTIONS} 6711623Sbde.if defined(MAN${sect}) && !empty(MAN${sect}) 6874806SruMAN+= ${MAN${sect}} 6911623Sbde.endif 7011623Sbde.endfor 7174939Sru.endif 7211623Sbde 7374806Sruall-man: 7411468Sbde 7511468Sbde.if defined(NOMANCOMPRESS) 7611468Sbde 7718314Speter# Make special arrangements to filter to a temporary file at build time 7818314Speter# for NOMANCOMPRESS. 7918314Speter.if defined(MANFILTER) 8018314SpeterFILTEXTENSION= .filt 8118314Speter.else 8218314SpeterFILTEXTENSION= 8318314Speter.endif 8418314Speter 851844SwollmanZEXT= 861638Srgrimes 8717511Speter.if defined(MANFILTER) 8874806Sru.if defined(MAN) && !empty(MAN) 8974806SruCLEANFILES+= ${MAN:T:S/$/${FILTEXTENSION}/g} 9074806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}${FILTEXTENSION}/g} 9174806Sru.for page in ${MAN} 9218314Speter.for target in ${page:T:S/$/${FILTEXTENSION}/g} 9317511Speterall-man: ${target} 9417511Speter${target}: ${page} 9517831Speter ${MANFILTER} < ${.ALLSRC} > ${.TARGET} 9617511Speter.endfor 9727673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 9827659Spst.for target in ${page:T:S/$/${CATEXT}${FILTEXTENSION}/g} 9927659Spstall-man: ${target} 10027659Spst${target}: ${page} 10127659Spst ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} > ${.TARGET} 10217511Speter.endfor 10317511Speter.endif 10417511Speter.endfor 10517511Speter.endif 10627659Spst.else 10774806Sru.if defined(MAN) && !empty(MAN) 10874806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}/g} 10927673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 11074806Sru.for page in ${MAN} 11127659Spst.for target in ${page:T:S/$/${CATEXT}/g} 11227659Spstall-man: ${target} 11327659Spst${target}: ${page} 11427659Spst ${MROFF_CMD} ${.ALLSRC} > ${.TARGET} 11527659Spst.endfor 11627659Spst.endfor 11727659Spst.endif 11827659Spst.endif 11927659Spst.endif 12017511Speter 12111468Sbde.else 1221844Swollman 12323546SwoschZEXT= ${MCOMPRESS_EXT} 12411136Swollman 12574806Sru.if defined(MAN) && !empty(MAN) 12674806SruCLEANFILES+= ${MAN:T:S/$/${MCOMPRESS_EXT}/g} 12774806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} 12874806Sru.for page in ${MAN} 12923546Swosch.for target in ${page:T:S/$/${MCOMPRESS_EXT}/} 13011468Sbdeall-man: ${target} 13111468Sbde${target}: ${page} 13217831Speter.if defined(MANFILTER) 13323546Swosch ${MANFILTER} < ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} 13417511Speter.else 13523546Swosch ${MCOMPRESS_CMD} ${.ALLSRC} > ${.TARGET} 13617511Speter.endif 13711136Swollman.endfor 13827673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 13927659Spst.for target in ${page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/} 14027659Spstall-man: ${target} 14127659Spst${target}: ${page} 14227659Spst.if defined(MANFILTER) 14327659Spst ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} | ${MCOMPRESS_CMD} > ${.TARGET} 14427659Spst.else 14527659Spst ${MROFF_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} 14627659Spst.endif 14711136Swollman.endfor 14811468Sbde.endif 14911136Swollman.endfor 15027659Spst.endif 15111136Swollman 1521638Srgrimes.endif 1531844Swollman 15411623Sbdemaninstall:: 15574806Sru.if defined(MAN) && !empty(MAN) 15674806Srumaninstall:: ${MAN} 15711136Swollman.if defined(NOMANCOMPRESS) 15818314Speter.if defined(MANFILTER) 15974806Sru.for page in ${MAN} 16027659Spst ${MINSTALL} ${page:T:S/$/${FILTEXTENSION}/g} \ 16174806Sru ${DESTDIR}${MANDIR}${page:E}${MANSUBDIR}/${page} 16227673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 16327659Spst ${MINSTALL} ${page:T:S/$/${CATEXT}${FILTEXTENSION}/g} \ 16474806Sru ${DESTDIR}${CATDIR}${page:E}${MANSUBDIR}/${page} 16527659Spst.endif 16618314Speter.endfor 16718314Speter.else 16874806Sru @set `echo ${.ALLSRC} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \ 16974806Sru while : ; do \ 17074806Sru case $$# in \ 17174806Sru 0) break;; \ 17274806Sru 1) echo "warn: missing extension: $$1"; break;; \ 17374806Sru esac; \ 17474806Sru page=$$1; shift; sect=$$1; shift; \ 17574806Sru d=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \ 17674806Sru ${ECHO} ${MINSTALL} $${page} $${d}; \ 17774806Sru ${MINSTALL} $${page} $${d}; \ 17874806Sru done 17927673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 18074806Sru.for page in ${MAN} 18127659Spst ${MINSTALL} ${page:T:S/$/${CATEXT}/} \ 18274806Sru ${DESTDIR}${CATDIR}${page:E}${MANSUBDIR}/${page:T} 18327659Spst.endfor 18418314Speter.endif 18527659Spst.endif 1861844Swollman.else 18774806Sru.for page in ${MAN} 18874806Sru ${MINSTALL} ${page:T:S/$/${MCOMPRESS_EXT}/g} \ 18974806Sru ${DESTDIR}${MANDIR}${page:E}${MANSUBDIR} 19027673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 19127659Spst ${MINSTALL} ${page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} \ 19274806Sru ${DESTDIR}${CATDIR}${page:E}${MANSUBDIR}/${page:T:S/$/${MCOMPRESS_EXT}/} 19374806Sru.endif 19427659Spst.endfor 1951844Swollman.endif 1961844Swollman.endif 19711468Sbde 19820935Swosch.if !defined(NOMLINKS) && defined(MLINKS) && !empty(MLINKS) 19915902Swosch @set `echo ${MLINKS} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \ 20015902Swosch while : ; do \ 20115902Swosch case $$# in \ 20215902Swosch 0) break;; \ 20315902Swosch [123]) echo "warn: empty MLINK: $$1 $$2 $$3"; break;; \ 20415902Swosch esac; \ 20515902Swosch name=$$1; shift; sect=$$1; shift; \ 20615902Swosch l=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \ 20715902Swosch name=$$1; shift; sect=$$1; shift; \ 20815902Swosch t=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \ 2092353Sbde ${ECHO} $${t}${ZEXT} -\> $${l}${ZEXT}; \ 21023546Swosch rm -f $${t} $${t}${MCOMPRESS_EXT}; \ 2111844Swollman ln $${l}${ZEXT} $${t}${ZEXT}; \ 21215902Swosch done 21327673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 21427659Spst @set `echo ${MLINKS} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \ 21527659Spst while : ; do \ 21627659Spst case $$# in \ 21727659Spst 0) break;; \ 21827659Spst [123]) echo "warn: empty MLINK: $$1 $$2 $$3"; break;; \ 21927659Spst esac; \ 22027659Spst name=$$1; shift; sect=$$1; shift; \ 22127659Spst l=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \ 22227659Spst name=$$1; shift; sect=$$1; shift; \ 22327659Spst t=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \ 22427659Spst ${ECHO} $${t}${ZEXT} -\> $${l}${ZEXT}; \ 22527659Spst rm -f $${t} $${t}${MCOMPRESS_EXT}; \ 22627659Spst ln $${l}${ZEXT} $${t}${ZEXT}; \ 22727659Spst done 2281638Srgrimes.endif 22927659Spst.endif 23083075Sru 23183075Srumanlint: 23283075Sru.if defined(MAN) && !empty(MAN) 23383075Sru.for page in ${MAN} 23483075Srumanlint: ${page}lint 23583075Sru${page}lint: ${page} 23683075Sru.if defined(MANFILTER) 23783075Sru ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} -ww >/dev/null 23883075Sru.else 23983075Sru ${MROFF_CMD} -ww ${.ALLSRC} >/dev/null 24083075Sru.endif 24183075Sru.endfor 24283075Sru.endif 243