bsd.man.mk revision 1.51 1 # $NetBSD: bsd.man.mk,v 1.51 2000/02/19 22:54:08 erh Exp $
2 # @(#)bsd.man.mk 8.1 (Berkeley) 6/8/93
3
4 .if !target(__initialized__)
5 __initialized__:
6 .if exists(${.CURDIR}/../Makefile.inc)
7 .include "${.CURDIR}/../Makefile.inc"
8 .endif
9 .include <bsd.own.mk>
10 .include <bsd.obj.mk>
11 .include <bsd.depall.mk>
12 .MAIN: all
13 .endif
14
15 .PHONY: catinstall maninstall catpages manpages catlinks manlinks cleanman
16 .if ${MKMAN} != "no"
17 realinstall: ${MANINSTALL}
18 .endif
19 cleandir distclean: cleanman
20
21 TMACDIR?= ${DESTDIR}/usr/share/tmac
22 CATDEPS?= ${TMACDIR}/tmac.andoc \
23 ${TMACDIR}/tmac.doc \
24 ${TMACDIR}/tmac.doc-ditroff \
25 ${TMACDIR}/tmac.doc-common \
26 ${TMACDIR}/tmac.doc-nroff \
27 ${TMACDIR}/tmac.doc-syms
28 MANTARGET?= cat
29 NROFF?= nroff -Tascii
30 TBL?= tbl
31
32 .SUFFIXES: .1 .2 .3 .4 .5 .6 .7 .8 .9 \
33 .cat1 .cat2 .cat3 .cat4 .cat5 .cat6 .cat7 .cat8 .cat9
34
35 .9.cat9 .8.cat8 .7.cat7 .6.cat6 .5.cat5 .4.cat4 .3.cat3 .2.cat2 .1.cat1: \
36 ${CATDEPS}
37 .if !defined(USETBL)
38 @echo "${NROFF} -mandoc ${.IMPSRC} > ${.TARGET}"
39 @${NROFF} -mandoc ${.IMPSRC} > ${.TARGET} || \
40 (rm -f ${.TARGET}; false)
41 .else
42 @echo "${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET}"
43 @${TBL} ${.IMPSRC} | ${NROFF} -mandoc > ${.TARGET} || \
44 (rm -f ${.TARGET}; false)
45 .endif
46
47 .if defined(MAN) && !empty(MAN)
48 MANPAGES= ${MAN}
49 CATPAGES= ${MANPAGES:C/(.*).([1-9])/\1.cat\2/}
50 .NOPATH: ${CATPAGES}
51 .endif
52
53 MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \
54 -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
55
56 .if defined(MANZ)
57 # chown and chmod are done afterward automatically
58 MCOMPRESS= gzip -cf
59 MCOMPRESSSUFFIX= .gz
60 .endif
61
62 catinstall: catlinks
63 maninstall: manlinks
64
65 __installpage: .USE
66 .if defined(MCOMPRESS) && !empty(MCOMPRESS)
67 @rm -f ${.TARGET}
68 ${MCOMPRESS} ${.ALLSRC} > ${.TARGET}
69 @chown ${MANOWN}:${MANGRP} ${.TARGET}
70 @chmod ${MANMODE} ${.TARGET}
71 .else
72 ${MINSTALL} ${.ALLSRC} ${.TARGET}
73 .endif
74
75
76 # Rules for cat'ed man page installation
77 .if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no"
78 . for P in ${CATPAGES}
79 catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
80
81 . if !defined(UPDATE)
82 .PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
83 . endif
84 . if !defined(BUILD) && !make(all) && !make(${P})
85 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
86 . endif
87
88 .PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
89 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage
90 . endfor
91 .else
92 catpages::
93 .endif
94
95 # Rules for source page installation
96 .if defined(MANPAGES) && !empty(MANPAGES)
97 . for P in ${MANPAGES}
98 manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
99 . if !defined(UPDATE)
100 .PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
101 . endif
102
103 .PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
104 ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage
105 . endfor
106 .else
107 manpages::
108 .endif
109
110 .if ${MKCATPAGES} != "no"
111 catlinks: catpages
112 .if defined(MLINKS) && !empty(MLINKS)
113 @set ${MLINKS}; \
114 while test $$# -ge 2; do \
115 name=$$1; \
116 shift; \
117 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
118 l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
119 name=$$1; \
120 shift; \
121 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
122 t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
123 if [ -z "${UPDATE}" -o ! -f $$t ]; then \
124 echo $$t -\> $$l; \
125 ln -f $$l $$t; \
126 fi; \
127 done
128 .endif
129 .else
130 catlinks:
131 .endif
132
133 manlinks: manpages
134 .if defined(MLINKS) && !empty(MLINKS)
135 @set ${MLINKS}; \
136 while test $$# -ge 2; do \
137 name=$$1; \
138 shift; \
139 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
140 l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
141 name=$$1; \
142 shift; \
143 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
144 t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
145 if [ -z "${UPDATE}" -o ! -f $$t ]; then \
146 echo $$t -\> $$l; \
147 ln -f $$l $$t; \
148 fi; \
149 done
150 .endif
151
152 .if defined(CATPAGES)
153 .if ${MKCATPAGES} != "no" && ${MKMAN} != "no"
154 realall: ${CATPAGES}
155 .else
156 realall:
157 .endif
158
159 cleanman:
160 rm -f ${CATPAGES}
161 .else
162 cleanman:
163 .endif
164
165 # Make sure all of the standard targets are defined, even if they do nothing.
166 clean depend includes lint regress tags:
167