# Default charmc options 
# - changes to be passed in via simulation makefiles 
# **************************************************
CDIR=../../../..
CHARMINC=$(CDIR)/include
CHARMBIN=$(CDIR)/bin
CHARMC=$(CDIR)/bin/charmc $(OPTS)
POSEINCDIR = $(CHARMINC)/pose

# POSE object definitions - DO NOT MODIFY
#***********************************
OBJECTS=	eventID.o stats.o srtable.o cancel.o mempool.o \
		pvtobj.o lbObject.o ldbal.o gvt.o event.o eqheap.o \
		evq.o sim.o rep.o strat.o seq.o cons.o opt.o opt2.o opt3.o \
		spec.o adapt.o adapt2.o adapt3.o adapt4.o pose.o
SEQOBJECTS=     $(OBJECTS:.o=.seq.o)

LIB = libmodulepose.a
SEQLIB = libmoduleseqpose.a
LIBDEST =  $(CDIR)/lib/$(LIB)
LIBSEQDEST =  $(CDIR)/lib/$(SEQLIB)
CIFILES = mempool.def.h gvt.def.h ldbal.def.h pose.def.h sim.def.h stats.def.h

# POSE LIBRARY GENERATION RULES -
# DO NOT MODIFY
# *******************************

all:  $(LIBDEST) $(LIBSEQDEST)

.PHONY:  pose seqpose

pose: $(LIBDEST)

seqpose:  $(LIBSEQDEST) 

$(LIBDEST):	$(OBJECTS)
	$(CHARMC) -o $(LIBDEST) $(OBJECTS)
	test ! -d $(POSEINCDIR) && mkdir $(POSEINCDIR) || true
	/bin/cp -f  *.h $(POSEINCDIR)
	/bin/cp libmodulepose.dep $(CDIR)/lib/.
	/bin/cp -f  etrans.pl $(CHARMBIN)

$(LIBSEQDEST):	$(SEQOBJECTS)
	$(CHARMC) -o $(LIBSEQDEST) $(SEQOBJECTS)
	test ! -d $(POSEINCDIR) && mkdir $(POSEINCDIR) || true
	/bin/cp -f  *.h $(POSEINCDIR)
	/bin/cp libmodulepose.dep $(CDIR)/lib/libmoduleseqpose.dep
	/bin/cp -f  etrans.pl $(CHARMBIN)

# POSE COMPILATION RULES 
# - DO NOT MODIFY
#***********************


sim.def.h : sim.decl.h

sim.decl.h : sim.ci
	$(CHARMC) sim.ci

gvt.def.h: gvt.decl.h

gvt.decl.h : gvt.ci
	$(CHARMC) gvt.ci

ldbal.def.h: ldbal.decl.h

ldbal.decl.h : ldbal.ci
	$(CHARMC) ldbal.ci

pose.def.h: pose.decl.h

pose.decl.h: pose.ci
	$(CHARMC) pose.ci

stats.def.h: stats.decl.h

stats.decl.h : stats.ci
	$(CHARMC) stats.ci

mempool.def.h: mempool.decl.h 

mempool.decl.h: mempool.ci
	$(CHARMC) mempool.ci


docs: pose.doxy adapt2.C adapt3.C adapt4.C eventID.C lbObject.C spec.C adapt2.h adapt3.h adapt4.h eventID.h lbObject.h pose.C spec.h pose.ci adapt.C ldbal.C srtable.C adapt.h mempool.C ldbal.ci srtable.h mempool.ci pose.h cancel.C stats.C cancel.h ldbal.h pvtobj.C stats.ci mempool.h pvtobj.h chpt.h seq.C cons.C evq.C rep.C stats.h seq.h cons.h evq.h opt2.C rep.h opt2.h strat.C eqheap.C gvt.C sim.C strat.h eqheap.h gvt.ci opt3.C sim.ci opt3.h event.C gvt.h opt.C sim.h event.h opt.h
	doxygen pose.doxy

# HOUSE-KEEPING RULES
#********************
clean:
	rm -f charmrun conv-host *.o
	rm -f *.def.h *.decl.h
	rm -f gmon.out #*#
	rm -f core *~
	rm -f TAGS *.headers
	rm -f libmodulepose.a
	rm -f libmoduleseqpose.a

include Make.depends

DEPENDFILE = Make.depends

depends:  $(CIFILES)
	echo "Creating " $(DEPENDFILE) " ..."; 	\
	if [ -f $(DEPENDFILE) ]; then \
           /bin/cp -f $(DEPENDFILE) $(DEPENDFILE).old; \
        fi; \
	echo '#generated by make depends' > $(DEPENDFILE); \
        for i in $(OBJECTS) ; do \
	      SRCFILE=`basename $$i .o`.C ; \
              echo "checking dependencies for $$i : $$SRCFILE" ; \
              g++ -MM -Wno-deprecated -I$(CHARMINC) $$SRCFILE >> $(DEPENDFILE); \
              echo '	$$(CHARMC) -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
        done; 	\
        for i in $(SEQOBJECTS) ; do \
	      SRCFILE=`basename $$i .seq.o`.C ; \
              echo "checking dependencies for $$i : $$SRCFILE" ; \
              g++ -MM -MT $$i -Wno-deprecated -I$(CHARMINC) $$SRCFILE >> $(DEPENDFILE); \
              echo '	$$(CHARMC) -o '$$i -DSEQUENTIAL_POSE=1 $$SRCFILE >> $(DEPENDFILE) ; \
        done; 

