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