# Charm++ makefile
CDIR =../..
INCDIR=$(CDIR)/include
CHARMC=$(CDIR)/bin/charmc $(OPTS)

LIB = libtmgr.a
LIBOBJ = TopoManager.o CrayNid.o BGQTorus.o

HEADERS = $(INCDIR)/TopoManager.h \
          $(INCDIR)/BGQTorus.h \
          $(INCDIR)/XTTorus.h \
          $(INCDIR)/topomanager_config.h
LIBDEST =  $(CDIR)/lib/$(LIB)

all: headers $(LIBDEST)

headers: $(HEADERS)

$(INCDIR)/TopoManager.h:
	/bin/cp TopoManager.h $(CDIR)/include
$(INCDIR)/BGQTorus.h:
	/bin/cp BGQTorus.h $(CDIR)/include
$(INCDIR)/XTTorus.h:
	/bin/cp XTTorus.h $(CDIR)/include
$(INCDIR)/topomanager_config.h: topomanager_config.h
	/bin/cp topomanager_config.h $(CDIR)/include

$(LIBDEST): $(LIBOBJ)
	$(CHARMC) -o $(LIBDEST) $(LIBOBJ)

topomanager_config.h:
	echo "//empty" > topomanager_config.h

clean:
	rm -f *.o $(LIBDEST) topomanager_config.h

include Make.depends

DEPENDFILE = Make.depends

depends:
	echo "Creating " $(DEPENDFILE) " ..."; 	\
	if [ -f $(DEPENDFILE) ]; then \
           /bin/cp -f $(DEPENDFILE) $(DEPENDFILE).old; \
        fi; \
	echo '#generated by make depends' > $(DEPENDFILE); \
	for i in $(LIBOBJ) ; do \
		SRCFILE=`basename $$i .o`.C ; \
		[ ! -f $$SRCFILE ] && SRCFILE=`basename $$i .o`.c ;	\
		echo "checking dependencies for $$i : $$SRCFILE" ; \
		g++ -MM -Wno-deprecated -I$(CDIR)/tmp $$SRCFILE >> $(DEPENDFILE); \
		echo '	$$(CHARMC) -I$(CDIR)/tmp -o '$$i $$SRCFILE >> $(DEPENDFILE) ; \
	done;
