Annotation of 43BSDReno/pgrm/lisp/franz/tahoe/Makefile, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.