bsd.info.mk revision 23763
1#	$Id: bsd.info.mk,v 1.33 1997/03/12 06:24:52 peter Exp $
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# <bsd.info.mk> includes the files <bsd.dep.mk> and <bsd.obj.mk>.
7#
8#
9# +++ variables +++
10#
11# CLEANFILES	Additional files to remove for the clean and cleandir targets.
12#
13# DESTDIR	Change the tree where the info files gets installed. [not set]
14#
15# DISTRIBUTION	Name of distribution. [info]
16#
17# ICOMPRESS_CMD	Program to compress info files. Output is to
18#		stdout. [${COMPRESS_CMD}]
19#
20# INFO		???
21#
22# INFODIR	Base path for GNU's hypertext system
23#		called Info (see info(1)). [${SHAREDIR}/info]
24#
25# INFODIRFILE	Top level node/index for info files. [dir]
26#
27# INFOGRP	Info group. [${SHAREGRP}]
28#
29# INFOMODE	Info mode. [${NOBINMODE}]
30#
31# INFOOWN	Info owner. [${SHAREOWN}]
32#
33# INFOSECTION	??? [Miscellaneous]
34#
35# INFOTMPL	??? [${INFODIR}/dir-tmpl]
36#
37# INSTALLINFO	??? [install-info]
38#
39# INSTALLINFODIRS	???
40#
41# MAKEINFO	A program for converting GNU Texinfo files into Info
42#		file. [makeinfo]
43#
44# MAKEINFOFLAGS		Options for ${MAKEINFO} command. [--no-split]
45#
46# NOINFO	Do not make or install info files. [not set]
47#
48# NOINFOCOMPRESS	If you do not want info files be
49#			compressed when they are installed. [not set]
50#
51#
52# +++ targets +++
53#
54#	clean:
55#		remove *.info* Errs errs mklog ${CLEANFILES}
56#
57#	depend:
58#		Dummy target, do nothing.
59#
60#	distribute:
61#		This is a variant of install, which will
62#		put the stuff into the right "distribution".
63#
64#	install:
65#		Install the info files.
66#
67#	maninstall:
68#		Dummy target, do nothing.
69#
70#
71# bsd.obj.mk: cleandir and obj
72
73MAKEINFO?=	makeinfo
74MAKEINFOFLAGS+=	--no-split # simplify some things, e.g., compression
75SRCDIR?=	${.CURDIR}
76INFODIRFILE?=   dir
77INFOTMPL?=      ${INFODIR}/dir-tmpl
78INSTALLINFO?=   install-info
79INFOSECTION?=   Miscellaneous
80ICOMPRESS_CMD?=	${COMPRESS_CMD}
81ICOMPRESS_EXT?=	${COMPRESS_EXT}
82
83.MAIN: all
84
85.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo
86
87.texi.info:
88	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} -o ${.TARGET}.new
89	mv -f ${.TARGET}.new ${.TARGET}
90
91.texinfo.info:
92	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} -o ${.TARGET}.new
93	mv -f ${.TARGET}.new ${.TARGET}
94
95.PATH: ${.CURDIR} ${SRCDIR}
96
97IFILENS= ${INFO:S/$/.info/g}
98
99.if !defined(NOINFO)
100.if !defined(NOINFOCOMPRESS)
101IFILES=	${INFO:S/$/.info${ICOMPRESS_EXT}/g}
102all: ${IFILES} _SUBDIR
103.else
104IFILES=	${IFILENS}
105all: ${IFILES} _SUBDIR
106.endif
107.else
108all:
109.endif
110
111.for x in ${INFO:S/$/.info/g}
112${x:S/$/${ICOMPRESS_EXT}/}:	${x}
113	${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET}
114.endfor
115
116# What to do if there's no dir file there.  This is really gross!!!
117${DESTDIR}${INFODIR}/${INFODIRFILE}:
118	@(cd /usr/src/share/info; make install)
119
120.for x in ${INFO}
121INSTALLINFODIRS+= ${x:S/$/-install/}
122${x:S/$/-install/}: ${DESTDIR}${INFODIR}/${INFODIRFILE}
123	${INSTALLINFO} --defsection=${INFOSECTION} \
124		       --defentry=${INFOENTRY_${x}} \
125		       ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE}
126.endfor
127
128.PHONY: ${INSTALLINFODIRS}
129
130# The default is "info" and it can never be "bin"
131DISTRIBUTION?=	info
132.if ${DISTRIBUTION} == "bin"
133DISTRIBUTION=	info
134.endif
135
136.if !target(distribute)
137distribute: _SUBDIR
138	cd ${.CURDIR} ; $(MAKE) install DESTDIR=${DISTDIR}/${DISTRIBUTION} SHARED=copies
139.endif
140
141.if defined(SRCS)
142${INFO}.info: ${SRCS}
143	${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${SRCS:S/^/${SRCDIR}\//g} -o ${INFO}.info.new
144	mv -f ${INFO}.info.new ${INFO}.info
145.endif
146
147depend: _SUBDIR
148	@echo -n
149
150clean: _SUBDIR
151	rm -f ${INFO:S/$/.info*/g} Errs errs mklog ${CLEANFILES}
152
153.if !defined(NOINFO) && defined(INFO)
154install: ${INSTALLINFODIRS} _SUBDIR
155	${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \
156		${IFILES} ${DESTDIR}${INFODIR}
157.else
158install:
159.endif
160
161.if !target(maninstall)
162maninstall: _SUBDIR
163.endif
164
165.include <bsd.dep.mk>
166.include <bsd.obj.mk>
167