1# $NetBSD: bsd.man.mk,v 1.33 1997/06/30 19:26:21 phil Exp $ 2# @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93 3 4.if !target(.MAIN) 5.if exists(${.CURDIR}/../Makefile.inc) 6.include "${.CURDIR}/../Makefile.inc" 7.endif 8 9.MAIN: all 10.endif 11.PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman 12realinstall: ${MANINSTALL} 13cleandir: cleanman 14 15MANTARGET?= cat 16NROFF?= nroff 17TBL?= tbl 18 19.SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \ 20 .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9 21 22.9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: 23.if !defined(USETBL) 24 @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}" 25 @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \ 26 (rm -f ${.TARGET}; false) 27.else 28 @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}" 29 @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \ 30 (rm -f ${.TARGET}; false) 31.endif 32 33.if defined(MAN) && !empty(MAN) 34MANPAGES= ${MAN} 35CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/} 36.endif 37 38MINSTALL= ${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} 39 40.if defined(MANZ) 41# chown and chmod are done afterward automatically 42MCOMPRESS= gzip -cf 43MCOMPRESSSUFFIX= .gz 44.endif 45 46catinstall: catlinks 47maninstall: manlinks 48 49__installpage: .USE 50.if defined(MCOMPRESS) && !empty(MCOMPRESS) 51 @rm -f ${.TARGET} 52 ${MCOMPRESS} ${.ALLSRC} > ${.TARGET} 53 @chown ${MANOWN}:${MANGRP} ${.TARGET} 54 @chmod ${MANMODE} ${.TARGET} 55.else 56 ${MINSTALL} ${.ALLSRC} ${.TARGET} 57.endif 58 59 60# Rules for cat'ed man page installation 61.if defined(CATPAGES) && !empty(CATPAGES) 62. for P in ${CATPAGES} 63catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} 64 65. if !defined(UPDATE) 66.PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} 67. endif 68. if !defined(BUILD) 69${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE 70. endif 71 72.PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX} 73${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage 74. endfor 75.else 76catpages:: 77.endif 78 79# Rules for source page installation 80.if defined(MANPAGES) && !empty(MANPAGES) 81. for P in ${MANPAGES} 82manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} 83. if !defined(UPDATE) 84.PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} 85. endif 86 87.PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX} 88${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage 89. endfor 90.else 91manpages:: 92.endif 93 94catlinks: catpages 95.if defined(MLINKS) && !empty(MLINKS) 96 @set ${MLINKS}; \ 97 while test $$# -ge 2; do \ 98 name=$$1; \ 99 shift; \ 100 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ 101 l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ 102 name=$$1; \ 103 shift; \ 104 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \ 105 t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \ 106 if [ ! -f $$t -o -z "${UPDATE}" ]; then \ 107 echo $$t -\> $$l; \ 108 rm -f $$t; \ 109 ln $$l $$t; \ 110 fi; \ 111 done 112.endif 113 114manlinks: manpages 115.if defined(MLINKS) && !empty(MLINKS) 116 @set ${MLINKS}; \ 117 while test $$# -ge 2; do \ 118 name=$$1; \ 119 shift; \ 120 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ 121 l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ 122 name=$$1; \ 123 shift; \ 124 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \ 125 t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \ 126 if [ ! -f $$t -o -z "${UPDATE}" ]; then \ 127 echo $$t -\> $$l; \ 128 rm -f $$t; \ 129 ln $$l $$t; \ 130 fi; \ 131 done 132.endif 133 134.if defined(CATPAGES) 135all: ${CATPAGES} 136 137cleanman: 138 rm -f ${CATPAGES} 139.else 140cleanman: 141.endif 142