|
|
1.1 root 1: #
2: #
3: # Franz Lisp C coded kernel
4: #
5: #-- Default Paths:
6: # see ../../ReadMe for a explaination of what LibDir and CopyTo mean
7: # D is the directory used for holding intermediate files during
8: # compilation
9: #-- Options:
10: # there is one compile time options which can be set in this file
11: # * do profiling (ala the unix prof(1) command)
12: #
13: # The selection of this options is made below
14: # Other options can be selected by editing ../h/config.h or via
15: # ../../lispconf
16: #
17: LibDir = /usr/lib/lisp
18: ObjDir = /usr/ucb
19: CopyTo = /dev/null
20: Liszt = ${ObjDir}/liszt
21: Lisp = ${ObjDir}/lisp
22: # if you change this you must recompile rlc.c
23: # (and change the value in ../Makefile)
24: #
25: HOLE= 2097152
26:
27: .DEFAULT: nlisp
28:
29: MipSrc1= ../low.c ../lowaux.s
30: MipSrc2= ../alloc.c ../data.c
31: MipSrc3= ../rlc.c
32: MipSrc4= ../lisp.c ../eval.c ../eval2.c ../inits.c ../io.c ../error.c \
33: ../sysat.c ../lam1.c ../lam2.c ../lam3.c ../lam4.c ../lam5.c\
34: ../lam6.c ../lam7.c ../lam8.c ../lam9.c ../lamr.c ../lamp.c \
35: ../fex1.c ../fex2.c ../fex3.c ../fex4.c ../fexr.c\
36: ../fpipe.c \
37: ../subbig.c ../pbignum.c ../divbig.c \
38: ../ffasl.c ../fasl.c \
39: ../trace.c ../evalf.c ../frame.c ../lamgc.c
40:
41: MipSrc = ${MipSrc1} ${MipSrc2} ${MipSrc3} ${MipSrc4}
42:
43: MipObj1= ../low.o ../lowaux.o
44: MipObj2= ../alloc.o ../data.o
45: HoleMipObj2 = ../Salloc.o ../Sdata.o
46: HoleMipObj3 = ../rlc.o
47: MipObj4= ../lisp.o ../eval.o ../eval2.o ../inits.o ../io.o ../error.o \
48: ../sysat.o ../lam1.o ../lam2.o ../lam3.o ../lam4.o ../lam5.o\
49: ../lam6.o ../lam7.o ../lam8.o ../lam9.o ../lamr.o ../lamp.o \
50: ../fex1.o ../fex2.o ../fex3.o ../fex4.o ../fexr.o\
51: ../fpipe.o \
52: ../subbig.o ../pbignum.o ../divbig.o \
53: ../ffasl.o ../fasl.o \
54: ../trace.o ../evalf.o ../frame.o ../lamgc.o
55:
56: #------ Options
57:
58: #--- profiling selection
59: # If the lisp system is to run with profiling, this must be done:
60: # 1) remove the # (comment character) from the ProfFlag and
61: # ProfFlag2 definitions below (also do it in ../Makefile)
62: # 2) remove all .o files and do a make.
63: #
64: ProfFlag = # -XP
65: ProfFlag2 = # -DPROF
66:
67:
68: # The order of loading of certain files is important.
69: # low.o must be first and lowaux second.
70: #
71: BottomObj = ${MipObj1}
72:
73: # Different objects are required depending on whether there is to be
74: # a hole between text and data space.
75: #
76: NoHoleObj = crt0.o ${MipObj2}
77: HoleObj = hcrt0.o ${HoleMipObj2} ${HoleMipObj3}
78:
79: TahoeObj = qfuncl.o tahoe.o malloc.o callg.o exarith.o inewint.o \
80: adbig.o calqhat.o dmlad.o prunei.o myfrexp.o mlsb.o \
81: dodiv.o dsmult.o mulbig.o retfrom.o pushframe.o
82: TahoeCSrc = qfuncl.c tahoe.c malloc.c callg.c exarith.c inewint.c \
83: adbig.c prunei.c myfrexp.c mlsb.c dodiv.c dsmult.c \
84: mulbig.c
85: TahoeASrc = crt0.s hcrt0.s calqhat.s dmlad.s pushframe.s retfrom.s
86: TahoeSrc = ${TahoeASrc} ${TahoeCSrc}
87:
88:
89: AllSrc = Makefile fixmask.c fixpbig.e ${TahoeSrc}
90:
91:
92: .SUFFIXES : .c.l
93: # on non-ucb systems it might be more
94: # polite to use temporary files rather than pipes
95: #
96: .c.o :
97: @csh -cfe "echo cc -c $*.c;\
98: rm -f $*.o;\
99: /lib/cpp $< -I../h |\
100: /lib/ccom ${ProfFlag} | fixmask |\
101: sed -f fixpbig.e | \
102: /lib/c2 | as -o $*.o"
103:
104: .l.o :
105: liszt $< > #resc
106: @echo liszt $< done
107:
108: # one special case:
109: # add -DPROF if you want to profile the assembler code
110:
111: qfuncl.o: qfuncl.c
112: cc -I../h -E ${ProfFlag2} qfuncl.c | as -o qfuncl.o
113:
114: #bigmath.o: bigmath.c
115: # cc -I../h -E ${ProfFlag2} bigmath.c | as -o bigmath.o
116:
117: ../io.o: ../io.c
118: @csh -cfe "echo cc -c $*.c;\
119: rm -f $*.o;\
120: /lib/cpp $< -I../h |\
121: /lib/ccom ${ProfFlag} | fixmask |\
122: sed -f fixpbig.e | \
123: /lib/c2 | as -J -o $*.o"
124:
125: ../rlc.o: ../rlc.c
126: cc -c -O -DHOLE=${HOLE} ../rlc.c
127: mv rlc.o .. < /dev/null
128:
129: ../low.o: ../low.c
130: cc -I../h -R -c ../low.c
131: mv low.o .. < /dev/null
132:
133: ../Salloc.o: ../alloc.c
134: (echo "# define HOLE ${HOLE}"; cat ../alloc.c) > Salloc.c;\
135: make Salloc.o; mv Salloc.o .. < /dev/null ; rm Salloc.c
136:
137: ../Sdata.o: ../data.c
138: (echo "# define HOLE ${HOLE}"; cat ../data.c) > Sdata.c;\
139: make Sdata.o; mv Sdata.o .. < /dev/null ; rm Sdata.c
140:
141: fixmask: fixmask.c
142: cc -O -o fixmask fixmask.c
143:
144: # rawlisp is the standard raw lisp system.
145:
146: rawlisp: fixmask fixpbig.e ${BottomObj} ${NoHoleObj} ${MipObj4} ${TahoeObj}
147: rm -f rawlisp
148: ld -x -o rawlisp -e start ${BottomObj} ${NoHoleObj} \
149: ${TahoeObj} ${MipObj4} -lm -lc -ltermlib
150: ls -l rawlisp
151:
152:
153: # hlisp is a raw lisp system with a hole between text and data
154:
155: rawhlisp: fixmask fixpbig.e ${BottomObj} ${HoleObj} ${MipObj4} ${TahoeObj}
156: rm -f rawhlisp
157: ld -x -H ${HOLE} -o rawhlisp -e hstart ${BottomObj} ${HoleObj} \
158: ${TahoeObj} ${MipObj4} -lm -lc -ltermlib
159: ls -l rawhlisp
160:
161: clean:
162: rm -f *.o rawlisp nlisp rawhlisp
163:
164: lint:
165: lint ../h/*.h *.c
166:
167: tags: tags ${TahoeSrc} ${MipSrc}
168: ctags ../h/*.h ${TahoeCSrc} ${MipSrc}
169:
170: install: nlisp
171: -rm -f ${ObjDir}/lisp
172: install -c nlisp ${ObjDir}/lisp
173: @echo lisp installed
174:
175: nlisp: rawlisp ${LibDir}
176: (cd ${LibDir} ; make Liszt=${Liszt} required)
177: echo "(progn (setq build:map 'map \
178: build:lisp-type 'franz \
179: lisp-library-directory '${LibDir} \
180: build:dir '${LibDir} \
181: lisp-object-directory '${ObjDir}) \
182: (load '${LibDir}/buildlisp)\
183: (sstatus dumpcore nil)\
184: (dumplisp nlisp))" | rawlisp
185: ${LibDir}/tackon map nlisp
186: @echo nlisp built
187:
188:
189: donlisp:
190: -rm -f nlisp
191: make LibDir=${LibDir} Liszt=${Liszt} ObjDir=${ObjDir} nlisp
192:
193: #--- snlisp: create a totally interpreted lisp.
194: # dump as snlisp
195: snlisp: rawlisp
196: echo "(progn (setq build:load t \
197: build:lisp-type 'franz \
198: build:dir '${LibDir} \
199: lisp-object-directory '${ObjDir}\
200: lisp-library-directory '${LibDir})\
201: (load '${LibDir}/buildlisp)\
202: (dumplisp snlisp))" | rawlisp
203:
204: #--- copysource : copy source files to another directory
205: # called via make CopyTo=/xx/yyy/zz copysource
206: #
207: copysource: ${AllSrc}
208: (tar cf - ${AllSrc} | (cd ${CopyTo} ; tar xf -))
209:
210: copyobjects: ${AllObj}
211: (tar cf - ${AllObj} | (cd ${CopyTo} ; tar xf -))
212:
213: scriptcatall: ${AllSrc}
214: @../../scriptcat . franz/tahoe ${AllSrc} tags
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.