bsd.info.mk revision 30105
11817Sdg#	$Id: bsd.info.mk,v 1.1 1997/10/02 21:17:10 wosch Exp wosch $
21817Sdg#
31817Sdg# The include file <bsd.info.mk> handles installing GNU (tech)info files.
41817Sdg# Texinfo is a documentation system that uses a single source
51817Sdg# file to produce both on-line information and printed output.
61817Sdg# <bsd.info.mk> includes the files <bsd.dep.mk> and <bsd.obj.mk>.
71817Sdg#
81817Sdg#
91817Sdg# +++ variables +++
101817Sdg#
111817Sdg# CLEANFILES	Additional files to remove for the clean and cleandir targets.
121817Sdg#
131817Sdg# DESTDIR	Change the tree where the info files gets installed. [not set]
141817Sdg#
151817Sdg# DISTRIBUTION	Name of distribution. [info]
161817Sdg#
171817Sdg# FORMATS 	Indicates which output formats will be generated
181817Sdg#               (info, dvi, latin1, ps).  [info]
191817Sdg#
201817Sdg# ICOMPRESS_CMD	Program to compress info files. Output is to
211817Sdg#		stdout. [${COMPRESS_CMD}]
221817Sdg#
231817Sdg# INFO		???
241817Sdg#
251817Sdg# INFODIR	Base path for GNU's hypertext system
261817Sdg#		called Info (see info(1)). [${SHAREDIR}/info]
271817Sdg#
281817Sdg# INFODIRFILE	Top level node/index for info files. [dir]
2950477Speter#
301817Sdg# INFOGRP	Info group. [${SHAREGRP}]
311817Sdg#
322579Sbde# INFOMODE	Info mode. [${NOBINMODE}]
332579Sbde#
342123Sjkh# INFOOWN	Info owner. [${SHAREOWN}]
3516029Speter#
362579Sbde# INFOSECTION	??? [Miscellaneous]
3718961Sbde#
3813107Sbde# INFOTMPL	??? [${INFODIR}/dir-tmpl]
3925083Sjdp#
40163726Sbde# INSTALLINFO	??? [install-info]
4125083Sjdp#
4225083Sjdp# INSTALLINFODIRS	???
43163726Sbde#
4425083Sjdp# MAKEINFO	A program for converting GNU Texinfo files into Info
4525083Sjdp#		file. [makeinfo]
4625083Sjdp#
47114349Speter# MAKEINFOFLAGS		Options for ${MAKEINFO} command. [--no-split]
4822636Sbde#
4925083Sjdp# NOINFO	Do not make or install info files. [not set]
5022636Sbde#
51114349Speter# NOINFOCOMPRESS	If you do not want info files be
5222636Sbde#			compressed when they are installed. [not set]
5325083Sjdp#
54757Sdg#
5525083Sjdp# +++ targets +++
5646548Sbde#
5713107Sbde#	depend:
5818961Sbde#		Dummy target, do nothing.
59757Sdg#
60171914Sjkoshy#	distribute:
61171914Sjkoshy#		This is a variant of install, which will
62757Sdg#		put the stuff into the right "distribution".
63757Sdg#
6446548Sbde#	install:
6513107Sbde#		Install the info files.
6613107Sbde#
6713107Sbde#	maninstall:
6813107Sbde#		Dummy target, do nothing.
6913107Sbde#
7013107Sbde#
7113107Sbde# bsd.obj.mk: cleandir and obj
7213107Sbde
7346548Sbde.if exists(${.CURDIR}/../Makefile.inc)
7418961Sbde.include "${.CURDIR}/../Makefile.inc"
7518961Sbde.endif
7646548Sbde
7718961SbdeMAKEINFO?=	makeinfo
7818961SbdeMAKEINFOFLAGS+=	--no-split # simplify some things, e.g., compression
7913107SbdeSRCDIR?=	${.CURDIR}
8046548SbdeINFODIRFILE?=   dir
8146548SbdeINFOTMPL?=      ${INFODIR}/dir-tmpl
8213107SbdeINSTALLINFO?=   install-info
8318961SbdeINFOSECTION?=   Miscellaneous
8446548SbdeICOMPRESS_CMD?=	${COMPRESS_CMD}
8546548SbdeICOMPRESS_EXT?=	${COMPRESS_EXT}
8618961SbdeFORMATS?=	info
8718961Sbde
8813107Sbde.MAIN: all
8913107Sbde
9013107Sbde.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1
9113107Sbde
9213107Sbde# What to do if there's no dir file there.  This is really gross!!!
9313107Sbde${DESTDIR}${INFODIR}/${INFODIRFILE}:
9413107Sbde	@(cd /usr/src/share/info; make install)
9513107Sbde
9613107Sbde.texi.info .texinfo.info:
9718961Sbde	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
9818961Sbde		-o ${.TARGET}.new
9918961Sbde	mv -f ${.TARGET}.new ${.TARGET}
10018961Sbde
101757Sdg.texi.dvi .texinfo.dvi:
10213107Sbde	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
10318961Sbde		tex ${.IMPSRC} </dev/null
10418961Sbde	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
10518961Sbde		tex ${.IMPSRC} </dev/null
10618961Sbde
10713107Sbde.texinfo.latin1 .texi.latin1:
108122940Speter	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
10913107Sbde	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
11013107Sbde		tex ${.IMPSRC:T:R}-la.texi </dev/null
111163722Sbde	env TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \
112163726Sbde		tex ${.IMPSRC:T:R}-la.texi </dev/null
11318961Sbde	dvips -o /dev/stdout ${.IMPSRC:T:R}-la.dvi | \
114163722Sbde		dvips2ascii > ${.TARGET}.new
115163722Sbde	mv -f ${.TARGET}.new ${.TARGET}
116163722Sbde
11718961Sbde.dvi.ps:
11818961Sbde	dvips -o ${.TARGET} ${.IMPSRC} 	
119757Sdg
120757Sdg.PATH: ${.CURDIR} ${SRCDIR}
121757Sdg
12213107Sbde.for _f in ${FORMATS}
12313107SbdeIFILENS+= ${INFO:S/$/.${_f}/g}
124757Sdg.endfor
12513107Sbde
12618961Sbde.if !defined(NOINFO)
12718961Sbde.if !defined(NOINFOCOMPRESS)
12813107Sbde.for _f in ${FORMATS}
12913107SbdeIFILES+=	${INFO:S/$/.${_f}${ICOMPRESS_EXT}/g}
1301321Sdg.endfor
13113107Sbdeall: ${IFILES} _SUBDIR
13213107Sbde.else
13313107SbdeIFILES=	${IFILENS}
134757Sdgall: ${IFILES} _SUBDIR
135122849Speter.endif
136122849Speter.else
137156699Speterall:
138122849Speter.endif
139122849Speter
140122849Speter.for _f in ${FORMATS}
141122849Speter.for x in ${INFO:S/$/.${_f}/g}
142153241Sjhb${x:S/$/${ICOMPRESS_EXT}/}:	${x}
143153241Sjhb	${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
144153241Sjhb.endfor
145153241Sjhb.endfor
146153241Sjhb
147153241Sjhb.for x in ${INFO}
148153241SjhbINSTALLINFODIRS+= ${x:S/$/-install/}
149153241Sjhb${x:S/$/-install/}: ${DESTDIR}${INFODIR}/${INFODIRFILE}
150153241Sjhb	${INSTALLINFO} --defsection=${INFOSECTION} \
151153241Sjhb		       --defentry=${INFOENTRY_${x}} \
152153241Sjhb		       ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
153153241Sjhb.endfor
154153241Sjhb
155153241Sjhb.PHONY: ${INSTALLINFODIRS}
156153241Sjhb
157153241Sjhb# The default is "info" and it can never be "bin"
158153241SjhbDISTRIBUTION?=	info
159153241Sjhb.if ${DISTRIBUTION} == "bin"
160153241SjhbDISTRIBUTION=	info
161153241Sjhb.endif
162153241Sjhb
163153241Sjhb.if !target(distribute)
164153241Sjhbdistribute: _SUBDIR
165153241Sjhb.for dist in ${DISTRIBUTION}
166153241Sjhb	cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${dist} SHARED=copies
167153241Sjhb.endfor
168153241Sjhb.endif
169153241Sjhb
170153241Sjhb.if defined(SRCS)
171153241SjhbCLEANFILES+=	${INFO}.texi
172153241Sjhb${INFO}.texi: ${SRCS}
173153241Sjhb	echo "\\input ${SRCS}" > ${.TARGET}
174153241Sjhb.endif
175153241Sjhb
176153241Sjhbdepend: _SUBDIR
177153241Sjhb	@echo -n
178153241Sjhb
179153241Sjhb.for _f in ${FORMATS}
180153241SjhbCLEANFILES+=${INFO:S/$/.${_f}*/g} ${INFO:S/$/-la.${_f}*/g}
181153241Sjhb.endfor
182153241SjhbCLEANFILES+= ${INFO:S/$/-la.texi/g}
183153241Sjhb
184153241Sjhb# tex garbage
185153241Sjhb.for _f in aux cp fn ky log out pg toc tp vr dvi
186153241SjhbCLEANFILES+=	${INFO:S/$/.${_f}/g} ${INFO:S/$/-la.${_f}/g}
187153241Sjhb.endfor
188153241Sjhb
189153241Sjhb
190153241Sjhb.if !defined(NOINFO) && defined(INFO)
191153241Sjhbinstall: ${INSTALLINFODIRS} _SUBDIR
192153241Sjhb	${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
193153241Sjhb		${IFILES} ${DESTDIR}${INFODIR}
194153241Sjhb.else
195153241Sjhbinstall:
196122849Speter.endif
197122849Speter
1982579Sbde.if !target(maninstall)
199maninstall: _SUBDIR
200.endif
201
202.include <bsd.dep.mk>
203.include <bsd.obj.mk>
204