bsd.man.mk revision 1.50 1 # $NetBSD: bsd.man.mk,v 1.50 2000/01/22 19:31:02 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 .endif
51
52 MINSTALL= ${INSTALL} ${RENAME} ${PRESERVE} ${COPY} ${INSTPRIV} \
53 -o ${MANOWN} -g ${MANGRP} -m ${MANMODE}
54
55 .if defined(MANZ)
56 # chown and chmod are done afterward automatically
57 MCOMPRESS= gzip -cf
58 MCOMPRESSSUFFIX= .gz
59 .endif
60
61 catinstall: catlinks
62 maninstall: manlinks
63
64 __installpage: .USE
65 .if defined(MCOMPRESS) && !empty(MCOMPRESS)
66 @rm -f ${.TARGET}
67 ${MCOMPRESS} ${.ALLSRC} > ${.TARGET}
68 @chown ${MANOWN}:${MANGRP} ${.TARGET}
69 @chmod ${MANMODE} ${.TARGET}
70 .else
71 ${MINSTALL} ${.ALLSRC} ${.TARGET}
72 .endif
73
74
75 # Rules for cat'ed man page installation
76 .if defined(CATPAGES) && !empty(CATPAGES) && ${MKCATPAGES} != "no"
77 . for P in ${CATPAGES}
78 catpages:: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
79
80 . if !defined(UPDATE)
81 .PHONY: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
82 . endif
83 . if !defined(BUILD) && !make(all) && !make(${P})
84 ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}: .MADE
85 . endif
86
87 .PRECIOUS: ${DESTDIR}${MANDIR}/${P:T:E}${MANSUBDIR}/${P:T:R}.0${MCOMPRESSSUFFIX}
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 . for P in ${MANPAGES}
97 manpages:: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
98 . if !defined(UPDATE)
99 .PHONY: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
100 . endif
101
102 .PRECIOUS: ${DESTDIR}${MANDIR}/man${P:T:E}${MANSUBDIR}/${P}${MCOMPRESSSUFFIX}
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