150476Speter# $FreeBSD$ 215903Swosch# 3139761Skrion# 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 29139761Skrion# linked-to file must come first, the linked file 30139761Skrion# second, and there may be multiple pairs. The files 3115903Swosch# are hard-linked. 3215903Swosch# 33139761Skrion# NO_MANCOMPRESS If you do not want unformatted manual pages to be 3415903Swosch# compressed when they are installed. [not set] 3515903Swosch# 36139109Sru# NO_MLINKS 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 5294940Sru.if !target(__<bsd.init.mk>__) 5394940Sru.error bsd.man.mk cannot be included directly. 5494940Sru.endif 5594940Sru 56102173SruMINSTALL?= ${INSTALL} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} 571638Srgrimes 5827659SpstCATDIR= ${MANDIR:H:S/$/\/cat/} 5927659SpstCATEXT= .cat 60105388SruMROFF_CMD?= groff -Tascii -mtty-char -man -t 6127659Spst 6223546SwoschMCOMPRESS_CMD?= ${COMPRESS_CMD} 6323546SwoschMCOMPRESS_EXT?= ${COMPRESS_EXT} 6411468Sbde 65245515SbrooksSECTIONS= 1 2 3 4 5 6 7 8 9 6674939Sru.SUFFIXES: ${SECTIONS:S/^/./g} 6711468Sbde 6874939Sru# Backwards compatibility. 6974939Sru.if !defined(MAN) 70167486Sru.for __sect in ${SECTIONS} 71167486Sru.if defined(MAN${__sect}) && !empty(MAN${__sect}) 72167486SruMAN+= ${MAN${__sect}} 7311623Sbde.endif 7411623Sbde.endfor 7574939Sru.endif 7611623Sbde 7796164Sru_manpages: 7896164Sruall-man: _manpages 7911468Sbde 80139103Sru.if defined(NO_MANCOMPRESS) 8111468Sbde 8218314Speter# Make special arrangements to filter to a temporary file at build time 83139103Sru# for NO_MANCOMPRESS. 8418314Speter.if defined(MANFILTER) 8518314SpeterFILTEXTENSION= .filt 8618314Speter.else 8718314SpeterFILTEXTENSION= 8818314Speter.endif 8918314Speter 901844SwollmanZEXT= 911638Srgrimes 9217511Speter.if defined(MANFILTER) 9374806Sru.if defined(MAN) && !empty(MAN) 9474806SruCLEANFILES+= ${MAN:T:S/$/${FILTEXTENSION}/g} 9574806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}${FILTEXTENSION}/g} 96167486Sru.for __page in ${MAN} 97167486Sru.for __target in ${__page:T:S/$/${FILTEXTENSION}/g} 98167486Sru_manpages: ${__target} 99167486Sru${__target}: ${__page} 10017831Speter ${MANFILTER} < ${.ALLSRC} > ${.TARGET} 10117511Speter.endfor 10227673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 103167486Sru.for __target in ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} 104167486Sru_manpages: ${__target} 105167486Sru${__target}: ${__page} 10627659Spst ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} > ${.TARGET} 10717511Speter.endfor 10817511Speter.endif 10917511Speter.endfor 11017511Speter.endif 11127659Spst.else 11274806Sru.if defined(MAN) && !empty(MAN) 11374806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}/g} 11427673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 115167486Sru.for __page in ${MAN} 116167486Sru.for __target in ${__page:T:S/$/${CATEXT}/g} 117167486Sru_manpages: ${__target} 118167486Sru${__target}: ${__page} 11927659Spst ${MROFF_CMD} ${.ALLSRC} > ${.TARGET} 12027659Spst.endfor 12127659Spst.endfor 12296524Sru.else 12396524Sru_manpages: ${MAN} 12427659Spst.endif 12527659Spst.endif 12627659Spst.endif 12717511Speter 12811468Sbde.else 1291844Swollman 13023546SwoschZEXT= ${MCOMPRESS_EXT} 13111136Swollman 13274806Sru.if defined(MAN) && !empty(MAN) 13374806SruCLEANFILES+= ${MAN:T:S/$/${MCOMPRESS_EXT}/g} 13474806SruCLEANFILES+= ${MAN:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} 135167486Sru.for __page in ${MAN} 136167486Sru.for __target in ${__page:T:S/$/${MCOMPRESS_EXT}/} 137167486Sru_manpages: ${__target} 138167486Sru${__target}: ${__page} 13917831Speter.if defined(MANFILTER) 14023546Swosch ${MANFILTER} < ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} 14117511Speter.else 14223546Swosch ${MCOMPRESS_CMD} ${.ALLSRC} > ${.TARGET} 14317511Speter.endif 14411136Swollman.endfor 14527673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 146167486Sru.for __target in ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/} 147167486Sru_manpages: ${__target} 148167486Sru${__target}: ${__page} 14927659Spst.if defined(MANFILTER) 15027659Spst ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} | ${MCOMPRESS_CMD} > ${.TARGET} 15127659Spst.else 15227659Spst ${MROFF_CMD} ${.ALLSRC} | ${MCOMPRESS_CMD} > ${.TARGET} 15327659Spst.endif 15411136Swollman.endfor 15511468Sbde.endif 15611136Swollman.endfor 15727659Spst.endif 15811136Swollman 1591638Srgrimes.endif 1601844Swollman 16196164Srumaninstall: _maninstall 16296164Sru_maninstall: 16374806Sru.if defined(MAN) && !empty(MAN) 16496164Sru_maninstall: ${MAN} 165139103Sru.if defined(NO_MANCOMPRESS) 16618314Speter.if defined(MANFILTER) 167167486Sru.for __page in ${MAN} 168167486Sru ${MINSTALL} ${__page:T:S/$/${FILTEXTENSION}/g} \ 169167486Sru ${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR}/${__page} 17027673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 171167486Sru ${MINSTALL} ${__page:T:S/$/${CATEXT}${FILTEXTENSION}/g} \ 172167486Sru ${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page} 17327659Spst.endif 17418314Speter.endfor 17518314Speter.else 176119838Sru @set ${.ALLSRC:C/\.([^.]*)$/.\1 \1/}; \ 17774806Sru while : ; do \ 17874806Sru case $$# in \ 17974806Sru 0) break;; \ 18074806Sru 1) echo "warn: missing extension: $$1"; break;; \ 18174806Sru esac; \ 18274806Sru page=$$1; shift; sect=$$1; shift; \ 18374806Sru d=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \ 18474806Sru ${ECHO} ${MINSTALL} $${page} $${d}; \ 18574806Sru ${MINSTALL} $${page} $${d}; \ 18674806Sru done 18727673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 188167486Sru.for __page in ${MAN} 189167486Sru ${MINSTALL} ${__page:T:S/$/${CATEXT}/} \ 190167486Sru ${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T} 19127659Spst.endfor 19218314Speter.endif 19327659Spst.endif 1941844Swollman.else 195167486Sru.for __page in ${MAN} 196167486Sru ${MINSTALL} ${__page:T:S/$/${MCOMPRESS_EXT}/g} \ 197167486Sru ${DESTDIR}${MANDIR}${__page:E}${MANSUBDIR} 19827673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 199167486Sru ${MINSTALL} ${__page:T:S/$/${CATEXT}${MCOMPRESS_EXT}/g} \ 200167486Sru ${DESTDIR}${CATDIR}${__page:E}${MANSUBDIR}/${__page:T:S/$/${MCOMPRESS_EXT}/} 20174806Sru.endif 20227659Spst.endfor 2031844Swollman.endif 2041844Swollman.endif 20511468Sbde 206139109Sru.if !defined(NO_MLINKS) && defined(MLINKS) && !empty(MLINKS) 207119838Sru @set ${MLINKS:C/\.([^.]*)$/.\1 \1/}; \ 20815902Swosch while : ; do \ 20915902Swosch case $$# in \ 21015902Swosch 0) break;; \ 21115902Swosch [123]) echo "warn: empty MLINK: $$1 $$2 $$3"; break;; \ 21215902Swosch esac; \ 21315902Swosch name=$$1; shift; sect=$$1; shift; \ 21415902Swosch l=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \ 21515902Swosch name=$$1; shift; sect=$$1; shift; \ 21615902Swosch t=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \ 2172353Sbde ${ECHO} $${t}${ZEXT} -\> $${l}${ZEXT}; \ 21823546Swosch rm -f $${t} $${t}${MCOMPRESS_EXT}; \ 219245752Sbrooks ${INSTALL_LINK} $${l}${ZEXT} $${t}${ZEXT}; \ 22015902Swosch done 22127673Sbde.if defined(MANBUILDCAT) && !empty(MANBUILDCAT) 222119838Sru @set ${MLINKS:C/\.([^.]*)$/.\1 \1/}; \ 22327659Spst while : ; do \ 22427659Spst case $$# in \ 22527659Spst 0) break;; \ 22627659Spst [123]) echo "warn: empty MLINK: $$1 $$2 $$3"; break;; \ 22727659Spst esac; \ 22827659Spst name=$$1; shift; sect=$$1; shift; \ 22927659Spst l=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \ 23027659Spst name=$$1; shift; sect=$$1; shift; \ 23127659Spst t=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \ 23227659Spst ${ECHO} $${t}${ZEXT} -\> $${l}${ZEXT}; \ 23327659Spst rm -f $${t} $${t}${MCOMPRESS_EXT}; \ 234245752Sbrooks ${INSTALL_LINK} $${l}${ZEXT} $${t}${ZEXT}; \ 23527659Spst done 2361638Srgrimes.endif 23727659Spst.endif 23883075Sru 23983075Srumanlint: 24083075Sru.if defined(MAN) && !empty(MAN) 241167486Sru.for __page in ${MAN} 242167486Srumanlint: ${__page}lint 243167486Sru${__page}lint: ${__page} 24483075Sru.if defined(MANFILTER) 24583080Sru ${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} -ww -z 24683075Sru.else 24783080Sru ${MROFF_CMD} -ww -z ${.ALLSRC} 24883075Sru.endif 24983075Sru.endfor 25083075Sru.endif 251