1# 2# Copyright (c) 1986 Regents of the University of California. 3# All rights reserved. The Berkeley software License Agreement 4# specifies the terms and conditions for redistribution. 5# 6# @(#)Makefile 6.3 (Berkeley) 05/14/86 7# 8# $Header: Makefile 1.4 83/07/21 21:27:16 sklower Exp $ 9# makefile for the franz lisp manual 10# 11# sources: ${MacroSrc}: macros for the franz documents 12# ${TMacSrc}: macros for typesetting franz documents 13# ch1.n intro and description of types 14# ch2.n data structure access 15# ch3.n on arithmetic functions. 16# ch4.n special functions. 17# ch5.n i/o 18# ch6.n system functions 19# ch7.n reader 20# ch8.n functions and macros 21# ch9.n arrays 22# ch10.n exception handling 23# ch11.n trace package 24# ch12.n liszt 25# ch13.n cmu top level 26# ch14.n stepper 27# ch15.n fixit package 28# ch16.n lisp editor 29# ch17.n hash tables 30# chb.n special symbols 31# chc.n short subjects 32 33 34.SUFFIXES: .n .t .x .v .r .rx .q .qx .sp 35 36# the syntax's have this meaning: 37# .n nroff/troff source file 38# .t troff output file, can be vpr -t 'ed 39# .x index file from a troff run, when collected and run through troff 40# again, an index is produced. 41# .v this file never exists, but asking for it will cause a .t file to 42# be created and then vpr'ed. the .t file will not be deleted. 43# .p this file also never exists, but asking for it will cause TROFF 44# (usually vtroff or itroff) to be run directly on the file, leaving 45# no .t around. This is used in /usr/doc for people who want to 46# run off a manual and are too lazy to read this makefile. 47# .r nroff output file. 48# .rx special index output from nroff run. These files should be catted 49# together and then left around for lisp to read when given the help 50# command. 51# 52# .q nroff output file compatible with model 37 53# .qx index file for .q files. 54# 55# .sp spell errors 56# 57# make install will install the nroff versions of the manual in the 58# directory (LibDir/manual) where the auxfns0.l help command can find them. 59# 60LibDir = /usr/lib/lisp 61CcodeDir = ../franz 62CopyTo = /dev/null 63TROFF= ditroff 64TBL= dtbl 65NROFF= nroff 66PRINTER = -Pdp 67O = 68Append = ${LibDir}/append 69# Rmt = is unecessary; you can say, make rall NROFF="'dali nroff'". 70# better to just copy the doc directory to the remote machine and 71# run it all there. 72 73#--- Sources: 74# We use the suffixes to tell make how to make a file. Thus 75# we only specify the root and let the append function add the 76# appropriate suffix. 77 78MacroSrc = lmacs 79TMacSrc = tmacs 80 81RootGenSrc = ch0 ch1 ch2 ch3 ch4 ch5 ch6 ch61 ch7 ch8 \ 82 ch9 ch10 ch11 ch12 ch13 ch14 ch15 ch16 ch17 chb chc 83 84DocSrc= ch0.n ch1.n ch2.n ch3.n ch4.n ch5.n ch6.n ch7.n ch8.n \ 85 ch9.n ch10.n ch11.n ch12.n ch13.n ch14.n ch15.n ch16.n ch17.n 86 87DocApp= chb.n chc.n 88 89UtilSrc = Makefile indexsed mantags extrnames.awk fixmks.sed \ 90 franz.n 91 92#-- can't get a expression for all source at make read time. must use 93# append to add .n to RootGenSrc 94 95 96doc: paper app 97 98paper: paper.${PRINTER} 99 lpr ${PRINTER} -n paper.${PRINTER} 100 101paper.${PRINTER}: ${DocSrc} ${TMacSrc} 102 ${TBL} ${PRINTER} ${TMacSrc} ${DocSrc} | \ 103 ${TROFF} -t -me 1> paper.${PRINTER} 2> tindex 104 105app: app.${PRINTER} 106 lpr ${PRINTER} -n app.${PRINTER} 107 108app.${PRINTER}: tindex ${TMacSrc} ${DocApp} 109 echo ".Ib" | sort +2 tindex - | sed -f indexsed | \ 110 ${TROFF} -t -me ${TMacSrc} - ${DocApp} > app.${PRINTER} 111 112all: 113 make rall 114 115rall: ${Append} 116 make NROFF=${NROFF} O=${O} `${Append} .r ${RootGenSrc}` helpindex 117 118vall: ${Append} 119 make TROFF=${TROFF} O=${O} `${Append} .v ${RootGenSrc}` index.v 120 121tall: ${Append} 122 make TROFF=${TROFF} O=${O} `${Append} .t ${RootGenSrc}` index.t 123 124cctall: 125 make TROFF="troff -s12" tall 126 127pall: ${Append} 128 make TROFF=${TROFF} O=${O} `${Append} .p ${RootGenSrc}` pindex 129 130troff: pall 131 132qall: ${Append} 133 make NROFF=${NROFF} O=${O} `${Append} .q ${RootGenSrc}` index.t 134 135spall: ${Append} 136 make TROFF=${TROFF} O=${O} `${Append} .q ${RootGenSrc}` index.t 137 138# only a few files describe functions which are indexed. 139 140.t.v: 141 lpr ${PRINTER} -n $*.t 142 143.n.t: 144 ${TBL} ${PRINTER} ${MacroSrc} $*.n | \ 145 ${TROFF} -me ${O} ${PRINTER} -t 1> $*.t 2> $*.x 146 147.n.p: 148 ${TBL} ${PRINTER} ${MacroSrc} $*.n | ${TROFF} -me ${O} ${PRINTER} 2> $*.x 149 150.n.x: 151 ${TBL} ${PRINTER} ${MacroSrc} $*.n | ${TROFF} -me ${O} ${PRINTER} -z 2> $*.x 152 153.n.r: 154 tbl ${MacroSrc} $*.n | ${NROFF} -rb3 -me ${O} 1> $*.r 2> $*.rx 155 rm -f helpindex 156 157.n.rx: 158 tbl ${MacroSrc} $*.n | ${NROFF} -rb3 -me ${O} 1> $*.r 2> $*.rx 159 rm -f helpindex 160 161.n.q: 162 tbl ${MacroSrc} $*.n | ${NROFF} -me -T37 ${O} 2> $*.qx | col > $*.q 163 164.n.sp: 165 spell $*.n > $*.sp 166 167install: 168 make O=${O} rall 169 cp `${Append} .r ${RootGenSrc}` helpindex ${LibDir}/manual 170 171clean: 172 -rm -f paper.-[PT]* app.-[PT]* errs Errs make.out 173 -rm -f *.r 174 -rm -f *.rx 175 -rm -f helpindex 176 -rm -f tindex 177 -rm -f *.t 178 -rm -f *.q 179 -rm -f *.x 180 181 182findex: ${Append} 183 make `${Append} .x ${RootGenSrc}` 184 echo ".Ib" > index 185 sort +3 -o index index `${Append} .x ${RootGenSrc}` 186 sed -f indexsed index > indexx 187 ${Rmt} ${TROFF} -me ${MacroSrc} indexx 188 189index.t: 190 make `${Append} .x ${RootGenSrc}` 191 echo ".Ib" > index 192 sort +3 -o index index `${Append} .x ${RootGenSrc}` 193 sed -f indexsed index > indexx 194 ${TROFF} -me -x -t ${MacroSrc} indexx > index.t 195 196pindex: ${Append} 197 make `${Append} .x ${RootGenSrc}` 198 echo ".Ib" > index 199 sort +3 -o index index `${Append} .x ${RootGenSrc}` 200 sed -f indexsed index > indexx 201 ${TROFF} -me ${MacroSrc} indexx 202 203helpindex: ${Append} 204 make `${Append} .rx ${RootGenSrc}` 205 cat `${Append} .rx ${RootGenSrc}` | tr '\227' ' ' > helpindex 206 207tags: /dev/tty ${Append} 208 awk -f mantags `${Append} .n ${RootGenSrc}` | sort > tags 209 210 211${Append}: 212 (cd ../utils ; make LibDir=${LibDir} ${Append}) 213 214# to create a database for lxref to use: 215C-database: ${CcodeDir}/sysat.c 216 grep "^ MK" ${CcodeDir}/sysat.c > mks 217 sed -f fixmks.sed < mks > mks.fixed 218 (echo "(Chome)" ; cat mks.fixed ) > C-database 219 rm -f mks mks.fixed 220 221doc-database: 222 awk -f extrnames.awk `${Append} .n ${RootGenSrc}`\ 223 | sed -f fixmks.sed > doc-database 224 225 226bigxref: C-database doc-database 227 ${Append} -p ${LibDir}/ `(cd ${LibDir} ; make echorequired)` | \ 228 sed 's/\.l/.x/g' > lisplibfiles 229 lxref doc-database C-database `cat lisplibfiles` > bigxref 230 231# simple table of contents, just a listing of which function is 232# documented in which chapter 233tofc: 234 egrep "^.Lc|^.Lf|^.Lx|^.sh" `${Append} .n ${RootGenSrc}` > tofc 235 236 237copysource: 238 (tar cf - ${MacroSrc} ${TMacSrc} `${Append} .n ${RootGenSrc}` \ 239 ${UtilSrc} | (cd ${CopyTo} ; tar xf -)) 240 241scriptcatall: ${AllSrc} ${Append} 242 @(cd .. ; scriptcat doc doc ${MacroSrc} `${Append} .n ${RootGenSrc}` ${UtilSrc}) 243 @(cd .. ; scriptcat doc lisplib/manual \ 244 `${Append} .r ${RootGenSrc}` helpindex) 245 246copymanual: ${Append} 247 ( cd ${FromDir}/manual ; \ 248 cp `${Append} .r ${RootGenSrc}` helpindex ${CopyTo}) 249 250 251