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