.SUFFIXES:	.o .V .vms .OBJ .OBJM .b .p .c
# Naming conventions*
# Pick one from each column
# Language	Target	Host	Profiling	
# ccom		c68	 
# fcom		c68l	V	p
# plmcom	c68m	vms	
# pcom		vax	obj	
# 		c16	b
#		c86	DOS
#		fair
# Not all combinations are implemented.
# Note that a blank under Target is the same as c68
# and that c68 is the same as c68/Unix
# V leaves .V files in the directory for System V and 4.1
# vms leaves .vms files 
# obj leaves .OBJ files
# b leaves .b files
# DOS is intended to leave MSDOS binary files.
# What is needed is a shell script running on top of this.
CFLAGS =	-O
C68 = c68.o c68a.o c68b.o c68case.o c68eval.o\
      c68i.o c68p.o 
C68b = c68.b c68a.b c68b.b c68case.b c68eval.b\
      c68i.b c68p.b 
C68m = c68.OBJM c68a.OBJM c68b.OBJM c68case.OBJM \
	c68eval.OBJM\
      c68i.OBJM c68p.OBJM 
C68l = c68.OBJ c68a.OBJ c68b.OBJ c68case.OBJ \
	c68eval.OBJ\
      c68i.OBJ c68p.OBJ 

C68C = c68c.o
C68Cb = c68c.b
C68Cm = c68c.OBJM
C68Cl = c68c.OBJ

C68PLM = c68plm.o

C68LISA = c68lisa.o c68afp.o
C68LISAm = c68lisa.OBJM c68afp.OBJM
C68LISAl = c68lisa.OBJ c68afp.OBJ

C68MIT = c68u.o c68stab.o c68newv.o
C68MITb = c68u.b c68newv.b
C68MITA = c68u.o c68afp.o c68stab.o

C68MOTOROLA = c68m.o c68newv.o c68nostab.o

C16 = c16.o c16a.o c16b.o c16c.o c16case.o c16i.o c16p.o c16stab.o c16u.o

INDEPS = cindep.o indep.o loops.o optimizer.o \
	 eops.o convert.o strings.o floathook.o \
	 floatinter.o vaxdfloat.o interface.o runtime.o \
	 timeapple.o indeplst.o unixhost.o

INDEPSb = cindep.b indep.b loops.b optimizer.b \
	 unixhost.b eops.b convert.b strings.b floathook.b \
	 floatinter.b vaxdfloat.b interface.b runtime.b \
	 timeapple.b indeplst.b

INDEPSm = cindep.OBJM indep.OBJM loops.OBJM \
	optimizer.OBJM \
	 unixhost.OBJM lisartc.OBJM \
	 sanehook.OBJM \
	 runtime.OBJM \
	 indeplst.OBJM

INDEPSl = cindep.OBJ indep.OBJ loops.OBJ \
	optimizer.OBJ \
	 unixhost.OBJ lisartc.OBJ \
	 sanehook.OBJ \
	 runtime.OBJ \
	 indeplst.OBJ

C = ccdec.o ccexp.o ccini.o cclst.o ccpro.o ccscn.o ccsta.o ccerr.o
Cb = ccdec.b ccexp.b ccini.b cclst.b ccpro.b ccscn.b ccsta.b ccerr.b
Cm = ccdec.OBJM ccexp.OBJM ccini.OBJM cclst.OBJM \
	ccpro.OBJM ccscn.OBJM ccsta.OBJM ccerr.OBJM
Cl = ccdec.OBJ ccexp.OBJ ccini.OBJ cclst.OBJ \
	ccpro.OBJ ccscn.OBJ ccsta.OBJ ccerr.OBJ

FOR = fordec.o forexp.o forini.o forlst.o forpro.o forscn.o forsta.o forerr.o
FORb = fordec.b forexp.b forini.b forlst.b forpro.b \
	forscn.b forsta.b forerr.b

PAS = pasdec.o pasexp.o pasini.o paslst.o paspro.o passcn.o passta.o paserr.o
PASl = pasdec.OBJ pasexp.OBJ pasini.OBJ paslst.OBJ paspro.OBJ \
	passcn.OBJ passta.OBJ paserr.OBJ
PASb = pasdec.b pasexp.b pasini.b paslst.b paspro.b passcn.b passta.b paserr.b

PLM = plmdec.o plmexp.o plmini.o plmlst.o plmpro.o plmscn.o plmsta.o plmerr.o

VAX = vax.o vaxa.o vaxb.o vaxi.o vaxp.o vaxstab.o vaxu.o

.p.V:	
	csh XpcomV $<

.c.V:	
	csh XccomV $<

.p.OBJ:	
	csh Xpcoml $<

.c.OBJ:	
	csh Xccoml $<

.p.o:	
	csh Xpcom $<

.c.o:	
	csh Xccom $<

.p.OBJM:	
	csh Xpcomm $<

.c.OBJM:	
	csh Xccomm $<

.p.b:	
	csh Xpcom68 $<

.c.b:	
	csh Xccom68 $<

.p.vms:	
	csh Xpvms $<

.c.vms:	
	csh Xcvms $<

typesc16.h:	basictypes.h c16types.h
	cat basictypes.h c16types.h > typesc16.h

typesc68.h:	basictypes.h c68types.h
	cat basictypes.h c68types.h > typesc68.h

typesvax.h:	basictypes.h vaxtypes.h
	cat basictypes.h vaxtypes.h > typesvax.h

all:	$(C68) $(C68C) $(C68PLM) $(C68LISA) $(C68MIT) $(C68MOTOROLA) $(C16)\
	$(INDEPS) $(C) $(FOR) $(PAS) $(PLM) $(VAX)

pcom68b:	$(C68b) $(C68Cb) $(C68MITb) $(INDEPSb) $(PASb)
pcom68:	$(C68) $(C68C) $(C68MIT) $(INDEPS) $(PAS)
	cc -o pcom68 $(C68) $(C68C) $(C68MIT) $(INDEPS) $(PAS)
pcom68m:	$(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(PAS)
	cc -o pcom68m $(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(PAS)
ccom68m:	$(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(C)
	cc -o ccom68m $(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(C)
Vccom68m:	$(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(C)
	cc -o Vccom68m -s -N $(C68) $(C68C) $(C68MOTOROLA) $(INDEPS) $(C)
ccom68b:	$(C68b) $(C68Cb) $(C68MITb) $(INDEPSb) $(Cb)
ccom68:	$(C68) $(C68C) $(C68MIT) $(INDEPS) $(C)
	cc -o ccom68 $(C68) $(C68C) $(C68MIT) $(INDEPS) $(C)
Vccom68:	$(C68) $(C68C) $(C68MIT) $(INDEPS) $(C)
	cc -o Vccom68 -s -N $(C68) $(C68C) $(C68MIT) $(INDEPS) $(C)
ccom68a:	$(C68) $(C68C) $(C68MITA) $(INDEPS) $(C)
	cc -o ccom68a $(C68) $(C68C) $(C68MITA) $(INDEPS) $(C)
pcoml:	$(C68) $(C68C) $(C68LISA) $(INDEPS) $(PAS)
	cc -o pcoml $(C68) $(C68C) $(C68LISA) $(INDEPS) $(PAS)
ccoml:	$(C68) $(C68C) $(C68LISA) $(INDEPS) $(C)
	cc -o ccoml $(C68) $(C68C) $(C68LISA) $(INDEPS) $(C)
fcom68:	$(C68) $(C68C) $(C68MIT) $(INDEPS) $(FOR)
	cc -o fcom68 $(C68) $(C68C) $(C68MIT) $(INDEPS) $(FOR)
fcom68b:	$(C68b) $(C68Cb) $(C68MITb) $(INDEPSb) $(FORb)
ccomobjm:	$(C68m) $(C68Cm) $(C68LISAm) $(INDEPSm) $(Cm)
ccomobj:	$(C68l) $(C68Cl) $(C68LISAl) $(INDEPSl) $(Cl)
pcomobj:	$(C68l) $(C68Cl) $(C68LISAl) $(INDEPSl) $(PASl)
