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