Drastic simplification of TCharm's startup sequence:
[charm.git] / src / libs / ck-libs / tcharm / Makefile
1 CDIR=../../../..
2 CHARMC=$(CDIR)/bin/charmc $(OPTS)
3
4 HEADERS=tcharm_impl.h tcharm.h tcharmc.h tcharmf.h tcharm.decl.h
5 OBJS=tcharm.o
6 COMPAT=compat_uns.o compat_us.o compat_funs.o compat_fus.o compat_regmm.o
7
8 LIBDIR=$(CDIR)/lib
9
10 LIB=libmoduletcharm
11 DEST=$(LIBDIR)/$(LIB).a
12 COMPATLIB=$(LIBDIR)/libtcharm-compat.a
13
14 OBJS2=tcharmmain.o
15 LIB2=libmoduletcharmmain
16 DEST2=$(LIBDIR)/$(LIB2).a
17
18 all: $(DEST) $(COMPATLIB) $(DEST2)
19
20 $(DEST): $(OBJS) headers
21         $(CHARMC) $(OBJS) -o $@
22         cp $(LIB).dep $(LIBDIR)/$(LIB).dep
23
24 $(DEST2): $(OBJS2) headers
25         $(CHARMC) $(OBJS2) -o $@
26         cp $(LIB2).dep $(LIBDIR)/$(LIB2).dep
27
28 $(COMPATLIB): $(COMPAT) 
29         $(CHARMC) $(COMPAT) -o $@
30
31 headers: $(HEADERS)
32         cp $(HEADERS) $(CDIR)/include/
33         touch headers
34
35 $(COMPAT):
36         @for o in $(COMPAT); \
37         do \
38                 file=`echo $$o | sed -e "s/\.o/.c/g"`; \
39                 echo "$(CHARMC) -c $$file"; \
40                 $(CHARMC) -c $$file || exit 1; \
41         done
42
43 tcharm.o: tcharm.C $(HEADERS)
44         $(CHARMC) -c tcharm.C
45
46 tcharm.decl.h: tcharm.ci
47         $(CHARMC) tcharm.ci
48
49 tcharmmain.o: tcharmmain.C tcharmmain.decl.h $(HEADERS)
50         $(CHARMC) -c tcharmmain.C
51
52 tcharmmain.decl.h: tcharmmain.ci
53         $(CHARMC) tcharmmain.ci
54
55 clean: 
56         -rm -fr *.o *~ *.decl.h *.def.h gmon.out headers $(DEST) $(COMPATLIB) conv-host charmrun