include ../common.mk

HEADERS=$(CDIR)/include/tcharm_impl.h $(CDIR)/include/tcharm.h \
        $(CDIR)/include/tcharmc.h $(CDIR)/include/tcharmf.h \
        $(CDIR)/include/tcharm.decl.h
OBJS=tcharm.o
COMPAT=compat_uns.o compat_us.o compat_funs.o compat_fus.o compat_regmm.o
CHARMXI=$(CDIR)/tmp/charmxi

LIB=libmoduletcharm
DEST=$(LIBDIR)/$(LIB).a
COMPATLIB=$(LIBDIR)/libtcharm-compat.a

OBJS2=tcharmmain.o
LIB2=libmoduletcharmmain
DEST2=$(LIBDIR)/$(LIB2).a

OBJECTS = $(OBJS) $(OBJS2) $(COMPAT)
CIFILES = tcharm.decl.h  tcharmmain.decl.h

.SUFFIXES:
.SUFFIXES: .c .o

all: $(DEST) $(COMPATLIB) $(DEST2)

$(DEST): $(OBJS) $(HEADERS)
	$(CHARMC) $(OBJS) -o $@
	cp $(LIB).dep $(LIBDIR)/$(LIB).dep

$(DEST2): $(OBJS2) $(HEADERS)
	$(CHARMC) $(OBJS2) -o $@
	cp $(LIB2).dep $(LIBDIR)/$(LIB2).dep

$(COMPATLIB): $(COMPAT) 
	$(CHARMC) $(COMPAT) -o $@

tcharm.decl.h tcharm.def.h : tcharm.ci $(CDIR)/bin/charmxi
	$(CHARMC) -c tcharm.ci

tcharmmain.decl.h tcharmmain.def.h: tcharmmain.ci $(CDIR)/bin/charmxi
	$(CHARMC) -c tcharmmain.ci

headers: $(HEADERS)

clean: 
	-rm -fr *.o *~ *.decl.h *.def.h gmon.out headers conv-host charmrun

realclean: clean
	rm -f $(HEADERS) $(DEST) $(DEST2) $(COMPATLIB)

DEPENDFILE = Make.depends

include $(DEPENDFILE)

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 ; \
              found=`find . -name $$SRCFILE`; \
              [ ! $$found ] && 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; \


