OPTS=-g
CHARMC=../../../bin/charmc $(OPTS)

OBJS=megatest.o \
     groupring.o \
     nodering.o \
     varsizetest.o \
     groupcast.o \
     nodecast.o \
     synctest.o \
     fib.o \
     arrayring.o \
     tempotest.o \
     packtest.o \
     queens.o \
     migration.o \
     priomsg.o \
     priotest.o \
     templates.o

.SUFFIXES: .o .C .def.h .decl.h .ci .h

pgm: $(OBJS)
	$(CHARMC) -o pgm  $(OBJS) -language charm++

.C.o: 
	$(CHARMC) -c $<

megatest.h: megatest.decl.h

megatest.C: megatest.h megatest.def.h groupring.h nodering.h varsizetest.h groupcast.h nodecast.h synctest.h fib.h arrayring.h tempotest.h packtest.h queens.h migration.h priomsg.h priotest.h templates.h

groupring.h: groupring.decl.h

groupring.C: groupring.h groupring.def.h megatest.h

nodering.h: nodering.decl.h

nodering.C: nodering.h nodering.def.h megatest.h

varsizetest.h: varsizetest.decl.h

varsizetest.C: varsizetest.h varsizetest.def.h megatest.h

groupcast.h: groupcast.decl.h

groupcast.C: groupcast.h groupcast.def.h megatest.h

nodecast.h: nodecast.decl.h

nodecast.C: nodecast.h nodecast.def.h megatest.h

synctest.h: synctest.decl.h

synctest.C: synctest.h synctest.def.h megatest.h

fib.h: fib.decl.h

fib.C: fib.h fib.def.h megatest.h

arrayring.h: arrayring.decl.h

arrayring.C: arrayring.h arrayring.def.h megatest.h

tempotest.h: tempotest.decl.h

tempotest.C: tempotest.h tempotest.def.h megatest.h

packtest.h: packtest.decl.h

packtest.C: packtest.h packtest.def.h megatest.h

queens.h: queens.decl.h

queens.C: queens.h queens.def.h megatest.h

migration.h: migration.decl.h

migration.C: migration.h migration.def.h megatest.h

priomsg.h: priomsg.decl.h

priomsg.C: priomsg.h priomsg.def.h megatest.h

priotest.h: priotest.decl.h

priotest.C: priotest.h priotest.def.h megatest.h

templates.h: templates.decl.h

templates.C: templates.h templates.def.h megatest.h

.ci.decl.h:
	$(CHARMC) -c $<

.ci.def.h:
	$(CHARMC) -c $<

clean:
	rm -f conv-host pgm *.o *.decl.h *.def.h *.log *.sts *~ *.bak
