98b8ce235d2fd0241729d2f1267825471771b941
[charm.git] / src / ck-ldb / Makefile_lb.sh
1 #!/bin/sh
2 LOADBALANCERS="DummyLB ComboCentLB RandCentLB RefineLB RefineKLB  RefineCommLB GreedyLB GreedyCommLB GreedyAgentLB GridCommLB Comm1LB OrbLB RecBisectBfLB MetisLB PhasebyArrayLB RotateLB NeighborLB NeighborCommLB WSLB HybridLB TopoLB RefineTopoLB"
3
4 out="Make.lb"
5
6 echo "# Automatically generated by script Makefile_lb.sh" > $out
7 echo "#  by" `id` >>$out
8 echo "#  at" `hostname` >>$out
9 echo "#  on" `date` >> $out
10 echo "LOADBALANCERS=\\" >> $out
11 for bal in $LOADBALANCERS 
12 do 
13         echo "   \$(L)/libmodule$bal.a \\" >> $out 
14 done
15 echo "   manager.o" >> $out
16 echo >> $out
17
18 for bal in $LOADBALANCERS 
19 do 
20         dep=""
21         [ -r libmodule$bal.dep ] && dep="cp libmodule$bal.dep "'$'"(L)/"
22         manager=""
23         [ $bal = 'GreedyCommLB' ] && manager="manager.o"
24         [ $bal = 'GridCommLB' ] && manager="manager.o"
25         cat >> $out << EOB 
26 $bal.def.h: $bal.decl.h
27
28 $bal.decl.h: $bal.ci charmxi
29         \$(CHARMXI) $bal.ci
30
31 \$(L)/libmodule$bal.a: $bal.o $manager
32         \$(CHARMC) -o \$(L)/libmodule$bal.a $bal.o $manager
33         $dep
34
35 EOB
36 done
37
38 echo "" >  EveryLB.ci
39 echo "module EveryLB {" >> EveryLB.ci
40 for bal in $LOADBALANCERS
41 do
42         echo "   extern module $bal;" >> EveryLB.ci
43 done
44 echo "   initnode void initEveryLB(void);" >>EveryLB.ci
45 echo "};" >> EveryLB.ci
46
47 echo "# used for make dependes" >>$out
48 echo "LB_OBJ=EveryLB.o \\" >>$out
49 for bal in $LOADBALANCERS
50 do
51         echo "    $bal.o \\" >>$out
52 done
53 echo "    manager.o" >> $out
54 cat >> $out <<EOB
55
56 EveryLB.def.h: EveryLB.decl.h
57
58 EveryLB.decl.h: EveryLB.ci charmxi
59         \$(CHARMXI) EveryLB.ci
60
61 \$(L)/libmoduleEveryLB.a: \$(LB_OBJ)
62         \$(CHARMC) -o \$(L)/libmoduleEveryLB.a \$(LB_OBJ)
63         cp libmoduleEveryLB.dep \$(L)/
64 EOB