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