#$Header: Makefile,v 1.15 84/02/29 17:19:21 sklower Exp $
# Franz Lisp C coded kernel
# see ../../ReadMe for a explaination of what LibDir and CopyTo mean
# D is the directory used for holding intermediate files during
# 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
# if you change this you must recompile rlc.c
# (and change the value in ../Makefile)
MipSrc1
= ..
/low.c ..
/lowaux.s
MipSrc2
= ..
/alloc.c ..
/data.c
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\
..
/subbig.c ..
/pbignum.c ..
/divbig.c \
..
/trace.c ..
/evalf.c ..
/frame.c ..
/lamgc.c
MipSrc
= ${MipSrc1} ${MipSrc2} ${MipSrc3} ${MipSrc4}
MipObj1
= ..
/lowaux.o ..
/low.o
MipObj2
= ..
/alloc.o ..
/data.o
HoleMipObj2
= ..
/Salloc.o ..
/Sdata.o
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\
..
/subbig.o ..
/pbignum.o ..
/divbig.o \
..
/trace.o ..
/evalf.o ..
/frame.o ..
/lamgc.o
# The order of loading of certain files is important.
# lowaux.o must be first and low.o second.
# Different objects are required depending on whether there is to be
# a hole between text and data space.
NoHoleObj
= /lib
/crt0.o
${MipObj2}
HoleObj
= /lib
/hcrt0.o
${HoleMipObj2} ${HoleMipObj3}
M68kASrc
= callg.s dmlad.s ediv.s emul.s hack.s \
M68kCSrc
= 68k.c adbig.c calqhat.c dodiv.c dsmult.c \
exarith.c fixbits.c inewint.c \
mlsb.c mulbig.c nargs.c suncore.c
M68kSrc
= ${M68kCSrc} ${M68kASrc}
M68kObj
= 68k.o adbig.o callg.o calqhat.o dmlad.o dodiv.o dsmult.o \
ediv.o emul.o exarith.o fixbits.o hack.o inewint.o \
mlsb.o mulbig.o nargs.o qfuncl.o
AllSrc
= $(M68kSrc
) Makefile first8.c fixregs.sed
Libs
= -lcore
-lsunwindow
-lpixrect
# on non-ucb systems it might be more
# polite to use temporary files rather than pipes
# ./first8.out < $< > $*.t; as -o $*.o $*.t; rm $*.t
# /lib/cpp -I../h $*.c | /lib/xcomp |\
# sed -f fixregs.sed > /tmp/x.s; as -o $*.o /tmp/x.s
mv
`basename $*.o` x
; mv x
$*.o
cc -c
$(CFLAGS
) -DHOLE
=${HOLE} ..
/rlc.c
(echo
"# define HOLE"; cat ..
/alloc.c
) > Salloc.c
;\
make Salloc.o
; mv Salloc.o ..
< /dev
/null
; rm Salloc.c
(echo
"# define HOLE"; cat ..
/data.c
) > Sdata.c
;\
make Sdata.o
; mv Sdata.o ..
< /dev
/null
; rm Sdata.c
cc -I..
/h first8.c
-o first8.out
cc -S
$(CFLAGS
) ..
/low.c
; sed
's/data$$/text/' < low.s
> Low.s
as -o ..
/low.o Low.s
; rm Low.s low.s
#qfuncl.o: qfuncl.c first8.out
# cc -E $(CFLAGS) ${ProfFlag2} qfuncl.c |\
# ./first8.out | sed 's/^#/|/' > qfuncl.s
# as -o qfuncl.o qfuncl.s
cc -I..
/h
-E
${ProfFlag2} qfuncl.c
> x.s
; as -o qfuncl.o x.s
; rm x.s
# rawlisp is the standard raw lisp system.
rawlisp
: ${BottomObj} ${NoHoleObj} ${MipObj4} ${M68kObj} ${OsObjs}
ld $N -x
-o rawlisp
-e start
${BottomObj} ${NoHoleObj} \
${M68kObj} ${MipObj4} ${OsObjs} \
${Libs} -ltermcap
-lm
-lc
# hlisp is a raw lisp system with a hole between text and data
rawhlisp
: ${BottomObj} ${HoleObj} ${MipObj4} ${M68kObj} ${OsObjs}
ld -x
-H
${HOLE} -o rawhlisp
-e hstart
${BottomObj} ${HoleObj} \
${M68kObj} ${MipObj4} ${OsObjs} \
${Libs} -ltermcap
-lm
-lc
rm -f
*.o rawlisp rawhlisp nlisp snlisp
(cd
${LibDir} ; make Liszt
=${Liszt} required
)
echo
"(progn (setq build:map 'map \
lisp-library-directory '${LibDir} \
lisp-object-directory '${ObjDir}) \
(load '${LibDir}/buildlisp)\
(dumplisp nlisp))" | .
/rawlisp
${LibDir}/tackon map nlisp
make LibDir
=${LibDir} Liszt
=${Liszt} ObjDir
=${ObjDir} nlisp
#--- snlisp: create a totally interpreted lisp.
echo
"(progn (setq build:load t \
lisp-object-directory '${ObjDir}\
lisp-library-directory '${LibDir})\
(load '${LibDir}/buildlisp)\
(dumplisp snlisp))" | rawlisp
tags: tags ${M68kCSrc} ${MipSrc}
ctags ..
/h
/*.h
$(M68kCSrc
) ${MipSrc}
#--- copysource : copy source files to another directory
# called via make CopyTo=/xx/yyy/zz copysource
(tar cf
- ${AllSrc} |
(cd
${CopyTo} ; tar xf
-))
(tar cf
- ${AllObj} |
(cd
${CopyTo} ; tar xf
-))
@..
/..
/scriptcat . franz
/68k
${AllSrc} tags