1#         from: @(#)Makefile  5.9 (Berkeley) 7/1/91
2#         $NetBSD: Makefile,v 1.19 2024/04/05 23:05:53 christos Exp $
3
4#
5# Note: Needs ps2pdf to convert .ps to .pdf
6#
7
8.include <bsd.own.mk>
9
10.if ${MKSHARE} != "no" && ${MKMAKEMANDB} == "no"
11FILES=              makewhatis.sed
12FILESDIR= /usr/share/man
13.endif
14
15SECTIONS?=          1 2 3 4 5 6 7 8 9
16
17MANSRCDIRS=         "${.CURDIR}/../../.." ../../..
18
19# Takes out some fluff from the PostScript files created by
20# grops which does some VM saving/restoring that bloats the
21# PDF file pdf2ps generates.              By uwe@NetBSD.org.
22OPTIMIZE_PDF?=      \
23                              -e '/^\/level0 0 def/d'                 \
24                              -e '/^\/level0 save/d'                  \
25                              -e '/^level0 restore/d'
26
27MAN0SRCS=
28.if ${MKMAN} != "no"
29MAN0SRCS+=          all.files
30MAN0SRCS+=          ${SECTIONS:@S@man${S}pages.files@}
31MAN0SRCS+=          ${SECTIONS:@S@man${S}pages.ps @}
32MAN0SRCS+=          ${SECTIONS:@S@man${S}pages.pdf@}
33.endif
34
35CLEANFILES+=        ${MAN0SRCS}
36CLEANFILES+=        *.tmp
37CLEANFILES+=        toc? tocx?
38
39all: ${MAN0SRCS}
40
41all.files:
42          ${_MKTARGET_CREATE}
43          find ${MANSRCDIRS} -name '*.[1-9]' -print         \
44          | xargs ${TOOL_MKMAGIC}                                     \
45          | ${TOOL_GREP} troff                                        \
46          | ${TOOL_SED} 's/:[           ]*.*$$//'           \
47          | ${TOOL_GREP} -F -v -f "${.CURDIR}/noman"        \
48          | ${TOOL_GREP} -v '#'                                       \
49          | ${TOOL_GREP} -v '/obj\.'                        \
50          | ${TOOL_GREP} -v '/destdir\.'                              \
51          | ${TOOL_GREP} -v '/tooldir\.'                              \
52          > ${.TARGET}.tmp                                  \
53          && ${MV} ${.TARGET}.tmp ${.TARGET} ;              \
54          rm -f ${.TARGET}.tmp
55
56
57.for _S in ${SECTIONS}
58
59man${_S}pages.files: all.files
60          ${_MKTARGET_CREATE}
61          cat ${.ALLSRC}                                              \
62          | ${TOOL_GREP} "${_S}\$$"                         \
63          | ${TOOL_SED} 's,\(.*/\)\([^/]*\),\2 \1\2,'       \
64          | sort                                                      \
65          | ${TOOL_SED} 's/^.* //'                          \
66          > ${.TARGET}.tmp                                  \
67          && ${MV} ${.TARGET}.tmp ${.TARGET} ;              \
68          rm -f ${.TARGET}.tmp
69
70man${_S}pages.ps: man${_S}pages.files
71          ${_MKTARGET_CREATE}
72          for f in `${TOOL_GREP} "${_S}\$$" "${.CURDIR}/intros"` `cat ${.ALLSRC}` ; \
73          do                                                          \
74                    if [ ! -f $${f} ]; then                           \
75                              continue ;                              \
76                    fi ;                                              \
77                    if ${TOOL_GREP} -q ^\\.TS "${.CURDIR}/back" ; \
78                    then                                              \
79                              ${_MKSHMSG_FORMAT} >&2 $${f} ;          \
80                              cat $${f} | ${TOOL_TBL} | ${TOOL_GROFF} -Z -msafer -man -Tps ${ROFF_PAGESIZE}; \
81                    else                                              \
82                              ${_MKSHMSG_FORMAT} >&2 $${f} "(tbl)";   \
83                              cat $${f} | ${TOOL_GROFF} -Z -msafer -man -Tps ${ROFF_PAGESIZE}; \
84                    fi ;                                              \
85          done > ${.TARGET}.troff.tmp                       \
86          && cat ${.TARGET}.troff.tmp                       \
87          | ${TOOL_GREP} -v '^x stop'                       \
88          | ${TOOL_GROPS}                                   \
89          > ${.TARGET}.tmp                                  \
90          && ${MV} ${.TARGET}.tmp ${.TARGET} ;              \
91          rm -f ${.TARGET}.tmp ${.TARGET}.troff.tmp
92
93man${_S}pages.pdf: man${_S}pages.ps
94          ${_MKTARGET_CREATE}
95          cat ${.ALLSRC}                                              \
96          | ${TOOL_SED} ${OPTIMIZE_PDF}                               \
97          | ps2pdf - -                                                \
98          > ${.TARGET}.tmp                                  \
99          && ${MV} ${.TARGET}.tmp ${.TARGET} ;              \
100          rm -f ${.TARGET}.tmp
101
102.endfor
103
104man.tgz:
105          tar plzvcf manpages-ps.tgz man?pages.ps
106          tar plzvcf manpages-pdf.tgz man?pages.pdf
107
108.include <bsd.files.mk>
109