bsd.man.mk revision 1.33 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
12 realinstall: ${MANINSTALL}
13 cleandir: cleanman
14
15 MANTARGET?= cat
16 NROFF?= nroff
17 TBL?= 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)
34 MANPAGES= ${MAN}
35 CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
36 .endif
37
38 MINSTALL= ${INSTALL} ${COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
39
40 .if defined(MANZ)
41 # chown and chmod are done afterward automatically
42 MCOMPRESS= gzip -cf
43 MCOMPRESSSUFFIX= .gz
44 .endif
45
46 catinstall: catlinks
47 maninstall: 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}
63 catpages:: ${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
76 catpages::
77 .endif
78
79 # Rules for source page installation
80 .if defined(MANPAGES) && !empty(MANPAGES)
81 . for P in ${MANPAGES}
82 manpages:: ${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
91 manpages::
92 .endif
93
94 catlinks: 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
114 manlinks: 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)
135 all: ${CATPAGES}
136
137 cleanman:
138 rm -f ${CATPAGES}
139 .else
140 cleanman:
141 .endif
142