BSD 4_4 development
[unix-history] / usr / src / old / lisp / Makefile
CommitLineData
fb30c426
C
1# $Header: Makefile,v 1.30 87/12/16 22:59:24 sklower Exp $
2# $Locker: $
3# Makefile for total Franz Lisp system.
4#
5# Read the file ReadMe for directions on how to build the system.
6#
7# capabilities of this directory.
8# copylibrary: copies distribution copy of lisp directory to LibDir
9# fast: make a new lisp and liszt assuming that a liszt and lisp
10# already exist. Results are franz/mylisp and liszt/nliszt.
11# Use 'make install' to install it.
12# install: moves franz/mylisp to ObjDir/lisp and moves
13# liszt/nliszt to ObjDir/liszt
14#
15#-- the rest of the capabilities are for use when making a distribution
16# directory.
17# copyallsource: copies lisp distrib files in the current directory tree
18# to the tree CopyTo.
19# CopyTo should exist already, but the subdirectories
20# need not exist.
21#
22# Before doing one of the below, you should make sure that the on line
23# manual is up to date. Go to the doc subdirectory and type
24# 'make rall install'
25#
26# lispdist: makes a new distribution directory in LispDist.
27# LispDist should already exist.
28#
29# lispscriptdist: make a shell script lisp distribution. The result is put
30# in LispDist as a set of text files comprising a shell script.
31# The files are broken into a nice size for transport over the berknet.
32# The first thing that lispscriptdist does is to,
33# 'make prelispscriptdist'
34# Which insures that the files are ready to go.
35# Also, the value of Version should be set to the version number of
36# lisp you are making.
37#
38#--- Default paths and programs
39DESTDIR =
40.DEFAULT: all
41
42# the following lines are modifed by './lispconf', so don't modify it by hand!
43#ifdef vax
44#Mach = vax
45#endif
46#ifdef tahoe
47Mach = tahoe
48#endif
49#ifdef 68k
50#Mach = 68k
51#endif
52
53RootDir = /usr/src/ucb/lisp
54#ifdef ucbstd
55LibDir = ${DESTDIR}/usr/lib/lisp
56ObjDir = ${DESTDIR}/usr/ucb
57#else
58#LibDir = ${DESTDIR}${RootDir}/lisplib
59#ObjDir = ${DESTDIR}${RootDir}/bin
60#endif
61LispDist = /usr/src/ucb/lispdist
62CopyTo = /dev/null
63Lisp = ${ObjDir}/lisp
64Liszt = ${ObjDir}/liszt
65Version = 38.93
66
67# definitions that you shouldn't change
68FranzD = franz/${Mach}
69LisztD = liszt/${Mach}
70CcodeDir = ../../${FranzD}
71
72# --- this directory also has some sources
73Src = Makefile ReadMe ReadMe.tahoe lispconf lispnews scriptcat \
74 Notes.tahoe Notice cvt.awk
75
76# make as lisp and lisp assuming that there are .s files in the
77# lisplib and liszt subdirs
78fromasm:
79#ifdef unisoft
80# (cd as68 ; make DESTDIR=${LibDir} install)
81#endif
82 (cd utils ; make LibDir=${LibDir} all)
83 (cd ${LibDir} ; make LibDir=${LibDir} as nld fromasm)
84 (cd ${FranzD} ; make LibDir=${LibDir} ObjDir=${ObjDir} nlisp)
85 (cd ${LisztD} ; make Lisp=${CcodeDir}/nlisp fromasm)
86 (cd liszt ; make Liszt=${Mach}/nliszt lxref)
87
88## when the lisp system is rebuilt as part of the entire Nbsd distribution,
89# three calls are made:
90# first 'make' to build lisp,liszt and lxref
91# next 'make DESTDIR=xxx install' to install the new lisp
92# finally 'make clean' to clean out objects
93#
94# the 'make all' is done when just a 'make' is done
95all: slow
96
97old-all:
98 (cd utils ; make LibDir=${LibDir} all)
99 (cd ${LibDir} ; make as nld)
100 (cd ${FranzD} ; make LibDir=${LibDir} ObjDir=${ObjDir} donlisp)
101 (cd ${LisztD} ; make Lisp=${CcodeDir}/nlisp nliszt)
102 (cd liszt ; make Liszt=${Mach}/nliszt lxref)
103
104
105copylibrary:
106#ifdef ucbstd
107 (cd lisplib ; make CopyTo=${LibDir} copysource)
108#endif
109
110fast:
111 date
112 (cd utils ; make LibDir=${LibDir} all)
113 (cd ${LibDir}; make as nld tackon)
114 (cd ${FranzD}; make Lisp=${Lisp} Liszt=${Liszt} LibDir=${LibDir}\
115 ObjDir=${ObjDir} donlisp)
116 (cd ${LisztD}; make Lisp=${CcodeDir}/nlisp Liszt=${Liszt} donliszt)
117 (X=`pwd` ; cd ${LibDir}; make Liszt=$$X/${LisztD}/nliszt clean all)
118 date
119 (cd ${FranzD}; make Liszt=../../${LisztD}/nliszt \
120 ObjDir=${ObjDir} LibDir=${LibDir} donlisp)
121 date
122 (cd ${LisztD}; make Lisp=${CcodeDir}/nlisp \
123 Liszt=./nliszt cleanobj nliszt)
124 (cd liszt ; make Liszt=${Mach}/nliszt lxref)
125 (cd doc; make LibDir=${LibDir} install)
126 date
127
128slow:
129 date
130 (cd utils ; make LibDir=${LibDir} all)
131 (cd ${LibDir}; make as nld)
132 (cd ${FranzD}; make LibDir=${LibDir} ObjDir=${ObjDir} snlisp)
133 date
134 (cd ${LisztD}; make Lisp=${CcodeDir}/snlisp snliszt)
135 (cd ${LisztD}; make Lisp=${CcodeDir}/snlisp Liszt=./snliszt nliszt)
136 rm -f ${LisztD}/snliszt
137 date
138 rm -f ${FranzD}/snlisp
139 (X=`pwd`; cd ${FranzD};make Liszt=$$X/${LisztD}/nliszt \
140 ObjDir=${ObjDir}\
141 LibDir=${LibDir} nlisp)
142 (cd ${LisztD}; make Lisp=${CcodeDir}/nlisp Liszt=./nliszt nliszt)
143 (X=`pwd`; cd ${LibDir} ; make Liszt=$$X/${LisztD}/nliszt all)
144 (X=`pwd`; cd ${LibDir} ; make Liszt=$$X/${LisztD}/nliszt struct-again)
145 (X=`pwd`; cd ${FranzD} ; make Liszt=$$X/${LisztD}/nliszt \
146 ObjDir=${ObjDir}\
147 LibDir=${LibDir} donlisp)
148 (cd ${LisztD}; make Lisp=${CcodeDir}/nlisp Liszt=./nliszt nliszt)
149 (cd liszt ; make Liszt=${Mach}/nliszt lxref)
150 (cd doc; make LibDir=${LibDir} install)
151 date
152
153install:
154 (cd ${FranzD}; make ObjDir=${ObjDir} LibDir=${LibDir} install)
155 (cd ${LisztD}; make ObjDir=${ObjDir} LibDir=${LibDir} install)
156 (cd liszt; make ObjDir=${ObjDir} LibDir=${LibDir} install)
157
158
159copyallsource:
160 -mkdir ${CopyTo}/franz
161 -mkdir ${CopyTo}/franz/vax
162 -mkdir ${CopyTo}/franz/tahoe
163 -mkdir ${CopyTo}/franz/68k
164 -mkdir ${CopyTo}/liszt
165 -mkdir ${CopyTo}/liszt/vax
166 -mkdir ${CopyTo}/liszt/tahoe
167 -mkdir ${CopyTo}/liszt/68k
168 -mkdir ${CopyTo}/doc
169 -mkdir ${CopyTo}/utils
170 -mkdir ${CopyTo}/lisplib
171 -mkdir ${CopyTo}/lisplib/manual
172 -mkdir ${CopyTo}/lisplib/autorun
173 -mkdir ${CopyTo}/pearl
174 (tar crf - ${Src} | (cd ${CopyTo}; tar xfp -))
175 (cd franz; make CopyTo=${CopyTo}/franz copysource)
176 (cd franz/vax; make CopyTo=${CopyTo}/franz/vax copysource)
177 (cd franz/tahoe; make CopyTo=${CopyTo}/franz/tahoe copysource)
178 (cd franz/68k; make CopyTo=${CopyTo}/franz/68k copysource)
179 (cd liszt; make CopyTo=${CopyTo}/liszt copysource)
180 (cd liszt/vax; make CopyTo=${CopyTo}/liszt/vax copysource)
181 (cd liszt/tahoe; make CopyTo=${CopyTo}/liszt/tahoe copysource)
182 (cd liszt/68k; make CopyTo=${CopyTo}/liszt/68k copysource)
183 (cd ${LibDir} ; make CopyTo=${CopyTo}/lisplib copysource)
184 (cd doc; make CopyTo=${CopyTo}/doc copysource)
185 (cd utils; make CopyTo=${CopyTo}/utils copysource)
186 (cd pearl; make CopyTo=${CopyTo}/pearl copysource)
187
188lispdist:
189 (cd ${LispDist}; rm -f -r *)
190 make CopyTo=${LispDist} copyallsource
191
192copyallobjects:
193 (cd franz/vax; make CopyTo=${CopyTo}/franz/vax copyobjects)
194 (cd franz/tahoe; make CopyTo=${CopyTo}/franz/tahoe copyobjects)
195 (cd franz/68k; make CopyTo=${CopyTo}/franz/68k copyobjects)
196 (cd liszt/vax; make CopyTo=${CopyTo}/liszt/vax copyobjects)
197 (cd liszt/tahoe; make CopyTo=${CopyTo}/liszt/tahoe copyobjects)
198 (cd ${LibDir} ; make CopyTo=${CopyTo}/lisplib copyobjects)
199
200prelispscriptdist:
201 (cd doc ; make all)
202
203lispscriptdist:
204 (cd ${LispDist}; rm -f -r opus*)
205 make prelispscriptdist
206 (make genlispscript | (cd ${LispDist} ; \
207 divide -500000 -popus${Version}. -l))
208
209xtra:
210 (cd ${LispDist}; rm -f -r x${Mach}*)
211 make Mach=${Mach} setupx
212 (make Mach=${Mach} genxtra) | \
213 (cd ${LispDist} ; divide -500000 -px${Mach}.${Version}. -l)
214
215lispas:
216 make genas68 > ${LispDist}/lispas
217
218setupx:
219 (X=`pwd`; cd ${LibDir};\
220 make Liszt="$$X/liszt/${Mach}/nliszt -e '(sstatus feature for-${Mach})'" xtra)
221 (cd liszt/${Mach}; make -f Makefile2 xtra)
222
223genlispscript:
224 @echo \# Franz Lisp distribution Opus ${Version}
225 @echo mkdir franz
226 @echo mkdir franz/h
227 @echo mkdir franz/vax
228 @echo mkdir franz/tahoe
229 @echo mkdir franz/68k
230 @echo mkdir liszt
231 @echo mkdir liszt/tahoe
232 @echo mkdir liszt/68k
233 @echo mkdir doc
234 @echo mkdir utils
235 @echo mkdir pearl
236 @echo mkdir lisplib
237 @echo mkdir lisplib/manual
238 @echo mkdir lisplib/autorun
239 @scriptcat . . ${Src}
240 @echo chmod 775 lispconf
241 @(cd franz ; make scriptcatall)
242 @(cd franz/vax ; make scriptcatall)
243 @(cd franz/tahoe ; make scriptcatall)
244 @(cd franz/68k ; make scriptcatall)
245 @(cd liszt ; make scriptcatall)
246 @(cd liszt/tahoe ; make scriptcatall)
247 @(cd liszt/68k ; make scriptcatall)
248 @(cd doc ; make LibDir=${LibDir} scriptcatall)
249 @(cd utils ; make scriptcatall )
250 @(X=`pwd` ; cd pearl ; make CdTo=$$X scriptcatall)
251 @(X=`pwd` ; cd ${LibDir} ; make CdTo=$$X scriptcatall)
252 @echo \# end of Franz Lisp Distribution
253
254genas68:
255 @(echo mkdir as68;cd as68; make scriptcat)
256
257genxtra:
258 @(X=`pwd` ; cd ${LibDir} ; make CdTo=$$X scriptcatxtra)
259 @(cd liszt/${Mach} ; make -f Makefile2 scriptcatxtra)
260
261clean:
262 cd franz ; make clean
263 cd franz/vax; make clean
264 cd franz/tahoe; make clean
265 cd franz/68k; make clean
266 cd liszt ; make clean
267 cd liszt/vax; make clean
268 cd liszt/tahoe; make clean
269 cd liszt/68k; make clean
270 cd doc ; make clean
271
272depend:
273
274vdist-dim:
275 rdist -v -d host=dim
276
277dist-dim:
278 rdist -d host=dim