MACHINE = SUN3
#	Select 'VAX', 'SUN', 'SUN2R3', 'SUN3', 'ISI', 'SEQ', 'IBMRT',
#	or 'NEWS'.


HDIR	= ../h
ODIR	= ../o
LSPDIR	= ../lsp
CMPDIR	= ../cmpnew
PORTDIR	= ../unixport
SIMDIR  = /usr/connect


DEFS	= -D$(MACHINE) -DMAXPAGE=16384 -DVSSIZE=8152
CFLAGS	= -c $(DEFS) -I$(HDIR)

LIBS	= -lm


OBJS	= $(ODIR)/main.o $(ODIR)/alloc.o $(ODIR)/gbc.o \
	$(ODIR)/bitop.o $(ODIR)/typespec.o $(ODIR)/eval.o \
	$(ODIR)/macros.o $(ODIR)/lex.o $(ODIR)/bds.o \
	$(ODIR)/frame.o $(ODIR)/predicate.o $(ODIR)/reference.o \
	$(ODIR)/assignment.o $(ODIR)/bind.o $(ODIR)/let.o \
	$(ODIR)/conditional.o $(ODIR)/block.o $(ODIR)/iteration.o \
	$(ODIR)/mapfun.o $(ODIR)/prog.o $(ODIR)/multival.o \
	$(ODIR)/catch.o $(ODIR)/symbol.o $(ODIR)/cfun.o \
	$(ODIR)/cmpaux.o $(ODIR)/package.o $(ODIR)/big.o \
	$(ODIR)/number.o $(ODIR)/num_pred.o $(ODIR)/num_comp.o \
	$(ODIR)/num_arith.o $(ODIR)/num_sfun.o $(ODIR)/num_co.o \
	$(ODIR)/num_log.o $(ODIR)/num_rand.o $(ODIR)/earith.o \
	$(ODIR)/character.o $(ODIR)/char_table.o $(ODIR)/sequence.o \
	$(ODIR)/list.o $(ODIR)/hash.o $(ODIR)/array.o \
	$(ODIR)/string.o $(ODIR)/structure.o $(ODIR)/toplevel.o \
	$(ODIR)/file.o $(ODIR)/read.o $(ODIR)/backq.o \
	$(ODIR)/print.o $(ODIR)/format.o $(ODIR)/pathname.o \
	$(ODIR)/unixfsys.o $(ODIR)/unixfasl.o $(ODIR)/error.o \
	$(ODIR)/unixtime.o $(ODIR)/unixsys.o $(ODIR)/unixsave.o \
	$(ODIR)/unixint.o

LSPOBJS	= $(LSPDIR)/defmacro.o $(LSPDIR)/evalmacros.o $(LSPDIR)/top.o \
	$(LSPDIR)/module.o $(LSPDIR)/predlib.o $(LSPDIR)/setf.o \
	$(LSPDIR)/arraylib.o $(LSPDIR)/assert.o $(LSPDIR)/defstruct.o \
	$(LSPDIR)/describe.o $(LSPDIR)/iolib.o $(LSPDIR)/listlib.o \
	$(LSPDIR)/mislib.o $(LSPDIR)/numlib.o $(LSPDIR)/packlib.o \
	$(LSPDIR)/seq.o $(LSPDIR)/seqlib.o $(LSPDIR)/trace.o

CMPOBJS	= $(CMPDIR)/cmpinline.o $(CMPDIR)/cmputil.o $(CMPDIR)/cmptype.o \
	$(CMPDIR)/cmpbind.o $(CMPDIR)/cmpblock.o $(CMPDIR)/cmpcall.o \
	$(CMPDIR)/cmpcatch.o $(CMPDIR)/cmpenv.o $(CMPDIR)/cmpeval.o \
	$(CMPDIR)/cmpflet.o $(CMPDIR)/cmpfun.o $(CMPDIR)/cmpif.o \
	$(CMPDIR)/cmplabel.o $(CMPDIR)/cmplam.o $(CMPDIR)/cmplet.o \
	$(CMPDIR)/cmploc.o $(CMPDIR)/cmpmap.o $(CMPDIR)/cmpmulti.o \
	$(CMPDIR)/cmpspecial.o $(CMPDIR)/cmptag.o $(CMPDIR)/cmptop.o \
	$(CMPDIR)/cmpvar.o $(CMPDIR)/cmpvs.o $(CMPDIR)/cmpwt.o



saved_kcl:	raw_kcl init_kcl.lsp \
		$(LSPDIR)/setdoc.lsp \
		$(CMPDIR)/cmpmain.lsp \
		$(CMPDIR)/lfun_list.lsp \
		$(CMPDIR)/cmpopt.lsp
	raw_kcl $(PORTDIR)/ < init_kcl.lsp

raw_kcl:	$(OBJS) sys_kcl.o $(LSPOBJS) $(CMPOBJS)
	cc -o raw_kcl $(OBJS) sys_kcl.o $(LSPOBJS) $(CMPOBJS) $(LIBS)

saved_kclsim:	raw_kclsim init_kclsim.lsp defsimulator.lsp \
		$(LSPDIR)/setdoc.lsp \
		$(CMPDIR)/cmpmain.lsp \
		$(CMPDIR)/lfun_list.lsp \
		$(CMPDIR)/cmpopt.lsp
	raw_kclsim $(PORTDIR)/ < init_kclsim.lsp

raw_kclsim:	$(OBJS) sys_kcl.o $(LSPOBJS) $(CMPOBJS) simulator.o
	cc -o raw_kclsim $(OBJS) sys_kcl.o $(LSPOBJS) $(CMPOBJS) simulator.o $(LIBS)

simulator.o: $(SIMDIR)/lib/sim.o $(SIMDIR)/lib/simalone.o
	$(SIMDIR)/bin/makesim -R -o simulator.o

sys_kcl.o:	sys_kcl.c
	cc $(CFLAGS) sys_kcl.c


clean:
	rm -f saved_kclsim saved_kcl raw_kcl *.o core a.out




