Deleted Added
full compact
bsd.info.mk (301079) bsd.info.mk (301284)
1# $FreeBSD: head/share/mk/bsd.info.mk 301079 2016-05-31 21:22:19Z bdrewery $
1# $FreeBSD: head/share/mk/bsd.info.mk 301284 2016-06-03 19:25:36Z bdrewery $
2#
3# The include file <bsd.info.mk> handles installing GNU (tech)info files.
4# Texinfo is a documentation system that uses a single source
5# file to produce both on-line information and printed output.
6#
7#
8# +++ variables +++
9#
10# CLEANFILES Additional files to remove for the clean and cleandir targets.
11#
12# DESTDIR Change the tree where the info files gets installed. [not set]
13#
14# DVIPS A program which convert a TeX DVI file to PostScript [dvips]
15#
16# DVIPS2ASCII A program to convert a PostScript file which was prior
17# converted from a TeX DVI file to ascii/latin1 [dvips2ascii]
18#
19# FORMATS Indicates which output formats will be generated
20# (info, dvi, latin1, ps, html). [info]
21#
22# ICOMPRESS_CMD Program to compress info files. Output is to
23# stdout. [${COMPRESS_CMD}]
24#
25# INFO texinfo files, without suffix. [set in Makefile]
26#
27# INFO2HTML A program for converting GNU info files into HTML files
28# [info2html]
29#
30# INFODIR Base path for GNU's hypertext system
31# called Info (see info(1)). [${SHAREDIR}/info]
32#
33# INFODIRFILE Top level node/index for info files. [dir]
34#
35# INFOGRP Info group. [${SHAREGRP}]
36#
37# INFOMODE Info mode. [${NOBINMODE}]
38#
39# INFOOWN Info owner. [${SHAREOWN}]
40#
41# INFOSECTION Default section (if one could not be found in
42# the Info file). [Miscellaneous]
43#
44# INSTALLINFO A program for installing directory entries from Info
45# file in the ${INFODIR}/${INFODIRFILE}. [install-info]
46#
47# INSTALLINFOFLAGS Options for ${INSTALLINFO} command. [--quiet]
48#
49# INSTALLINFODIRS ???
50#
51# MAKEINFO A program for converting GNU Texinfo files into Info
52# file. [makeinfo]
53#
54# MAKEINFOFLAGS Options for ${MAKEINFO} command. [--no-split]
55#
56# NO_INFOCOMPRESS If you do not want info files be
57# compressed when they are installed. [not set]
58#
59# TEX A program for converting tex files into dvi files [tex]
60#
61#
62# +++ targets +++
63#
64# install:
65# Install the info files.
66#
67#
68# bsd.obj.mk: cleandir and obj
69
70.include <bsd.init.mk>
71
72MAKEINFO?= makeinfo
73MAKEINFOFLAGS+= --no-split # simplify some things, e.g., compression
74SRCDIR?= ${.CURDIR}
75INFODIRFILE?= dir
76INSTALLINFO?= install-info
77INSTALLINFOFLAGS+=--quiet
78INFOSECTION?= Miscellaneous
79ICOMPRESS_CMD?= ${COMPRESS_CMD}
80ICOMPRESS_EXT?= ${COMPRESS_EXT}
81FORMATS?= info
82INFO2HTML?= info2html
83TEX?= tex
84DVIPS?= dvips
85DVIPS2ASCII?= dvips2ascii
86
87.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html
88
2#
3# The include file <bsd.info.mk> handles installing GNU (tech)info files.
4# Texinfo is a documentation system that uses a single source
5# file to produce both on-line information and printed output.
6#
7#
8# +++ variables +++
9#
10# CLEANFILES Additional files to remove for the clean and cleandir targets.
11#
12# DESTDIR Change the tree where the info files gets installed. [not set]
13#
14# DVIPS A program which convert a TeX DVI file to PostScript [dvips]
15#
16# DVIPS2ASCII A program to convert a PostScript file which was prior
17# converted from a TeX DVI file to ascii/latin1 [dvips2ascii]
18#
19# FORMATS Indicates which output formats will be generated
20# (info, dvi, latin1, ps, html). [info]
21#
22# ICOMPRESS_CMD Program to compress info files. Output is to
23# stdout. [${COMPRESS_CMD}]
24#
25# INFO texinfo files, without suffix. [set in Makefile]
26#
27# INFO2HTML A program for converting GNU info files into HTML files
28# [info2html]
29#
30# INFODIR Base path for GNU's hypertext system
31# called Info (see info(1)). [${SHAREDIR}/info]
32#
33# INFODIRFILE Top level node/index for info files. [dir]
34#
35# INFOGRP Info group. [${SHAREGRP}]
36#
37# INFOMODE Info mode. [${NOBINMODE}]
38#
39# INFOOWN Info owner. [${SHAREOWN}]
40#
41# INFOSECTION Default section (if one could not be found in
42# the Info file). [Miscellaneous]
43#
44# INSTALLINFO A program for installing directory entries from Info
45# file in the ${INFODIR}/${INFODIRFILE}. [install-info]
46#
47# INSTALLINFOFLAGS Options for ${INSTALLINFO} command. [--quiet]
48#
49# INSTALLINFODIRS ???
50#
51# MAKEINFO A program for converting GNU Texinfo files into Info
52# file. [makeinfo]
53#
54# MAKEINFOFLAGS Options for ${MAKEINFO} command. [--no-split]
55#
56# NO_INFOCOMPRESS If you do not want info files be
57# compressed when they are installed. [not set]
58#
59# TEX A program for converting tex files into dvi files [tex]
60#
61#
62# +++ targets +++
63#
64# install:
65# Install the info files.
66#
67#
68# bsd.obj.mk: cleandir and obj
69
70.include <bsd.init.mk>
71
72MAKEINFO?= makeinfo
73MAKEINFOFLAGS+= --no-split # simplify some things, e.g., compression
74SRCDIR?= ${.CURDIR}
75INFODIRFILE?= dir
76INSTALLINFO?= install-info
77INSTALLINFOFLAGS+=--quiet
78INFOSECTION?= Miscellaneous
79ICOMPRESS_CMD?= ${COMPRESS_CMD}
80ICOMPRESS_EXT?= ${COMPRESS_EXT}
81FORMATS?= info
82INFO2HTML?= info2html
83TEX?= tex
84DVIPS?= dvips
85DVIPS2ASCII?= dvips2ascii
86
87.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html
88
89.texi.info .texinfo.info: ${OP_META}
89.texi.info .texinfo.info:
90 ${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
91 -o ${.TARGET}
92
90 ${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
91 -o ${.TARGET}
92
93.texi.dvi .texinfo.dvi: ${OP_META}
93.texi.dvi .texinfo.dvi:
94 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
95 ${TEX} ${.IMPSRC} </dev/null
96# Run again to resolve cross references.
97 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
98 ${TEX} ${.IMPSRC} </dev/null
99
94 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
95 ${TEX} ${.IMPSRC} </dev/null
96# Run again to resolve cross references.
97 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
98 ${TEX} ${.IMPSRC} </dev/null
99
100.texinfo.latin1 .texi.latin1: ${OP_META}
100.texinfo.latin1 .texi.latin1:
101 perl -npe 's/(^\s*\\input\s+texinfo\s+)/$$1\n@tex\n\\global\\hsize=120mm\n@end tex\n\n/' ${.IMPSRC} >> ${.IMPSRC:T:R}-la.texi
102 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
103 ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
104# Run again to resolve cross references.
105 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
106 ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
107 ${DVIPS} -o /dev/stdout ${.IMPSRC:T:R}-la.dvi | \
108 ${DVIPS2ASCII} > ${.TARGET}.new
109 mv -f ${.TARGET}.new ${.TARGET}
110
101 perl -npe 's/(^\s*\\input\s+texinfo\s+)/$$1\n@tex\n\\global\\hsize=120mm\n@end tex\n\n/' ${.IMPSRC} >> ${.IMPSRC:T:R}-la.texi
102 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
103 ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
104# Run again to resolve cross references.
105 TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
106 ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
107 ${DVIPS} -o /dev/stdout ${.IMPSRC:T:R}-la.dvi | \
108 ${DVIPS2ASCII} > ${.TARGET}.new
109 mv -f ${.TARGET}.new ${.TARGET}
110
111.dvi.ps: ${OP_META}
111.dvi.ps:
112 ${DVIPS} -o ${.TARGET} ${.IMPSRC}
113
112 ${DVIPS} -o ${.TARGET} ${.IMPSRC}
113
114.info.html: ${OP_META}
114.info.html:
115 ${INFO2HTML} ${.IMPSRC}
116 ${INSTALL_LINK} ${.TARGET:R}.info.Top.html ${.TARGET}
117
118.PATH: ${.CURDIR} ${SRCDIR}
119
120.for _f in ${FORMATS}
121IFILENS+= ${INFO:S/$/.${_f}/}
122.endfor
123
124CLEANFILES+= ${IFILENS}
125.if !defined(NO_INFOCOMPRESS)
126CLEANFILES+= ${IFILENS:S/$/${ICOMPRESS_EXT}/}
127IFILES= ${IFILENS:S/$/${ICOMPRESS_EXT}/:S/.html${ICOMPRESS_EXT}/.html/}
128.else
129IFILES= ${IFILENS}
130.endif
131.if !defined(_SKIP_BUILD)
132all: ${IFILES}
133.endif
134
135.for x in ${IFILENS}
115 ${INFO2HTML} ${.IMPSRC}
116 ${INSTALL_LINK} ${.TARGET:R}.info.Top.html ${.TARGET}
117
118.PATH: ${.CURDIR} ${SRCDIR}
119
120.for _f in ${FORMATS}
121IFILENS+= ${INFO:S/$/.${_f}/}
122.endfor
123
124CLEANFILES+= ${IFILENS}
125.if !defined(NO_INFOCOMPRESS)
126CLEANFILES+= ${IFILENS:S/$/${ICOMPRESS_EXT}/}
127IFILES= ${IFILENS:S/$/${ICOMPRESS_EXT}/:S/.html${ICOMPRESS_EXT}/.html/}
128.else
129IFILES= ${IFILENS}
130.endif
131.if !defined(_SKIP_BUILD)
132all: ${IFILES}
133.endif
134
135.for x in ${IFILENS}
136${x:S/$/${ICOMPRESS_EXT}/}: ${x} ${OP_META}
136${x:S/$/${ICOMPRESS_EXT}/}: ${x}
137 ${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
138.endfor
139
140.for x in ${INFO}
141INSTALLINFODIRS+= ${x:S/$/-install/}
142${x:S/$/-install/}:
143.if !empty(.MAKEFLAGS:M-j)
144 lockf -k ${DESTDIR}${INFODIR}/${INFODIRFILE} \
145 ${INSTALLINFO} ${INSTALLINFOFLAGS} \
146 --defsection=${INFOSECTION} \
147 --defentry=${INFOENTRY_${x}} \
148 ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
149.else
150 ${INSTALLINFO} ${INSTALLINFOFLAGS} \
151 --defsection=${INFOSECTION} \
152 --defentry=${INFOENTRY_${x}} \
153 ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
154.endif
155.endfor
156
157.PHONY: ${INSTALLINFODIRS}
158
159.if defined(SRCS)
160CLEANFILES+= ${INFO}.texi
137 ${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
138.endfor
139
140.for x in ${INFO}
141INSTALLINFODIRS+= ${x:S/$/-install/}
142${x:S/$/-install/}:
143.if !empty(.MAKEFLAGS:M-j)
144 lockf -k ${DESTDIR}${INFODIR}/${INFODIRFILE} \
145 ${INSTALLINFO} ${INSTALLINFOFLAGS} \
146 --defsection=${INFOSECTION} \
147 --defentry=${INFOENTRY_${x}} \
148 ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
149.else
150 ${INSTALLINFO} ${INSTALLINFOFLAGS} \
151 --defsection=${INFOSECTION} \
152 --defentry=${INFOENTRY_${x}} \
153 ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
154.endif
155.endfor
156
157.PHONY: ${INSTALLINFODIRS}
158
159.if defined(SRCS)
160CLEANFILES+= ${INFO}.texi
161${INFO}.texi: ${SRCS} ${OP_META}
161${INFO}.texi: ${SRCS}
162 cat ${.ALLSRC} > ${.TARGET}
163.endif
164
165# tex garbage
166.if !empty(FORMATS:Mps) || !empty(FORMATS:Mdvi) || !empty(FORMATS:Mlatin1)
167.for _f in aux cp fn ky log out pg toc tp vr dvi
168CLEANFILES+= ${INFO:S/$/.${_f}/} ${INFO:S/$/-la.${_f}/}
169.endfor
170CLEANFILES+= ${INFO:S/$/-la.texi/}
171.endif
172
173.if !empty(FORMATS:Mhtml)
174CLEANFILES+= ${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/}
175.endif
176
177.if defined(INFO)
178install: ${INSTALLINFODIRS}
179.if !empty(IFILES:N*.html)
180 ${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
181 ${IFILES:N*.html} ${DESTDIR}${INFODIR}/
182.endif
183.if !empty(FORMATS:Mhtml)
184 ${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
185 ${INFO:S/$/.info.*.html/} ${DESTDIR}${INFODIR}/
186.endif
187.else
188# The indirection in the following is to avoid the null install rule
189# "install:" from being overridden by the implicit .sh rule if there
190# happens to be a source file named install.sh. This assumes that there
191# is no source file named __null_install.sh.
192install: __null_install
193__null_install:
194.endif
195
196.include <bsd.obj.mk>
162 cat ${.ALLSRC} > ${.TARGET}
163.endif
164
165# tex garbage
166.if !empty(FORMATS:Mps) || !empty(FORMATS:Mdvi) || !empty(FORMATS:Mlatin1)
167.for _f in aux cp fn ky log out pg toc tp vr dvi
168CLEANFILES+= ${INFO:S/$/.${_f}/} ${INFO:S/$/-la.${_f}/}
169.endfor
170CLEANFILES+= ${INFO:S/$/-la.texi/}
171.endif
172
173.if !empty(FORMATS:Mhtml)
174CLEANFILES+= ${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/}
175.endif
176
177.if defined(INFO)
178install: ${INSTALLINFODIRS}
179.if !empty(IFILES:N*.html)
180 ${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
181 ${IFILES:N*.html} ${DESTDIR}${INFODIR}/
182.endif
183.if !empty(FORMATS:Mhtml)
184 ${INSTALL} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
185 ${INFO:S/$/.info.*.html/} ${DESTDIR}${INFODIR}/
186.endif
187.else
188# The indirection in the following is to avoid the null install rule
189# "install:" from being overridden by the implicit .sh rule if there
190# happens to be a source file named install.sh. This assumes that there
191# is no source file named __null_install.sh.
192install: __null_install
193__null_install:
194.endif
195
196.include <bsd.obj.mk>