bsd.info.mk revision 25314
165942Sgibbs#	$Id: bsd.info.mk,v 1.36 1997/04/07 16:46:40 bde Exp $
265942Sgibbs#
365942Sgibbs# The include file <bsd.info.mk> handles installing GNU (tech)info files.
465942Sgibbs# Texinfo is a documentation system that uses a single source
565942Sgibbs# file to produce both on-line information and printed output.
665942Sgibbs# <bsd.info.mk> includes the files <bsd.dep.mk> and <bsd.obj.mk>.
765942Sgibbs#
865942Sgibbs#
965942Sgibbs# +++ variables +++
1065942Sgibbs#
1165942Sgibbs# CLEANFILES	Additional files to remove for the clean and cleandir targets.
1265942Sgibbs#
1365942Sgibbs# DESTDIR	Change the tree where the info files gets installed. [not set]
1465942Sgibbs#
1565942Sgibbs# DISTRIBUTION	Name of distribution. [info]
1665942Sgibbs#
1765942Sgibbs# ICOMPRESS_CMD	Program to compress info files. Output is to
1865942Sgibbs#		stdout. [${COMPRESS_CMD}]
1965942Sgibbs#
2065942Sgibbs# INFO		???
2165942Sgibbs#
2265942Sgibbs# INFODIR	Base path for GNU's hypertext system
2365942Sgibbs#		called Info (see info(1)). [${SHAREDIR}/info]
2465942Sgibbs#
2565942Sgibbs# INFODIRFILE	Top level node/index for info files. [dir]
2665942Sgibbs#
2765942Sgibbs# INFOGRP	Info group. [${SHAREGRP}]
2865942Sgibbs#
2965942Sgibbs# INFOMODE	Info mode. [${NOBINMODE}]
3065942Sgibbs#
3165942Sgibbs# INFOOWN	Info owner. [${SHAREOWN}]
3265942Sgibbs#
3365942Sgibbs# INFOSECTION	??? [Miscellaneous]
3465942Sgibbs#
3565942Sgibbs# INFOTMPL	??? [${INFODIR}/dir-tmpl]
3665942Sgibbs#
3765942Sgibbs# INSTALLINFO	??? [install-info]
3865942Sgibbs#
3965942Sgibbs# INSTALLINFODIRS	???
4065942Sgibbs#
4165942Sgibbs# MAKEINFO	A program for converting GNU Texinfo files into Info
4265942Sgibbs#		file. [makeinfo]
4365942Sgibbs#
4465942Sgibbs# MAKEINFOFLAGS		Options for ${MAKEINFO} command. [--no-split]
4565942Sgibbs#
4665942Sgibbs# NOINFO	Do not make or install info files. [not set]
4765942Sgibbs#
4865942Sgibbs# NOINFOCOMPRESS	If you do not want info files be
4965942Sgibbs#			compressed when they are installed. [not set]
5065942Sgibbs#
5165942Sgibbs#
5265942Sgibbs# +++ targets +++
5365942Sgibbs#
5465942Sgibbs#	clean:
5565942Sgibbs#		remove *.info* Errs errs mklog ${CLEANFILES}
5665942Sgibbs#
5765942Sgibbs#	depend:
5865942Sgibbs#		Dummy target, do nothing.
5965942Sgibbs#
6065942Sgibbs#	distribute:
6165942Sgibbs#		This is a variant of install, which will
6265942Sgibbs#		put the stuff into the right "distribution".
6365942Sgibbs#
6465942Sgibbs#	install:
6565942Sgibbs#		Install the info files.
6665942Sgibbs#
6765942Sgibbs#	maninstall:
6865942Sgibbs#		Dummy target, do nothing.
6965942Sgibbs#
7065942Sgibbs#
7166269Sgibbs# bsd.obj.mk: cleandir and obj
7265942Sgibbs
7365942Sgibbs.if exists(${.CURDIR}/../Makefile.inc)
7465942Sgibbs.include "${.CURDIR}/../Makefile.inc"
7565942Sgibbs.endif
7665942Sgibbs
7766269SgibbsMAKEINFO?=	makeinfo
7866269SgibbsMAKEINFOFLAGS+=	--no-split # simplify some things, e.g., compression
7965942SgibbsSRCDIR?=	${.CURDIR}
8065942SgibbsINFODIRFILE?=   dir
8165942SgibbsINFOTMPL?=      ${INFODIR}/dir-tmpl
8266269SgibbsINSTALLINFO?=   install-info
8365942SgibbsINFOSECTION?=   Miscellaneous
8465942SgibbsICOMPRESS_CMD?=	${COMPRESS_CMD}
8565942SgibbsICOMPRESS_EXT?=	${COMPRESS_EXT}
8665942Sgibbs
8765942Sgibbs.MAIN: all
8866269Sgibbs
8965942Sgibbs.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo
9065942Sgibbs
9165942Sgibbs.texi.info:
9265942Sgibbs	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
9365942Sgibbs		-o ${.TARGET}.new
9465942Sgibbs	mv -f ${.TARGET}.new ${.TARGET}
9565942Sgibbs
9665942Sgibbs.texinfo.info:
9765942Sgibbs	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \
9865942Sgibbs		-o ${.TARGET}.new
9965942Sgibbs	mv -f ${.TARGET}.new ${.TARGET}
10065942Sgibbs
10165942Sgibbs.PATH: ${.CURDIR} ${SRCDIR}
10265942Sgibbs
10365942SgibbsIFILENS= ${INFO:S/$/.info/g}
10465942Sgibbs
10565942Sgibbs.if !defined(NOINFO)
10665942Sgibbs.if !defined(NOINFOCOMPRESS)
10765942SgibbsIFILES=	${INFO:S/$/.info${ICOMPRESS_EXT}/g}
10865942Sgibbsall: ${IFILES} _SUBDIR
10965942Sgibbs.else
11065942SgibbsIFILES=	${IFILENS}
11165942Sgibbsall: ${IFILES} _SUBDIR
11265942Sgibbs.endif
11365942Sgibbs.else
11465942Sgibbsall:
11565942Sgibbs.endif
11665942Sgibbs
11765942Sgibbs.for x in ${INFO:S/$/.info/g}
11865942Sgibbs${x:S/$/${ICOMPRESS_EXT}/}:	${x}
11965942Sgibbs	${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
12065942Sgibbs.endfor
12165942Sgibbs
12265942Sgibbs# What to do if there's no dir file there.  This is really gross!!!
12365942Sgibbs${DESTDIR}${INFODIR}/${INFODIRFILE}:
12465942Sgibbs	cd /usr/src/share/info; ${MAKE} install
12565942Sgibbs
12665942Sgibbs# What to do if there's no dir file there.  This is really gross!!!
12765942Sgibbs${DESTDIR}${INFODIR}/${INFODIRFILE}:
12865942Sgibbs	@(cd /usr/src/share/info; make install)
12965942Sgibbs
13065942Sgibbs.for x in ${INFO}
13165942SgibbsINSTALLINFODIRS+= ${x:S/$/-install/}
13265942Sgibbs${x:S/$/-install/}: ${DESTDIR}${INFODIR}/${INFODIRFILE}
13365942Sgibbs	${INSTALLINFO} --defsection=${INFOSECTION} \
13465942Sgibbs		       --defentry=${INFOENTRY_${x}} \
13565942Sgibbs		       ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
13665942Sgibbs.endfor
13765942Sgibbs
13865942Sgibbs.PHONY: ${INSTALLINFODIRS}
13965942Sgibbs
14065942Sgibbs# The default is "info" and it can never be "bin"
14165942SgibbsDISTRIBUTION?=	info
14265942Sgibbs.if ${DISTRIBUTION} == "bin"
14365942SgibbsDISTRIBUTION=	info
14465942Sgibbs.endif
14565942Sgibbs
14665942Sgibbs.if !target(distribute)
14765942Sgibbsdistribute: _SUBDIR
14866104Sgibbs	cd ${.CURDIR} ; \
14966104Sgibbs		$(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies
15065942Sgibbs.endif
15165942Sgibbs
15265942Sgibbs.if defined(SRCS)
15365942Sgibbs${INFO}.info: ${SRCS}
15465942Sgibbs	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} \
15565942Sgibbs		${SRCS:S/^/${SRCDIR}\//g} -o ${INFO}.info.new
15665942Sgibbs	mv -f ${INFO}.info.new ${INFO}.info
15765942Sgibbs.endif
15865942Sgibbs
15965942Sgibbsdepend: _SUBDIR
16065942Sgibbs	@echo -n
16165942Sgibbs
16265942Sgibbsclean: _SUBDIR
16365942Sgibbs	rm -f ${INFO:S/$/.info*/g} Errs errs mklog ${CLEANFILES}
16465942Sgibbs
16565942Sgibbs.if !defined(NOINFO) && defined(INFO)
16665942Sgibbsinstall: ${INSTALLINFODIRS} _SUBDIR
16765942Sgibbs	${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
16865942Sgibbs		${IFILES} ${DESTDIR}${INFODIR}
16965942Sgibbs.else
17065942Sgibbsinstall:
17165942Sgibbs.endif
17265942Sgibbs
17365942Sgibbs.if !target(maninstall)
17465942Sgibbsmaninstall: _SUBDIR
17565942Sgibbs.endif
17665942Sgibbs
17765942Sgibbs.include <bsd.dep.mk>
17865942Sgibbs.include <bsd.obj.mk>
17965942Sgibbs