all load balancers inherit from BaseLB now.
[charm.git] / src / ck-ldb / Makefile_lb.sh
1 #!/bin/sh
2 LOADBALANCERS="RandCentLB RecBisectBfLB MetisLB RefineLB CommLB Comm1LB\
3            HeapCentLB NeighborLB GreedyRefLB RandRefLB WSLB"
4
5 out="Makefile_lb"
6
7 echo "# Automatically generated by script Makefile_lb.sh" > $out
8 echo "#  by" `id` >>$out
9 echo "#  at" `hostname` >>$out
10 echo "#  on" `date` >> $out
11 echo "LOADBALANCERS=\\" >> $out
12 for bal in $LOADBALANCERS 
13 do 
14         echo "   \$(L)/libmodule$bal.a \\" >> $out 
15 done
16
17 echo >> $out
18
19 for bal in $LOADBALANCERS 
20 do 
21         cat >> $out << EOB 
22 $bal.decl.h: $bal.ci charmxi
23         \$(CHARMC) $bal.ci
24
25 $bal.o: $bal.C $bal.decl.h \$(CKHEADERS)
26         \$(CHARMC) -c $bal.C
27
28 \$(L)/libmodule$bal.a: $bal.o
29         \$(CHARMC) -o \$(L)/libmodule$bal.a $bal.o
30
31 EOB
32 done
33
34 rm EveryLB.ci
35 echo "module EveryLB {" >> EveryLB.ci
36 for bal in $LOADBALANCERS
37 do
38         echo "   extern module $bal;" >> EveryLB.ci
39 done
40 echo "   initcall void initEveryLB(void);" >>EveryLB.ci
41 echo "};" >> EveryLB.ci
42
43 echo "LB_OBJ=EveryLB.o \\" >>$out
44 for bal in $LOADBALANCERS
45 do
46         echo "    $bal.o \\" >>$out
47 done
48 cat >> $out <<EOB
49
50 EveryLB.o: EveryLB.C EveryLB.decl.h
51         \$(CHARMC) -c EveryLB.C
52
53 EveryLB.decl.h: EveryLB.ci
54         \$(CHARMC) EveryLB.ci
55
56 \$(L)/libmoduleEveryLB.a: \$(LB_OBJ)
57         \$(CHARMC) -o \$(L)/libmoduleEveryLB.a \$(LB_OBJ)
58
59 EOB