# @(#)makefile	1.5
#
#	Harvard Lisp Makefile for UCB Installations
#

# NOTE:	If you change LIBDIR you will also have to change the strings around
# line 184 in dstuf.m11

DESTDIR=
BINDIR=		/usr/new/lisp11
LIBDIR=		/usr/new/lib/lisp11
SEPFLAG=	-i

M11FLAGS=	-xs:3
L11FLAGS=	-ls ${SEPFLAG}
M11=		/usr/new/m11
L11=		/usr/new/l11 ${L11FLAGS}

ERRFILE=	lisp.err
SYSLIB=		sysmac.sml

HDRS=		headr.m11 foodate.m11
GLOBALS=	lglob.m11 sparm.m11 macro.m11
SYSEND=		syss.m11 gcol.m11 now.m11 fp.m11 noroom.m11 sysend.m11
PROBEND=	prob7.m11 prob8.m11 ctable.m11 probend.m11
EARLY=		dstuf.m11 atdat.m11 subr.m11 subrcom.m11 early.m11

SRCS=		${GLOBALS} ${SYSEND} ${HEADERMFILES}\
		${PROBEND} ${EARLY} filler.m11
OBJS=		sysend.obj headr.obj probend.obj early.obj

all: lisp.out

lisp.out: ${OBJS} ${SYSMACROS}
	${L11} ${OBJS} -na:$@

sysend.obj: ${SYSEND} ${GLOBALS}
	${M11} ${M11FLAGS} ${GLOBALS} ${SYSEND} -na:$@

headr.obj: ${HEADERMFILES} ${SYSLIB} ${GLOBALS}
	${M11} -ns sparm.m11 ${HEADERMFILES} -na:$@
	rm foodate.m11

probend.obj: ${PROBEND} ${SYSLIB} ${GLOBALS}
	${M11} -xs:2 ${GLOBALS} ${PROBEND} -na:$@

early.obj: ${EARLY} ${SYSLIB} ${GLOBALS}
	${M11} ${M11FLAGS} ${GLOBALS} ${EARLY} -na:$@

foodate.m11:
	date | sed "s/.*/	makdate	<&>/" > foodate.m11

#
#	Make errfile and put the rest in the cannonical places
#

install: ${ERRFILE} ${LIBDIR} lisp
	install lisp ${BINDIR}

${LIBDIR}:
	mkdir ${DESTDIR}${LIBDIR}
	chmod 755 ${DESTDIR}${LIBDIR}
	for i in ../lib/*; do \
		install -m 644 $$i ${DESTDIR}${LIBDIR}; \
	done

${ERRFILE}: lisp.out ${LIBDIR}
	./lisp.out -  < /dev/null
	chmod 0644 ${LIBDIR}/${ERRFILE}

#
#	Preload built in functions and save runnable copy
#	in the cannonical place
#
lisp: lisp.out preload.lisp ${LIBDIR}
	./lisp.out < preload.lisp
	mv code lisp

clean:
	rm -f *.map *.obj *.errs *.out code lisp