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 # MANDOC_CMD command and flags to create preformatted pages
45 # MROFF_CMD groff command for manlint and mandiff
50 # Install the manual pages and their links.
53 .if
!target
(__
<bsd.init.mk
>__
)
54 .error bsd.man.mk cannot be included directly.
57 _MANINSTALLFLAGS
:= ${MANINSTALLFLAGS}
59 MINSTALL?
= ${INSTALL} -o
${MANOWN} -g
${MANGRP} -m
${MANMODE} \
62 CATDIR
= ${MANDIR
:H
:S
/$/\
/cat
/}
64 MANDOC_CMD?
= mandoc
-Tascii
65 MROFF_CMD?
= groff
-Tascii
-mtty-char
-man
-t
67 MCOMPRESS_CMD?
= ${COMPRESS_CMD}
68 MCOMPRESS_EXT?
= ${COMPRESS_EXT}
70 SECTIONS
= 1 2 3 4 5 6 7 8 9
71 .SUFFIXES
: ${SECTIONS
:S
/^
/.
/g
}
73 # Backwards compatibility.
75 .for sect in
${SECTIONS}
76 .if defined
(MAN
${sect}) && !empty
(MAN
${sect})
85 .if defined
(NOMANCOMPRESS
)
87 # Make special arrangements to filter to a temporary file at build time
89 .if defined
(MANFILTER
)
97 .if defined
(MANFILTER
)
98 .if defined
(MAN
) && !empty
(MAN
)
99 CLEANFILES
+= ${MAN
:T
:S
/$/${FILTEXTENSION}/g
}
100 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
}
102 .for target in
${page
:T
:S
/$/${FILTEXTENSION}/g
}
105 ${MANFILTER} < ${.ALLSRC
} > ${.TARGET
}
107 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
108 .for target in
${page
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
}
111 ${MANFILTER} < ${.ALLSRC
} |
${MANDOC_CMD} > ${.TARGET
}
117 .if defined
(MAN
) && !empty
(MAN
)
118 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}/g
}
119 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
121 .for target in
${page
:T
:S
/$/${CATEXT}/g
}
124 ${MANDOC_CMD} ${.ALLSRC
} > ${.TARGET
}
135 ZEXT
= ${MCOMPRESS_EXT}
137 .if defined
(MAN
) && !empty
(MAN
)
138 CLEANFILES
+= ${MAN
:T
:S
/$/${MCOMPRESS_EXT}/g
}
139 CLEANFILES
+= ${MAN
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/g
}
141 .for target in
${page
:T
:S
/$/${MCOMPRESS_EXT}/}
144 .if defined
(MANFILTER
)
145 ${MANFILTER} < ${.ALLSRC
} |
${MCOMPRESS_CMD} > ${.TARGET
}
147 ${MCOMPRESS_CMD} ${.ALLSRC
} > ${.TARGET
}
150 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
151 .for target in
${page
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/}
154 .if defined
(MANFILTER
)
155 ${MANFILTER} < ${.ALLSRC
} |
${MANDOC_CMD} |
${MCOMPRESS_CMD} > ${.TARGET
}
157 ${MANDOC_CMD} ${.ALLSRC
} |
${MCOMPRESS_CMD} > ${.TARGET
}
166 .if
!defined
(NOMLINKS
) && defined
(MLINKS
) && !empty
(MLINKS
)
167 .for _oname _osect _dname _dsect in
${MLINKS
:C
/\.
([^.
]*)$/.\
1 \
1/}
168 _MANLINKS
+= ${MANDIR}${_osect}${MANSUBDIR}/${_oname} \
169 ${MANDIR}${_dsect}${MANSUBDIR}/${_dname}
170 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
171 _MANLINKS
+= ${CATDIR}${_osect}${MANSUBDIR}/${_oname} \
172 ${CATDIR}${_dsect}${MANSUBDIR}/${_dname}
177 maninstall
: _maninstall
179 .if defined
(MAN
) && !empty
(MAN
)
181 .if defined
(NOMANCOMPRESS
)
182 .if defined
(MANFILTER
)
184 ${MINSTALL} ${page
:T
:S
/$/${FILTEXTENSION}/g
} \
185 ${DESTDIR}${MANDIR}${page
:E
}${MANSUBDIR}/${page}
186 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
187 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}${FILTEXTENSION}/g
} \
188 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page}
191 .
else # !defined(MANFILTER)
192 @set
${.ALLSRC
:C
/\.
([^.
]*)$/.\
1 \
1/}; \
196 1) echo
"warn: missing extension: $$1"; break
;; \
198 page
=$$1; shift
; sect
=$$1; shift
; \
199 d
=${DESTDIR}${MANDIR}$${sect}${MANSUBDIR}; \
200 ${ECHO} ${MINSTALL} $${page} $${d}; \
201 ${MINSTALL} $${page} $${d}; \
203 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
205 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}/} \
206 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page
:T
}
209 .
endif # defined(MANFILTER)
210 .
else # !defined(NOMANCOMPRESS)
212 ${MINSTALL} ${page
:T
:S
/$/${MCOMPRESS_EXT}/g
} \
213 ${DESTDIR}${MANDIR}${page
:E
}${MANSUBDIR}
214 .if defined
(MANBUILDCAT
) && !empty
(MANBUILDCAT
)
215 ${MINSTALL} ${page
:T
:S
/$/${CATEXT}${MCOMPRESS_EXT}/g
} \
216 ${DESTDIR}${CATDIR}${page
:E
}${MANSUBDIR}/${page
:T
:S
/$/${MCOMPRESS_EXT}/}
219 .
endif # defined(NOMANCOMPRESS)
221 .for l t in
${_MANLINKS}
222 @
rm -f
${DESTDIR}${t} ${DESTDIR}${t}${MCOMPRESS_EXT}
223 ${LN} ${DESTDIR}${l}${ZEXT} ${DESTDIR}${t}${ZEXT}
228 .if defined
(MAN
) && !empty
(MAN
)
231 #mandiff: ${page}diff
233 .if defined
(MANFILTER
)
234 # @${MANFILTER} < ${.ALLSRC} | ${MROFF_CMD} -ww -z
235 @
-${MANFILTER} < ${.ALLSRC
} |
${MANDOC_CMD} -Tlint
237 # @${MROFF_CMD} -ww -z ${.ALLSRC}
238 @
-${MANDOC_CMD} -Tlint
${.ALLSRC
}
240 #${page}.out.groff: ${page}
241 # @-${MROFF_CMD} ${.ALLSRC} 2>&1 > ${.TARGET}
242 #${page}.out.mandoc: ${page}
243 # @-${MANDOC_CMD} -Werror ${.ALLSRC} 2>&1 > ${.TARGET}
244 #${page}diff: ${page}.out.groff ${page}.out.mandoc
245 # @-diff -au ${.ALLSRC}