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