From: CSRG Date: Tue, 30 Aug 1983 12:04:34 +0000 (-0800) Subject: BSD 4_3_Reno development X-Git-Tag: BSD-4_3_Reno~1184 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/578b0d6ba5e41eeb3050cae5f05c7b90bc53bbcd BSD 4_3_Reno development Work on file usr/src/pgrm/lisp/franz/vax/Make.uobj Synthesized-from: CSRG/cd2/4.3reno --- diff --git a/usr/src/pgrm/lisp/franz/vax/Make.uobj b/usr/src/pgrm/lisp/franz/vax/Make.uobj new file mode 100644 index 0000000000..071ef3e50b --- /dev/null +++ b/usr/src/pgrm/lisp/franz/vax/Make.uobj @@ -0,0 +1,256 @@ +# +# +# $Header: /na/franz/franz/vax/RCS/Makefile,v 1.3 83/03/23 22:33:01 jkf Exp $ +# +# Franz Lisp C coded kernel +# +#-- Default Paths: +# see ../../ReadMe for a explaination of what LibDir and CopyTo mean +# D is the directory used for holding intermediate files during +# compilation +#-- Options: +# there is one compile time options which can be set in this file +# * do profiling (ala the unix prof(1) command) +# +# The selection of this options is made below +# Other options can be selected by editing h/config.h or via +# ../../lispconf +# +AS = unixas # Generate VMS object files +LD = unixld # Generate VMS object files +CFLAGS = -DEUNICE_UNIX_OBJECT_FILE_CFASL # enable UNIX object CFASL + +LibDir = /usr/lib/lisp +ObjDir = /usr/ucb +CopyTo = /dev/null +Liszt = liszt +Lisp = lisp +# if you change this you must recompile rlc.c +# (and change the value in ../Makefile) +# +HOLE=2097152 + +.DEFAULT: nlisp + +MipSrc1= ../low.c +MipSrc2= ../alloc.c ../data.c +MipSrc3= +MipSrc4= ../lisp.c ../eval.c ../eval2.c ../inits.c ../io.c ../error.c \ + ../sysat.c ../lam1.c ../lam2.c ../lam3.c ../lam4.c ../lam5.c\ + ../lam6.c ../lam7.c ../lam8.c ../lam9.c ../lamr.c ../lamp.c \ + ../fex1.c ../fex2.c ../fex3.c ../fex4.c ../fexr.c\ + ../fpipe.c \ + ../subbig.c ../pbignum.c ../divbig.c \ + ../ffasl.c ../fasl.c \ + ../trace.c ../evalf.c ../frame.c ../lamgc.c + +MipSrc = ${MipSrc1} ${MipSrc2} ${MipSrc3} ${MipSrc4} + +MipObj1= ../low.o +MipObj2= ../alloc.o ../data.o +HoleMipObj2 = ../Salloc.o ../Sdata.o +HoleMipObj3 = +MipObj4= ../lisp.o ../eval.o ../eval2.o ../inits.o ../io.o ../error.o \ + ../sysat.o ../lam1.o ../lam2.o ../lam3.o ../lam4.o ../lam5.o\ + ../lam6.o ../lam7.o ../lam8.o ../lam9.o ../lamr.o ../lamp.o \ + ../fex1.o ../fex2.o ../fex3.o ../fex4.o ../fexr.o\ + ../fpipe.o \ + ../subbig.o ../pbignum.o ../divbig.o \ + ../ffasl.o ../fasl.o \ + ../trace.o ../evalf.o ../frame.o ../lamgc.o + +# this list must contain all the include files, not just those used +# in the vax version. The include filenames are relative to .. +# +Includes = h/config.h h/global.h h/oaout.h h/vaxframe.h \ + h/catchfram.h h/dfuncs.h h/gtabs.h h/sigtab.h \ + h/chars.h h/frame.h h/lfuncs.h h/structs.h \ + h/chkrtab.h h/gc.h h/naout.h h/types.h \ + h/lconf.h h/ltypes.h + +#------ Options + +#--- profiling selection +# If the lisp system is to run with profiling, this must be done: +# 1) remove the # (comment character) from the ProfFlag and +# ProfFlag2 definitions below (also do it in ../Makefile) +# 2) remove all .o files and do a make. +# +ProfFlag = # -XP +ProfFlag2 = # -DPROF + + +# The order of loading of certain files is important. +# low.o must be first and lowaux second. +# +BottomObj = ${MipObj1} ../lowaux.o +HBottomObj = ${MipObj1} hlowaux.o + +# Different objects are required depending on whether there is to be +# a hole between text and data space. +# +NoHoleObj = ${MipObj2} +HoleObj = ${HoleMipObj2} ${HoleMipObj3} + +VaxObj = bigmath.o qfuncl.o vax.o prealloc.o + +VaxSrc = bigmath.c qfuncl.c vax.c crt0.s hcrt0.s lowaux.s + +# AllSrc does not (and should not) include ${Includes} + +AllSrc = Makefile fixmask.c fixpbig.e ${VaxSrc} ${MipSrc} + + +.SUFFIXES : .c.l +# +# use temporary files rather than pipes to keep the number of procs. down +# thus, users with low process quotas on VMS can still build lisp +# +.c.o : + @csh -cfe "echo cc -c $*.c;\ + rm -f $*.o;\ + /lib/cpp ${CFLAGS} $< -I../h > $*.tm0;\ + /lib/ccom ${ProfFlag} $*.tm0 $*.tm1;\ + fixmask <$*.tm1 >$*.tm2;\ + sed -f fixpbig.e <$*.tm2 >$*.tm3;\ + /lib/c2 $*.tm3 >$*.tms;\ + ${AS} -o $*.o $*.tms;\ + rm $*.tms $*.tm0 $*.tm1 $*.tm2 $*.tm3" + +.l.o : + liszt $< > #resc + @echo liszt $< done + +# one special case: +# add -DPROF if you want to profile the assembler code + +# EXPLICITLY USE "unixcpp" SO THAT "$"s IN ASSEMBLER CODE WORK! +qfuncl.o: qfuncl.c + /lib/unixcpp -I../h ${ProfFlag2} qfuncl.c | ${AS} -o qfuncl.o + +bigmath.o: bigmath.c + /lib/unixcpp -I../h ${ProfFlag2} bigmath.c | ${AS} -o bigmath.o + +../rlc.o: ../rlc.c + cc -S -O ${CFLAGS} -DHOLE=${HOLE} ../rlc.c + ${AS} -o rlc.o rlc.s + rm rlc.s + mv rlc.o ../rlc.o + +../low.o: ../low.c + cc ${CFLAGS} -I../h -R -S ../low.c + ${AS} -R -o low.o low.s + rm low.s + mv low.o ../low.o + +../Salloc.o: ../alloc.c + (echo "# define HOLE ${HOLE}"; cat ../alloc.c) > Salloc.c;\ + make Salloc.o; mv Salloc.o .. < /dev/null ; rm Salloc.c + +../Sdata.o: ../data.c + (echo "# define HOLE ${HOLE}"; cat ../data.c) > Sdata.c;\ + make Sdata.o; mv Sdata.o .. < /dev/null ; rm Sdata.c + +fixmask: fixmask.c + cc -O -o fixmask fixmask.c + +# rawlisp is the standard raw lisp system. + +rawlisp: fixmask fixpbig.e \ + ${BottomObj} ${NoHoleObj} ${MipObj4} ${VaxObj} + rm -f rawlisp + ld -noshare -nop0bufs -x -o rawlisp ${BottomObj} /lib/crt0.o \ + ${NoHoleObj} ${VaxObj} ${MipObj4} \ + /lib/fastexecp.o -lm -lc -ltermlib + ls -l rawlisp + + +# hlisp is a raw lisp system with a hole between text and data + +rawhlisp: fixmask fixpbig.e ${HBottomObj} ${HoleObj} ${MipObj4} ${VaxObj} + rm -f rawhlisp + ld -noshare -nop0bufs -x -o rawhlisp ${HBottomObj} \ + /lib/crt0.o ${HoleObj} \ + ${VaxObj} ${MipObj4} \ + /lib/fastexecp.o -lm -lc -ltermlib + ls -l rawhlisp + +hlowaux.o: ../lowaux.s + sed "s/holbeg:/holbeg: .space ${HOLE}/" <../lowaux.s >hlowaux.s + ${AS} -o hlowaux.o hlowaux.s + rm -f hlowaux.s + + +clean: + rm -f *.o + +lint: + lint h/*.h *.c + +install: nlisp + -rm -f ${ObjDir}/lisp + mv nlisp ${ObjDir}/lisp + @echo lisp installed + +nlisp: rawlisp ${LibDir} + -rm -f nlisp + (cd ${LibDir} ; make Liszt=${Liszt} required) + echo "(progn (setq build:map 'map \ + build:lisp-type 'franz \ + lisp-library-directory '${LibDir} \ + build:dir '${LibDir} \ + lisp-object-directory '${ObjDir}) \ + (load '${LibDir}/buildlisp)\ + (dumplisp nlisp))" | rawlisp + ${LibDir}/tackon map nlisp + @echo nlisp built + + +donlisp: + -rm -f nlisp + make LibDir=${LibDir} Liszt=${Liszt} ObjDir=${ObjDir} nlisp + +#--- snlisp: create a totally interpreted lisp. +# dump as snlisp +snlisp: rawlisp + echo "(progn (setq build:load t \ + build:lisp-type 'franz \ + build:dir '${LibDir} \ + lisp-object-directory '${ObjDir}\ + lisp-library-directory '${LibDir})\ + (load '${LibDir}/buildlisp)\ + (dumplisp snlisp))" | rawlisp + + +tags: + ctags $(VaxSrc) ${MipSrc} + +#--- copysource : copy source files to another directory +# called via make CopyTo=/xx/yyy/zz copysource +# +copysource: ${AllSrc} + (tar cf - ${AllSrc} | (cd ${CopyTo} ; tar xf -)) + +copyobjects: ${AllObj} + (tar cf - ${AllObj} | (cd ${CopyTo} ; tar xf -)) + +scriptcatall: ${AllSrc} + @../../scriptcat . franz/vax ${AllSrc} + @../../scriptcat .. franz ${Includes} + + +#--- prealloc.o: the "C" runtime startup for EUNICE with data structure +# preallocation and restart capabilities +# NFILES - # file descriptors of data structure to allocate +# RESTART - allow restart from saved image +# +prealloc.o: Makefile + /lib/cpp -DNFILES=20 -DRESTART /usr/include/eunice/prealloc.c prealloc.tm0 + /lib/ccom prealloc.tm0 prealloc.tm1 + /lib/c2 prealloc.tm1 prealloc.tm2 + sed -f /usr/include/eunice/sedfixup.e prealloc.tm3 + ${AS} -o prealloc.o prealloc.tm3 + rm prealloc.tm0 prealloc.tm1 prealloc.tm2 prealloc.tm3 + +totxtfile: totxtfile.c + cc -O totxtfile.c -o totxtfile