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