bsd.info.mk revision 42666
1244541Sbrooks#	$Id: bsd.info.mk,v 1.51 1998/08/08 07:02:07 peter Exp $
2244541Sbrooks#
3244541Sbrooks# The include file <bsd.info.mk> handles installing GNU (tech)info files.
4244541Sbrooks# Texinfo is a documentation system that uses a single source
5244541Sbrooks# file to produce both on-line information and printed output.
6244541Sbrooks#
7244541Sbrooks#
8244541Sbrooks# +++ variables +++
9244541Sbrooks#
10244541Sbrooks# CLEANFILES	Additional files to remove for the clean and cleandir targets.
11244541Sbrooks#
12244541Sbrooks# DESTDIR	Change the tree where the info files gets installed. [not set]
13244541Sbrooks#
14244541Sbrooks# DISTRIBUTION	Name of distribution. [info]
15244541Sbrooks#
16244541Sbrooks# DVIPS		A program which convert a TeX DVI file to PostScript [dvips]
17244541Sbrooks#
18244541Sbrooks# DVIPS2ASCII	A program to convert a PostScript file which was prior
19244541Sbrooks#		converted from a TeX DVI file to ascii/latin1 [dvips2ascii]
20244541Sbrooks#
21244541Sbrooks# FORMATS 	Indicates which output formats will be generated
22244541Sbrooks#               (info, dvi, latin1, ps, html).  [info]
23244541Sbrooks#
24244541Sbrooks# ICOMPRESS_CMD	Program to compress info files. Output is to
25244541Sbrooks#		stdout. [${COMPRESS_CMD}]
26244541Sbrooks#
27244541Sbrooks# INFO		texinfo files, without suffix.  [set in Makefile] 
28244541Sbrooks#
29244541Sbrooks# INFO2HTML	A program for converting GNU info files into HTML files
30244541Sbrooks#		[info2html]
31244541Sbrooks#
32244541Sbrooks# INFODIR	Base path for GNU's hypertext system
33244541Sbrooks#		called Info (see info(1)). [${SHAREDIR}/info]
34244541Sbrooks#
35244541Sbrooks# INFODIRFILE	Top level node/index for info files. [dir]
36244541Sbrooks#
37244541Sbrooks# INFOGRP	Info group. [${SHAREGRP}]
38244541Sbrooks#
39244541Sbrooks# INFOMODE	Info mode. [${NOBINMODE}]
40244541Sbrooks#
41244541Sbrooks# INFOOWN	Info owner. [${SHAREOWN}]
42244541Sbrooks#
43244541Sbrooks# INFOSECTION	??? [Miscellaneous]
44244541Sbrooks#
45244541Sbrooks# INFOTMPL	??? [${INFODIR}/dir-tmpl]
46244541Sbrooks#
47244541Sbrooks# INSTALLINFO	??? [install-info]
48244541Sbrooks#
49244541Sbrooks# INSTALLINFODIRS	???
50244541Sbrooks#
51244541Sbrooks# MAKEINFO	A program for converting GNU Texinfo files into Info
52244541Sbrooks#		file. [makeinfo]
53244541Sbrooks#
54244541Sbrooks# MAKEINFOFLAGS		Options for ${MAKEINFO} command. [--no-split]
55244541Sbrooks#
56244541Sbrooks# NOINFO	Do not make or install info files. [not set]
57244541Sbrooks#
58244541Sbrooks# NOINFOCOMPRESS	If you do not want info files be
59244541Sbrooks#			compressed when they are installed. [not set]
60244541Sbrooks#
61244541Sbrooks# TEX		A program for converting tex files into dvi files [tex]
62244541Sbrooks#
63244541Sbrooks#
64244541Sbrooks# +++ targets +++
65244541Sbrooks#
66244541Sbrooks#	distribute:
67244541Sbrooks#		This is a variant of install, which will
68244541Sbrooks#		put the stuff into the right "distribution".
69244541Sbrooks#
70244541Sbrooks#	install:
71244541Sbrooks#		Install the info files.
72244541Sbrooks#
73244541Sbrooks#	maninstall:
74244541Sbrooks#		Dummy target, do nothing.
75244541Sbrooks#
76244541Sbrooks#
77244541Sbrooks# bsd.obj.mk: cleandir and obj
78244541Sbrooks
79244541Sbrooks.if !target(__initialized__)
80244541Sbrooks__initialized__:
81244541Sbrooks.if exists(${.CURDIR}/../Makefile.inc)
82244541Sbrooks.include "${.CURDIR}/../Makefile.inc"
83244541Sbrooks.endif
84244541Sbrooks.endif
85244541Sbrooks
86244541SbrooksMAKEINFO?=	makeinfo
87244541SbrooksMAKEINFOFLAGS+=	--no-split # simplify some things, e.g., compression
88244541SbrooksSRCDIR?=	${.CURDIR}
89244541SbrooksINFODIRFILE?=   dir
90244541SbrooksINFOTMPL?=      ${INFODIR}/dir-tmpl
91244541SbrooksINSTALLINFO?=   install-info
92244541SbrooksINFOSECTION?=   Miscellaneous
93244541SbrooksICOMPRESS_CMD?=	${COMPRESS_CMD}
94244541SbrooksICOMPRESS_EXT?=	${COMPRESS_EXT}
95244541SbrooksFORMATS?=	info
96244541SbrooksINFO2HTML?=	info2html
97244541SbrooksTEX?=		tex
98244541SbrooksDVIPS?=		dvips
99244541SbrooksDVIPS2ASCII?=	dvips2ascii
100244541Sbrooks
101244541Sbrooks.MAIN: all
102244541Sbrooks
103244541Sbrooks.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html
104244541Sbrooks
105244541Sbrooks.texi.info .texinfo.info:
106244541Sbrooks	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
107244541Sbrooks		-o ${.TARGET}
108244541Sbrooks
109244541Sbrooks.texi.dvi .texinfo.dvi:
110244541Sbrooks	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
111244541Sbrooks		${TEX} ${.IMPSRC} </dev/null
112244541Sbrooks# Run again to reolve cross references.
113244541Sbrooks	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
114244541Sbrooks		${TEX} ${.IMPSRC} </dev/null
115244541Sbrooks
116244541Sbrooks.texinfo.latin1 .texi.latin1:
117244541Sbrooks	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
118244541Sbrooks	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
119244541Sbrooks		${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
120244541Sbrooks# Run again to reolve cross references.
121244541Sbrooks	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
122244541Sbrooks		${TEX} ${.IMPSRC:T:R}-la.texi </dev/null
123244541Sbrooks	${DVIPS} -o /dev/stdout ${.IMPSRC:T:R}-la.dvi | \
124244541Sbrooks		${DVIPS2ASCII} > ${.TARGET}.new
125244541Sbrooks	mv -f ${.TARGET}.new ${.TARGET}
126244541Sbrooks
127244541Sbrooks.dvi.ps:
128244541Sbrooks	${DVIPS} -o ${.TARGET} ${.IMPSRC} 	
129244541Sbrooks
130244541Sbrooks.info.html:
131244541Sbrooks	${INFO2HTML} ${.IMPSRC}
132244541Sbrooks	ln -f ${.TARGET:R}.info.Top.html ${.TARGET} 
133244541Sbrooks
134244541Sbrooks.PATH: ${.CURDIR} ${SRCDIR}
135244541Sbrooks
136244541Sbrooks.for _f in ${FORMATS}
137244541SbrooksIFILENS+=	${INFO:S/$/.${_f}/}
138244541Sbrooks.endfor
139244541Sbrooks
140244541Sbrooks.if !defined(NOINFO)
141244541SbrooksCLEANFILES+=	${IFILENS}
142244541Sbrooks.if !defined(NOINFOCOMPRESS)
143244541SbrooksCLEANFILES+=	${IFILENS:S/$/${ICOMPRESS_EXT}/}
144244541SbrooksIFILES=	${IFILENS:S/$/${ICOMPRESS_EXT}/:S/.html${ICOMPRESS_EXT}/.html/}
145244541Sbrooksall: ${IFILES} _SUBDIR
146244541Sbrooks.else
147244541SbrooksIFILES=	${IFILENS}
148244541Sbrooksall: ${IFILES} _SUBDIR
149244541Sbrooks.endif
150244541Sbrooks.else
151244541Sbrooksall:
152244541Sbrooks.endif
153244541Sbrooks
154244541Sbrooks.for x in ${IFILENS}
155244541Sbrooks${x:S/$/${ICOMPRESS_EXT}/}:	${x}
156244541Sbrooks	${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
157244541Sbrooks.endfor
158244541Sbrooks
159244541Sbrooks.for x in ${INFO}
160244541SbrooksINSTALLINFODIRS+= ${x:S/$/-install/}
161244541Sbrooks${x:S/$/-install/}: ${DESTDIR}${INFODIR}/${INFODIRFILE}
162244541Sbrooks	${INSTALLINFO} --section=${INFOSECTION} \
163244541Sbrooks		       --entry=${INFOENTRY_${x}} \
164		       ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
165.endfor
166
167.PHONY: ${INSTALLINFODIRS}
168
169DISTRIBUTION?=	bin
170
171.if !target(distribute)
172distribute: _SUBDIR
173.for dist in ${DISTRIBUTION}
174	cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies
175.endfor
176.endif
177
178.if defined(SRCS)
179CLEANFILES+=	${INFO}.texi
180${INFO}.texi: ${SRCS}
181	cat ${.ALLSRC} > ${.TARGET}
182.endif
183
184# tex garbage
185.if ${FORMATS:Mps} || ${FORMATS:Mdvi} || ${FORMATS:Mlatin1}
186.for _f in aux cp fn ky log out pg toc tp vr dvi
187CLEANFILES+=	${INFO:S/$/.${_f}/} ${INFO:S/$/-la.${_f}/}
188.endfor
189CLEANFILES+=	${INFO:S/$/-la.texi/}
190.endif
191
192.if ${FORMATS:Mhtml}
193CLEANFILES+=	${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/}
194.endif
195
196.if !defined(NOINFO) && defined(INFO)
197install: ${INSTALLINFODIRS} _SUBDIR
198.if ${IFILES:N*.html}
199	${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
200		${IFILES:N*.html} ${DESTDIR}${INFODIR}
201.endif
202.if ${FORMATS:Mhtml}
203	${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
204		${INFO:S/$/.info.*.html/} ${DESTDIR}${INFODIR}
205.endif
206.else
207install:
208.endif
209
210.if !target(maninstall)
211maninstall: _SUBDIR
212.endif
213
214.if !target(regress)
215regress:
216.endif
217
218.include <bsd.obj.mk>
219