|
|
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.