# $Header: Makefile,v 1.15 85/05/06 18:12:34 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
= ..
/low.o ..
/lowaux.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
# 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.
# The order of loading of certain files is important.
# low.o must be first and lowaux second.
# Different objects are required depending on whether there is to be
# a hole between text and data space.
NoHoleObj
= crt0.o
${MipObj2}
HoleObj
= hcrt0.o
${HoleMipObj2} ${HoleMipObj3}
VaxObj
= bigmath.o qfuncl.o vax.o malloc.o
VaxASrc
= bigmath.c qfuncl.c crt0.s hcrt0.s
VaxSrc
= ${VaxASrc} ${VaxCSrc}
Eunice
= Make.vms Make.uobj rawlisp.unx rawhlisp.unx hole.unx totxtfile.c
AllSrc
= Makefile fixmask.c fixpbig.e
${VaxSrc} ${Eunice} ${MipSrc}
# on non-ucb systems it might be more
# polite to use temporary files rather than pipes
@csh
-cfe
"echo cc -c $*.c;\
/lib/ccom ${ProfFlag} | fixmask |\
# add -DPROF if you want to profile the assembler code
cc -I../h -E ${ProfFlag2} qfuncl.c | as -o qfuncl.o
cc -I../h -E ${ProfFlag2} bigmath.c | as -o bigmath.o
cc -c -O -DHOLE=${HOLE} ../rlc.c
(echo "# define HOLE ${HOLE}"; cat ../alloc.c) > Salloc.c;\
make Salloc.o
; mv Salloc.o ..
< /dev
/null
; rm Salloc.c
(echo
"# define HOLE ${HOLE}"; cat ..
/data.c
) > Sdata.c
;\
make Sdata.o
; mv Sdata.o ..
< /dev
/null
; rm Sdata.c
cc -O
-o fixmask fixmask.c
# rawlisp is the standard raw lisp system.
rawlisp
: fixmask fixpbig.e
${BottomObj} ${NoHoleObj} ${MipObj4} ${VaxObj}
ld -x
-o rawlisp
-e start
${BottomObj} ${NoHoleObj} \
${VaxObj} ${MipObj4} -lm
-lc
-ltermlib
# hlisp is a raw lisp system with a hole between text and data
rawhlisp
: fixmask fixpbig.e
${BottomObj} ${HoleObj} ${MipObj4} ${VaxObj}
ld -x
-H
${HOLE} -o rawhlisp
-e hstart
${BottomObj} ${HoleObj} \
${VaxObj} ${MipObj4} -lm
-lc
-ltermlib
rm -f
*.o rawlisp nlisp rawhlisp
tags: tags ${VaxSrc} ${MipSrc}
ctags ..
/h
/*.h
${VaxCSrc} ${MipSrc}
(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
#--- 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
/vax
${AllSrc} tags