.SUFFIXES:
.SUFFIXES:	.o .p .c
GHSCO = acc -c -w -ga
GHSPO = apc -c -ga 
GHSLD = acc -o
GHSCS = acc -S -ga
GHSPS = apc -S -ga -w
GHSPD = apc -o
CCOBJS=  ccini.o ccdec.o ccexp.o cclst.o ccpro.o ccscn.o ccsta.o ccerr.o
PASOBJS= pasini.o pasdec.o pasexp.o paslst.o paspro.o passcn.o passta.o paserr.o
FOROBJS= forini.o fordec.o forexp.o forlst.o forpro.o forscn.o forsta.o forerr.o
PLMOBJS= plmini.o plmdec.o plmexp.o plmlst.o plmpro.o plmscn.o plmsta.o plmerr.o
INDEPOBJS=  indeplst.o indep.o indepopt.o indeploop.o indepcod.o indephost.o \
	    indeprt.o indepstab.o indepieee.o indephook.o
C32OBJS =  c32.o c32a.o c32b.o c32peep.o c32i.o c32p.o c32u.o c32case.o c32stab.o
C68OBJS =  c68.o c68a.o c68b.o c68case.o c68i.o c68p.o c68u.o c68eval.o c68stab.o \
		c68expr.o c68inst.o c68float.o c68c.o c68spell.o c68maci.o
C68MOBJS =  c68.o c68a.o c68b.o c68case.o c68i.o c68p.o c68eval.o c68stab.o \
		c68expr.o c68inst.o c68afp.o c68mac.o c68maci.o c68c.o
COBJS = c.o cpre.o cio.o ctype.o cp.o ca.o ci.o
VAXOBJS =  vax.o vaxa.o vaxb.o vaxpeep.o vaxi.o vaxp.o vaxu.o indeptarg.o
386OBJS =  386.o 386a.o 386b.o 386peep.o 386i.o 386p.o 386u.o indeptarg.o
FAIROBJS = fair.o faira.o fairb.o fairpeep.o fairi.o fairp.o fairu.o indeptarg.o
ACPOBJS =  acp.o acpa.o acpb.o acppeep.o acpi.o acpp.o acpu.o acpopt.o indeptarg.o

all:	ccom32 pcom32 fcom32 plmcom32 \
	ccomvax pcomvax fcomvax \
	ccomfair pcomfair fcomfair \
	ccomacp pcomacp fcomacp \
	ccom386 pcom386 fcom386 \
	ccom68 pcom68 fcom68 plmcom68 \
	pcomc ccomc fcomc

clean:
	rm -f ${CCOBJS} ${FOROBJS} ${PASOBJS} ${PLMOBJS} \
	${C32OBJS} ${C68OBJS} ${C68MOBJS} ${VAXOBJS} ${386OBJS} \
	${FAIROBJS} ${ACPOBJS} \
	ccom32 pcom32 fcom32 plmcom32 \
	ccomvax pcomvax fcomvax \
	ccomfair pcomfair fcomfair \
	ccomacp pcomacp fcomacp \
	ccom386 pcom386 fcom386 \
	ccom68 pcom68 fcom68 plmcom68

ccom32: types.h typesc32.h ${CCOBJS} ${INDEPOBJS} ${C32OBJS}
	wait;wait
	$(GHSLD) ccom32 ${CCOBJS} ${INDEPOBJS} ${C32OBJS}

pcom32: types.h typesc32.h ${PASOBJS} ${INDEPOBJS} ${C32OBJS}
	wait;wait
	$(GHSLD) pcom32 ${PASOBJS} ${INDEPOBJS} ${C32OBJS}

fcom32: types.h typesc32.h ${FOROBJS} ${INDEPOBJS} ${C32OBJS}
	wait;wait
	$(GHSLD) fcom32 ${FOROBJS} ${INDEPOBJS} ${C32OBJS}

plmcom32: types.h typesc32.h ${PLMOBJS} ${INDEPOBJS} ${C32OBJS}
	wait;wait
	$(GHSLD) plmcom32 ${PLMOBJS} ${INDEPOBJS} ${C32OBJS}

ccomvax: types.h typesvax.h ${CCOBJS} ${INDEPOBJS} ${VAXOBJS}
	wait;wait
	$(GHSLD) ccomvax ${CCOBJS} ${INDEPOBJS} ${VAXOBJS}

pcomvax: types.h typesvax.h ${PASOBJS} ${INDEPOBJS} ${VAXOBJS}
	wait;wait
	$(GHSLD) pcomvax ${PASOBJS} ${INDEPOBJS} ${VAXOBJS}

fcomvax: types.h typesvax.h ${FOROBJS} ${INDEPOBJS} ${VAXOBJS}
	wait;wait
	$(GHSLD) fcomvax ${FOROBJS} ${INDEPOBJS} ${VAXOBJS}

ccomfair: types.h typesfair.h ${CCOBJS} ${INDEPOBJS} ${FAIROBJS}
	wait;wait
	$(GHSLD) ccomfair ${CCOBJS} ${INDEPOBJS} ${FAIROBJS}

pcomfair: types.h typesfair.h ${PASOBJS} ${INDEPOBJS} ${FAIROBJS}
	wait;wait
	$(GHSLD) pcomfair ${PASOBJS} ${INDEPOBJS} ${FAIROBJS}

fcomfair: types.h typesfair.h ${FOROBJS} ${INDEPOBJS} ${FAIROBJS}
	wait;wait
	$(GHSLD) fcomfair ${FOROBJS} ${INDEPOBJS} ${FAIROBJS}

ccomacp: types.h typesacp.h ${CCOBJS} ${INDEPOBJS} ${ACPOBJS}
	wait;wait
	$(GHSLD) ccomacp ${CCOBJS} ${INDEPOBJS} ${ACPOBJS}

pcomacp: types.h typesacp.h ${PASOBJS} ${INDEPOBJS} ${ACPOBJS}
	wait;wait
	$(GHSLD) pcomacp ${PASOBJS} ${INDEPOBJS} ${ACPOBJS}

fcomacp: types.h typesacp.h ${FOROBJS} ${INDEPOBJS} ${ACPOBJS}
	wait;wait
	$(GHSLD) fcomacp ${FOROBJS} ${INDEPOBJS} ${ACPOBJS}

ccom386: types.h types386.h ${CCOBJS} ${INDEPOBJS} ${386OBJS}
	wait;wait
	$(GHSLD) ccom386 ${CCOBJS} ${INDEPOBJS} ${386OBJS}

pcom386: types.h types386.h ${PASOBJS} ${INDEPOBJS} ${386OBJS}
	wait;wait
	$(GHSLD) pcom386 ${PASOBJS} ${INDEPOBJS} ${386OBJS}

fcom386: types.h types386.h ${FOROBJS} ${INDEPOBJS} ${386OBJS}
	wait;wait
	$(GHSLD) fcom386 ${FOROBJS} ${INDEPOBJS} ${386OBJS}

ccom68: types.h typesc68.h ${CCOBJS} ${INDEPOBJS} ${C68OBJS}
	wait;wait
	$(GHSLD) ccom68 ${CCOBJS} ${INDEPOBJS} ${C68OBJS}

pcom68: types.h typesc68.h ${PASOBJS} ${INDEPOBJS} ${C68OBJS}
	wait;wait
	$(GHSLD) pcom68 ${PASOBJS} ${INDEPOBJS} ${C68OBJS}

fcom68: types.h typesc68.h ${FOROBJS} ${INDEPOBJS} ${C68OBJS}
	wait;wait
	$(GHSLD) fcom68 ${FOROBJS} ${INDEPOBJS} ${C68OBJS}

plmcom68: types.h typesc68.h ${PLMOBJS} ${INDEPOBJS} ${C68OBJS}
	wait;wait
	$(GHSLD) plmcom68 ${PLMOBJS} ${INDEPOBJS} ${C68OBJS}

ccomc: types.h typesc.h ${CCOBJS} ${INDEPOBJS} ${COBJS}
	wait;wait
	$(GHSLD) ccomc ${CCOBJS} ${INDEPOBJS} ${COBJS}

pcomc: types.h typesc.h ${PASOBJS} ${INDEPOBJS} ${COBJS}
	wait;wait
	$(GHSLD) pcomc ${PASOBJS} ${INDEPOBJS} ${COBJS}

fcomc: types.h typesc.h ${FOROBJS} ${INDEPOBJS} ${COBJS}
	wait;wait
	$(GHSLD) fcomc ${FOROBJS} ${INDEPOBJS} ${COBJS}

fprof:	${FOROBJS} ${INDEPOBJS} ${C32OBJS}
	wait;wait
	acc -p -o fcom32 ${FOROBJS} ${INDEPOBJS} ${C32OBJS}

.p.o:
	$(GHSPO) $*.p

.c.o:
	$(GHSCO) $*.c

typesc32.h:	indeptypes.h c32types.h
	cat indeptypes.h c32types.h > typesc32.h

typesfair.h:	indeptypes.h fairtypes.h indepddo.h
	cat indeptypes.h fairtypes.h indepddo.h > typesfair.h

typesvax.h:	indeptypes.h vaxtypes.h indepddo.h
	cat indeptypes.h vaxtypes.h indepddo.h > typesvax.h

typesacp.h:	indeptypes.h acptypes.h indepddo.h
	cat indeptypes.h acptypes.h indepddo.h > typesacp.h

typesc68.h:	indeptypes.h c68types.h
	cat indeptypes.h c68types.h > typesc68.h

typesc.h:     indeptypes.h ctypes.h
	cat indeptypes.h ctypes.h > typesc.h

types386.h:	indeptypes.h 386types.h indepddo.h
	cat indeptypes.h 386types.h indepddo.h > types386.h

types.h:	indeptypes.h indeptyp.h indepddo.h
	cat indeptypes.h indeptyp.h indepddo.h > types.h

ccerr.c: ccmak
	wait;wait
	ccmak

c68spell.c:	c68make
	wait;wait
	c68make

c68make:	c68make.p
	$(GHSPD) c68make c68make.p

ccmak:	ccmak.p
	$(GHSPD) ccmak ccmak.p

paserr.c: pasmak
	wait;wait
	pasmak

pasmak: pasmak.p
	$(GHSPD) pasmak pasmak.p

forerr.c: formak
	wait;wait
	formak

formak: formak.p
	$(GHSPD) formak formak.p

plmerr.c: plmmak
	wait;wait
	plmmak

plmmak: plmmak.p
	$(GHSPD) plmmak plmmak.p

installccom32: ccom32
	cp ccom32 /usr/newlib
	chmod a+rx /usr/newlib/ccom32

installpcom32: pcom32
	cp pcom32 /usr/newlib
	chmod a+rx /usr/newlib/pcom32

installfcom32: fcom32
	cp fcom32 /usr/newlib
	chmod a+rx /usr/newlib/fcom32

installplmcom32: plmcom32
	cp plmcom32 /usr/newlib
	chmod a+rx /usr/newlib/plmcom32
