bsd.man.mk revision 1.52 1 # $NetBSD: bsd.man.mk,v 1.52 2000/06/06 05:40:47 mycroft 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 catpages:: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@}
79 . if !defined(UPDATE)
80 .PHONY: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@}
81 . endif
82 .PRECIOUS: ${CATPAGES:@P@${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}@}
83
84 . for P in ${CATPAGES}
85 . if !defined(BUILD) && !make(all) && !make(${P})
86 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
87 . endif
88 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: ${P} __installpage
89 . endfor
90 .else
91 catpages::
92 .endif
93
94 # Rules for source page installation
95 .if defined(MANPAGES) && !empty(MANPAGES)
96 manpages:: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@}
97 . if !defined(UPDATE)
98 .PHONY: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@}
99 . endif
100 .PRECIOUS: ${MANPAGES:@P@${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}@}
101
102 . for P in ${MANPAGES}
103 ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}: ${P} __installpage
104 . endfor
105 .else
106 manpages::
107 .endif
108
109 .if ${MKCATPAGES} != "no"
110 catlinks: catpages
111 .if defined(MLINKS) && !empty(MLINKS)
112 @set ${MLINKS}; \
113 while test $$# -ge 2; do \
114 name=$$1; \
115 shift; \
116 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
117 l=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
118 name=$$1; \
119 shift; \
120 dir=${DESTDIR}${MANDIR}/cat$${name##*.}; \
121 t=$${dir}${MANSUBDIR}/$${name%.*}.0${MCOMPRESSSUFFIX}; \
122 if [ -z "${UPDATE}" -o ! -f $$t ]; then \
123 echo $$t -\> $$l; \
124 ln -f $$l $$t; \
125 fi; \
126 done
127 .endif
128 .else
129 catlinks:
130 .endif
131
132 manlinks: manpages
133 .if defined(MLINKS) && !empty(MLINKS)
134 @set ${MLINKS}; \
135 while test $$# -ge 2; do \
136 name=$$1; \
137 shift; \
138 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
139 l=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
140 name=$$1; \
141 shift; \
142 dir=${DESTDIR}${MANDIR}/man$${name##*.}; \
143 t=$${dir}${MANSUBDIR}/$${name}${MCOMPRESSSUFFIX}; \
144 if [ -z "${UPDATE}" -o ! -f $$t ]; then \
145 echo $$t -\> $$l; \
146 ln -f $$l $$t; \
147 fi; \
148 done
149 .endif
150
151 .if defined(CATPAGES)
152 .if ${MKCATPAGES} != "no" && ${MKMAN} != "no"
153 realall: ${CATPAGES}
154 .else
155 realall:
156 .endif
157
158 cleanman:
159 rm -f ${CATPAGES}
160 .else
161 cleanman:
162 .endif
163
164 # Make sure all of the standard targets are defined, even if they do nothing.
165 clean depend includes lint regress tags:
166