1 # $FreeBSD: src/share/mk/bsd.man.mk,v 1.31.2.11 2002/12/19 13:48:33 ru Exp $
3 # The include file <bsd.man.mk> handles installing manual pages and
9 # DESTDIR Change the tree where the man pages gets installed. [not set]
11 # MANDIR Base path for manual installation. [${SHAREDIR}/man/man]
13 # MANOWN Manual owner. [${SHAREOWN}]
15 # MANGRP Manual group. [${SHAREGRP}]
17 # MANMODE Manual mode. [${NOBINMODE}]
19 # MANSUBDIR Subdirectory under the manual page section, i.e. "/i386"
20 # or "/tahoe" for machine specific manual pages.
22 # MAN The manual pages to be installed. For sections see
23 # variable ${SECTIONS}
25 # MCOMPRESS_CMD Program to compress man pages. Output is to
26 # stdout. [${COMPRESS_CMD}]
28 # MLINKS List of manual page links (using a suffix). The
29 # linked-to file must come first, the linked file
30 # second, and there may be multiple pairs. The files
33 # NOMANCOMPRESS If you do not want unformatted manual pages to be
34 # compressed when they are installed. [not set]
36 # NOMLINKS If you do not want install manual page links. [not set]
38 # MANFILTER command to pipe the raw man page through before compressing
39 # or installing. Can be used to do sed substitution.
41 # MANBUILDCAT create preformatted manual pages in addition to normal
44 # MROFF_CMD command and flags to create preformatted pages
49 # Install the manual pages and their links.
52 .if
!target
(__
<bsd.init.mk
>__
)
53 .error bsd.man.mk cannot be included directly.
56 _MANINSTALLFLAGS
:= ${MANINSTALLFLAGS}
58 MINSTALL?
= ${INSTALL} -o
${MANOWN} -g
${MANGRP} -m
${MANMODE} \
61 CATDIR
= ${MANDIR
:H
:S
/$/\
/cat
/}
63 MROFF_CMD?
= groff
-Tascii
-mtty-char
-man
-t
65 MCOMPRESS_CMD?
= ${COMPRESS_CMD}
66 MCOMPRESS_EXT?
= ${COMPRESS_EXT}
68 SECTIONS
= 1 2 3 4 5 6 7 8 9
69 .SUFFIXES
: ${SECTIONS
:S
/^
/.
/g
}
71 # Backwards compatibility.
73 .for sect in
${SECTIONS}
74 .if defined
(MAN
${sect}) && !empty
(MAN
${sect})
83 .if defined
(NOMANCOMPRESS
)
85 # Make special arrangements to filter to a temporary file at build time
87 .if defined
(MANFILTER
)
95 .if defined
(MANFILTER
)
96 .if defined
(MAN
) && !empty
(MAN
)
97 CLEANFILES
+= ${MAN
:T
:S
/$/${FILTEXTENSION}/g
}
98 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
}
100 .for target in
${page
:T
:S
/$/${FILTEXTENSION}/g
}
103 ${MANFILTER} < ${.ALLSRC
} > ${.TARGET
}
105 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
106 .for target in
${page
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
}
109 ${MANFILTER} < ${.ALLSRC
} |
${MROFF_CMD} > ${.TARGET
}
115 .if defined
(MAN
) && !empty
(MAN
)
116 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}/g
}
117 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
119 .for target in
${page
:T
:S
/$/${CATEXT}/g
}
122 ${MROFF_CMD} ${.ALLSRC
} > ${.TARGET
}
133 ZEXT
= ${MCOMPRESS_EXT}
135 .if defined
(MAN
) && !empty
(MAN
)
136 CLEANFILES
+= ${MAN
:T
:S
/$/${MCOMPRESS_EXT}/g
}
137 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/g
}
139 .for target in
${page
:T
:S
/$/${MCOMPRESS_EXT}/}
142 .if defined
(MANFILTER
)
143 ${MANFILTER} < ${.ALLSRC
} |
${MCOMPRESS_CMD} > ${.TARGET
}
145 ${MCOMPRESS_CMD} ${.ALLSRC
} > ${.TARGET
}
148 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
149 .for target in
${page
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/}
152 .if defined
(MANFILTER
)
153 ${MANFILTER} < ${.ALLSRC
} |
${MROFF_CMD} |
${MCOMPRESS_CMD} > ${.TARGET
}
155 ${MROFF_CMD} ${.ALLSRC
} |
${MCOMPRESS_CMD} > ${.TARGET
}
164 maninstall
: _maninstall
166 .if defined
(MAN
) && !empty
(MAN
)
168 .if defined
(NOMANCOMPRESS
)
169 .if defined
(MANFILTER
)
171 ${MINSTALL} ${page
:T
:S
/$/${FILTEXTENSION}/g
} \
172 ${DESTDIR}${MANDIR}${page
:E
}${MANSUBDIR}/${page}
173 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
174 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
} \
175 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page}
179 @set
`echo ${.ALLSRC} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \
183 1) echo
"warn: missing extension: $$1"; break
;; \
185 page
=$$1; shift
; sect
=$$1; shift
; \
186 d
=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \
187 ${ECHO} ${MINSTALL} $${page} $${d}; \
188 ${MINSTALL} $${page} $${d}; \
190 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
192 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}/} \
193 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page
:T
}
199 ${MINSTALL} ${page
:T
:S
/$/${MCOMPRESS_EXT}/g
} \
200 ${DESTDIR}${MANDIR}${page
:E
}${MANSUBDIR}
201 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
202 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/g
} \
203 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page
:T
:S
/$/${MCOMPRESS_EXT}/}
209 .if
!defined
(NOMLINKS
) && defined
(MLINKS
) && !empty
(MLINKS
)
210 @set
`echo ${MLINKS} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \
214 [123]) echo
"warn: empty MLINK: $$1 $$2 $$3"; break
;; \
216 name
=$$1; shift
; sect
=$$1; shift
; \
217 l
=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \
218 name
=$$1; shift
; sect
=$$1; shift
; \
219 t
=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}/$$name; \
220 ${ECHO} $${t}${ZEXT} -\
> $${l}${ZEXT}; \
221 rm -f
$${t} $${t}${MCOMPRESS_EXT}; \
222 ${LN} $${l}${ZEXT} $${t}${ZEXT}; \
224 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
225 @set
`echo ${MLINKS} " " | sed 's/\.\([^.]*\) /.\1 \1 /g'`; \
229 [123]) echo
"warn: empty MLINK: $$1 $$2 $$3"; break
;; \
231 name
=$$1; shift
; sect
=$$1; shift
; \
232 l
=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \
233 name
=$$1; shift
; sect
=$$1; shift
; \
234 t
=${DESTDIR}${CATDIR}$${sect}${MANSUBDIR}/$$name; \
235 ${ECHO} $${t}${ZEXT} -\
> $${l}${ZEXT}; \
236 rm -f
$${t} $${t}${MCOMPRESS_EXT}; \
237 ${LN} $${l}${ZEXT} $${t}${ZEXT}; \
244 .if defined
(MAN
) && !empty
(MAN
)
249 .if defined
(MANFILTER
)
250 @
${MANFILTER} < ${.ALLSRC
} |
${MROFF_CMD} -ww
-z
251 @
-${MANFILTER} < ${.ALLSRC
} | mandoc
-Tlint
253 @
${MROFF_CMD} -ww
-z
${.ALLSRC
}
254 @
-mandoc
-Tlint
${.ALLSRC
}
256 ${page}.out.groff
: ${page}
257 @
-nroff
-man
-t
${.ALLSRC
} 2>&1 > ${.TARGET
}
258 ${page}.out.mandoc
: ${page}
259 @
-mandoc
-Werror
${.ALLSRC
} 2>&1 > ${.TARGET
}
260 ${page}diff
: ${page}.out.groff
${page}.out.mandoc
261 @
-diff
-au
${.ALLSRC
}