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