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