bsd.info.mk revision 95368
1139735Simp# $FreeBSD: head/share/mk/bsd.info.mk 95368 2002-04-24 13:29:34Z ru $ 2129198Scognet# 3129198Scognet# The include file <bsd.info.mk> handles installing GNU (tech)info files. 4129198Scognet# Texinfo is a documentation system that uses a single source 5129198Scognet# file to produce both on-line information and printed output. 6129198Scognet# 7129198Scognet# 8129198Scognet# +++ variables +++ 9129198Scognet# 10129198Scognet# CLEANFILES Additional files to remove for the clean and cleandir targets. 11129198Scognet# 12129198Scognet# DESTDIR Change the tree where the info files gets installed. [not set] 13129198Scognet# 14129198Scognet# DVIPS A program which convert a TeX DVI file to PostScript [dvips] 15129198Scognet# 16129198Scognet# DVIPS2ASCII A program to convert a PostScript file which was prior 17129198Scognet# converted from a TeX DVI file to ascii/latin1 [dvips2ascii] 18129198Scognet# 19266312Sian# FORMATS Indicates which output formats will be generated 20129198Scognet# (info, dvi, latin1, ps, html). [info] 21129198Scognet# 22129198Scognet# ICOMPRESS_CMD Program to compress info files. Output is to 23129198Scognet# stdout. [${COMPRESS_CMD}] 24129198Scognet# 25129198Scognet# INFO texinfo files, without suffix. [set in Makefile] 26129198Scognet# 27129198Scognet# INFO2HTML A program for converting GNU info files into HTML files 28129198Scognet# [info2html] 29129198Scognet# 30129198Scognet# INFODIR Base path for GNU's hypertext system 31129198Scognet# called Info (see info(1)). [${SHAREDIR}/info] 32129198Scognet# 33129198Scognet# INFODIRFILE Top level node/index for info files. [dir] 34129198Scognet# 35129198Scognet# INFOGRP Info group. [${SHAREGRP}] 36129198Scognet# 37129198Scognet# INFOMODE Info mode. [${NOBINMODE}] 38129198Scognet# 39129198Scognet# INFOOWN Info owner. [${SHAREOWN}] 40129198Scognet# 41129198Scognet# INFOSECTION Default section (if one could not be found in 42129198Scognet# the Info file). [Miscellaneous] 43129198Scognet# 44129198Scognet# INSTALLINFO A program for installing directory entries from Info 45129198Scognet# file in the ${INFODIR}/${INFODIRFILE}. [install-info] 46129198Scognet# 47129198Scognet# INSTALLINFOFLAGS Options for ${INSTALLINFO} command. [--quiet] 48135658Scognet# 49129198Scognet# INSTALLINFODIRS ??? 50129198Scognet# 51129198Scognet# MAKEINFO A program for converting GNU Texinfo files into Info 52129198Scognet# file. [makeinfo] 53129198Scognet# 54129198Scognet# MAKEINFOFLAGS Options for ${MAKEINFO} command. [--no-split] 55129198Scognet# 56135658Scognet# NOINFO Do not make or install info files. [not set] 57129198Scognet# 58129198Scognet# NOINFOCOMPRESS If you do not want info files be 59129198Scognet# compressed when they are installed. [not set] 60129198Scognet# 61129198Scognet# TEX A program for converting tex files into dvi files [tex] 62129198Scognet# 63129198Scognet# 64129198Scognet# +++ targets +++ 65129198Scognet# 66129198Scognet# install: 67129198Scognet# Install the info files. 68129198Scognet# 69135658Scognet# 70129198Scognet# bsd.obj.mk: cleandir and obj 71129198Scognet 72129198Scognet.include <bsd.init.mk> 73129198Scognet 74129198ScognetMAKEINFO?= makeinfo 75130028StjrMAKEINFOFLAGS+= --no-split # simplify some things, e.g., compression 76130028StjrSRCDIR?= ${.CURDIR} 77129198ScognetINFODIRFILE?= dir 78129198ScognetINSTALLINFO?= install-info 79129198ScognetINSTALLINFOFLAGS+=--quiet 80129198ScognetINFOSECTION?= Miscellaneous 81129198ScognetICOMPRESS_CMD?= ${COMPRESS_CMD} 82129198ScognetICOMPRESS_EXT?= ${COMPRESS_EXT} 83129198ScognetFORMATS?= info 84129198ScognetINFO2HTML?= info2html 85129198ScognetTEX?= tex 86129198ScognetDVIPS?= dvips 87129198ScognetDVIPS2ASCII?= dvips2ascii 88129198Scognet 89135658Scognet.SUFFIXES: ${ICOMPRESS_EXT} .info .texi .texinfo .dvi .ps .latin1 .html 90135658Scognet 91129198Scognet.texi.info .texinfo.info: 92129198Scognet ${MAKEINFO} ${MAKEINFOFLAGS} -I ${.CURDIR} -I ${SRCDIR} ${.IMPSRC} \ 93218195Smdf -o ${.TARGET} 94129198Scognet 95129198Scognet.texi.dvi .texinfo.dvi: 96129198Scognet TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ 97129198Scognet ${TEX} ${.IMPSRC} </dev/null 98176886Scognet# Run again to reolve cross references. 99176886Scognet TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ 100129198Scognet ${TEX} ${.IMPSRC} </dev/null 101176886Scognet 102129198Scognet.texinfo.latin1 .texi.latin1: 103129198Scognet 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 104129198Scognet TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ 105129198Scognet ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null 106129198Scognet# Run again to reolve cross references. 107129198Scognet TEXINPUTS=${.CURDIR}:${SRCDIR}:$$TEXINPUTS \ 108129198Scognet ${TEX} ${.IMPSRC:T:R}-la.texi </dev/null 109129198Scognet ${DVIPS} -o /dev/stdout ${.IMPSRC:T:R}-la.dvi | \ 110129198Scognet ${DVIPS2ASCII} > ${.TARGET}.new 111129198Scognet mv -f ${.TARGET}.new ${.TARGET} 112135658Scognet 113129198Scognet.dvi.ps: 114129198Scognet ${DVIPS} -o ${.TARGET} ${.IMPSRC} 115129198Scognet 116129198Scognet.info.html: 117129198Scognet ${INFO2HTML} ${.IMPSRC} 118129198Scognet ln -f ${.TARGET:R}.info.Top.html ${.TARGET} 119129198Scognet 120129198Scognet.PATH: ${.CURDIR} ${SRCDIR} 121130028Stjr 122130023Stjr.for _f in ${FORMATS} 123129198ScognetIFILENS+= ${INFO:S/$/.${_f}/} 124129198Scognet.endfor 125 126.if !defined(NOINFO) 127CLEANFILES+= ${IFILENS} 128.if !defined(NOINFOCOMPRESS) 129CLEANFILES+= ${IFILENS:S/$/${ICOMPRESS_EXT}/} 130IFILES= ${IFILENS:S/$/${ICOMPRESS_EXT}/:S/.html${ICOMPRESS_EXT}/.html/} 131all: ${IFILES} 132.else 133IFILES= ${IFILENS} 134all: ${IFILES} 135.endif 136.else 137all: 138.endif 139 140.for x in ${IFILENS} 141${x:S/$/${ICOMPRESS_EXT}/}: ${x} 142 ${ICOMPRESS_CMD} ${.ALLSRC} > ${.TARGET} 143.endfor 144 145.for x in ${INFO} 146INSTALLINFODIRS+= ${x:S/$/-install/} 147${x:S/$/-install/}: ${DESTDIR}${INFODIR}/${INFODIRFILE} 148 ${INSTALLINFO} ${INSTALLINFOFLAGS} \ 149 --defsection=${INFOSECTION} \ 150 --defentry=${INFOENTRY_${x}} \ 151 ${x}.info ${DESTDIR}${INFODIR}/${INFODIRFILE} 152.endfor 153 154.PHONY: ${INSTALLINFODIRS} 155 156.if defined(SRCS) 157CLEANFILES+= ${INFO}.texi 158${INFO}.texi: ${SRCS} 159 cat ${.ALLSRC} > ${.TARGET} 160.endif 161 162# tex garbage 163.if ${FORMATS:Mps} || ${FORMATS:Mdvi} || ${FORMATS:Mlatin1} 164.for _f in aux cp fn ky log out pg toc tp vr dvi 165CLEANFILES+= ${INFO:S/$/.${_f}/} ${INFO:S/$/-la.${_f}/} 166.endfor 167CLEANFILES+= ${INFO:S/$/-la.texi/} 168.endif 169 170.if ${FORMATS:Mhtml} 171CLEANFILES+= ${INFO:S/$/.info.*.html/} ${INFO:S/$/.info/} 172.endif 173 174.if !defined(NOINFO) && defined(INFO) 175install: ${INSTALLINFODIRS} 176.if ${IFILES:N*.html} 177 ${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \ 178 ${IFILES:N*.html} ${DESTDIR}${INFODIR} 179.endif 180.if ${FORMATS:Mhtml} 181 ${INSTALL} ${COPY} -o ${INFOOWN} -g ${INFOGRP} -m ${INFOMODE} \ 182 ${INFO:S/$/.info.*.html/} ${DESTDIR}${INFODIR} 183.endif 184.else 185# The indirection in the following is to avoid the null install rule 186# "install:" from being overridden by the implicit .sh rule if there 187# happens to be a source file named install.sh. This assumes that there 188# is no source file named __null_install.sh. 189install: __null_install 190__null_install: 191.endif 192 193.include <bsd.obj.mk> 194