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

CHTAB	= mips_chtab.s
#	Select 
#	1) char_table.s : for VAX, SEQ and NEWS
#	2) sun_chtab.s  : for SUN, SUN2R3 and SUN3
#	3) isi_chtab.s  : for ISI
#	4) ibmrt_chtab.s: for IBMRT
#       5) mips_chtab.s : for DS3100

EARITH  = mipsearith.s
#	This is the file containing the extended arithmetic operations
#	This can be either a '.c' file or a '.s' file depending on
#	whether the code is written in 'C' or in assembly language.
#       Select
#       1) mipsearith.s : for DS3100
#	2) earith.c : for other machines

EARITHOFILE = mipsearith.o
#	This is the object file corresponding to  $(EARITH)
#       Select
#       1) mipsearith.o : for DS3100
#	2) earith.o : for other machines

HDIR	= ../h
CDIR	= ../c


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


DPP	= ../bin/dpp


HFILES	= $(HDIR)/include.h \
	$(HDIR)/object.h $(HDIR)/vs.h $(HDIR)/symbol.h $(HDIR)/bds.h \
	$(HDIR)/frame.h $(HDIR)/lex.h $(HDIR)/eval.h $(HDIR)/external.h \
	$(HDIR)/rgbc.h

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


all:	$(OBJS)

clean:
	rm -f $(OBJS)


char_table.o: $(CDIR)/$(CHTAB)
	as $(CDIR)/$(CHTAB) -o char_table.o

character.o:	$(CDIR)/character.d $(DPP)
	$(DPP) $(CDIR)/character
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/character.c
	rm $(CDIR)/character.c
file.o:	$(CDIR)/file.d $(DPP)
	$(DPP) $(CDIR)/file
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/file.c
	rm $(CDIR)/file.c
hash.o:	$(CDIR)/hash.d $(DPP)
	$(DPP) $(CDIR)/hash
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/hash.c
	rm $(CDIR)/hash.c
list.o:	$(CDIR)/list.d $(DPP)
	$(DPP) $(CDIR)/list
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/list.c
	rm $(CDIR)/list.c
package.o:	$(CDIR)/package.d $(DPP)
	$(DPP) $(CDIR)/package
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/package.c
	rm $(CDIR)/package.c
pathname.o:	$(CDIR)/pathname.d $(DPP)
	$(DPP) $(CDIR)/pathname
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/pathname.c
	rm $(CDIR)/pathname.c
print.o:	$(CDIR)/print.d $(DPP)
	$(DPP) $(CDIR)/print
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/print.c
	rm $(CDIR)/print.c
read.o:	$(CDIR)/read.d $(DPP)
	$(DPP) $(CDIR)/read
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/read.c
	rm $(CDIR)/read.c
sequence.o:	$(CDIR)/sequence.d $(DPP)
	$(DPP) $(CDIR)/sequence
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/sequence.c
	rm $(CDIR)/sequence.c
string.o:	$(CDIR)/string.d $(DPP)
	$(DPP) $(CDIR)/string
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/string.c
	rm $(CDIR)/string.c
symbol.o:	$(CDIR)/symbol.d $(DPP)
	$(DPP) $(CDIR)/symbol
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/symbol.c
	rm $(CDIR)/symbol.c

alloc.o:	$(CDIR)/alloc.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/alloc.c
array.o:	$(CDIR)/array.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/array.c
assignment.o:	$(CDIR)/assignment.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/assignment.c
backq.o:	$(CDIR)/backq.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/backq.c
bds.o:	$(CDIR)/bds.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/bds.c
big.o:	$(CDIR)/big.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/big.c
bind.o:	$(CDIR)/bind.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/bind.c
bitop.o:	$(CDIR)/bitop.c
	cc -c $(CFLAGS) $(CDIR)/bitop.c
block.o:	$(CDIR)/block.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/block.c
catch.o:	$(CDIR)/catch.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/catch.c
cfun.o:	$(CDIR)/cfun.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/cfun.c
cmpaux.o:	$(CDIR)/cmpaux.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/cmpaux.c
conditional.o:	$(CDIR)/conditional.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/conditional.c
$(EARITHOFILE):	$(CDIR)/$(EARITH)
	cc -c $(CFLAGS) $(CDIR)/$(EARITH)
error.o:	$(CDIR)/error.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/error.c
eval.o:	$(CDIR)/eval.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/eval.c
format.o:	$(CDIR)/format.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/format.c
frame.o:	$(CDIR)/frame.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/frame.c
gbc.o:	$(CDIR)/gbc.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/gbc.c
iteration.o:	$(CDIR)/iteration.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/iteration.c
let.o:	$(CDIR)/let.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/let.c
lex.o:	$(CDIR)/lex.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/lex.c
macros.o:	$(CDIR)/macros.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/macros.c
main.o:	$(CDIR)/main.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/main.c
mapfun.o:	$(CDIR)/mapfun.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/mapfun.c
multival.o:	$(CDIR)/multival.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/multival.c
num_arith.o:	$(CDIR)/num_arith.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_arith.c
num_co.o:	$(CDIR)/num_co.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_co.c
num_comp.o:	$(CDIR)/num_comp.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_comp.c
num_log.o:	$(CDIR)/num_log.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_log.c
num_pred.o:	$(CDIR)/num_pred.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_pred.c
num_rand.o:	$(CDIR)/num_rand.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_rand.c
num_sfun.o:	$(CDIR)/num_sfun.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/num_sfun.c
number.o:	$(CDIR)/number.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/number.c
predicate.o:	$(CDIR)/predicate.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/predicate.c
prog.o:	$(CDIR)/prog.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/prog.c
reference.o:	$(CDIR)/reference.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/reference.c
structure.o:	$(CDIR)/structure.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/structure.c
toplevel.o:	$(CDIR)/toplevel.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/toplevel.c
typespec.o:	$(CDIR)/typespec.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/typespec.c
unixfasl.o:	$(CDIR)/unixfasl.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixfasl.c
unixfsys.o:	$(CDIR)/unixfsys.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixfsys.c
unixint.o:	$(CDIR)/unixint.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixint.c
unixsave.o:	$(CDIR)/unixsave.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixsave.c
unixsys.o:	$(CDIR)/unixsys.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixsys.c
unixtime.o:	$(CDIR)/unixtime.c
	cc -c $(OFLAG) $(CFLAGS) $(CDIR)/unixtime.c


character.o: $(HFILES)
file.o:	$(HFILES)
hash.o: $(HFILES)
list.o:	$(HFILES)
package.o: $(HFILES)
pathname.o: $(HFILES)
print.o: $(HFILES)
read.o: $(HFILES)
sequence.o: $(HFILES)
string.o: $(HFILES)
symbol.o: $(HFILES)

alloc.o: $(HFILES)
array.o: $(HFILES)
assignment.o: $(HFILES)
backq.o: $(HFILES)
bds.o: $(HFILES)
big.o: $(HFILES)
bind.o: $(HFILES)
bitop.o: $(HFILES)
block.o: $(HFILES)
catch.o: $(HFILES)
cfun.o: $(HFILES)
cmpaux.o: $(HFILES)
conditional.o: $(HFILES)
$(EARITHOFILE): $(HFILES)
error.o: $(HFILES)
eval.o: $(HFILES)
format.o: $(HFILES)
frame.o: $(HFILES)
gbc.o: $(HFILES)
interrupt.o: $(HFILES)
iteration.o: $(HFILES)
let.o: $(HFILES)
lex.o: $(HFILES)
macros.o: $(HFILES)
main.o: $(HFILES)
mapfun.o: $(HFILES)
multival.o: $(HFILES)
num_arith.o: $(HFILES) $(HDIR)/num_include.h
num_co.o: $(HFILES) $(HDIR)/num_include.h
num_comp.o: $(HFILES) $(HDIR)/num_include.h
num_log.o: $(HFILES) $(HDIR)/num_include.h
num_pred.o: $(HFILES) $(HDIR)/num_include.h
num_rand.o: $(HFILES) $(HDIR)/num_include.h
num_sfun.o: $(HFILES) $(HDIR)/num_include.h
number.o: $(HFILES) $(HDIR)/num_include.h
predicate.o: $(HFILES)
prog.o: $(HFILES)
reference.o: $(HFILES)
structure.o: $(HFILES)
toplevel.o: $(HFILES)
typespec.o: $(HFILES)
unixfasl.o: $(HFILES)
unixfsys.o: $(HFILES)
unixint.o: $(HFILES)
unixsave.o: $(HFILES)
unixsys.o: $(HFILES)
unixtime.o: $(HFILES)

