Merge branch 'charm' of charmgit:charm into charm
[charm.git] / examples / pose / ChunkSim / Makefile
1 # NOTE: This is the basic Makefile template that includes the additional
2 #       Makefile.simulation makefile that is found in the location of the
3 #       current installation of POSE.
4 #
5 #       The Makefile.simulation set of rules allows the compilation of
6 #       a SINGLE simulation module. If multiple simulation modules are
7 #       desired, some "surgery" of Makefile.simulation (and this file)
8 #       will be required. 
9 #
10 # ***********************************************************************
11
12 OPTS=-O#-DCMK_OPTIMIZE=1 -DCMK_MEMCHECKS_OFF=1
13
14 CHARMBASE=../../../
15 CHARMBIN=$(CHARMBASE)/bin
16 CHARMINC=$(CHARMBASE)/include
17
18 CHARMC=$(CHARMBIN)/charmc -I$(CHARMINC)/pose $(OPTS)
19
20 # Default Location variables
21 # **************************
22 #POSE_ROOT=$(HOME)/charm/net-linux/lib
23
24 # Default module names
25 # - MAKE MODIFICATIONS HERE
26 # *************************
27 PGM_MODULE=Pgm
28 PGM=pgm
29 OTHER=
30 LIBS=-Lstdc++ -lm
31
32 # Simulation object definitions 
33 # *****************************
34 SIM_OBJECTS=Worker_sim.o $(PGM).o 
35
36 # EXECUTABLE GENERATION RULES 
37 # - DO NOT MODIFY
38 #****************************
39 base:   $(PGM)
40         @echo "Simulation compiled."
41
42 pure:   $(PGM).pure
43         @echo "Simulation (w purify) compiled."
44
45 proj:   $(PGM).proj
46         @echo "Simulation (w projections log traces) compiled."
47
48 summary:    $(PGM).summary
49         @echo "Simulation (w summary log traces) compiled."
50
51 $(PGM): $(SIM_OBJECTS) 
52         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM) \
53         -module pose -language charm++
54
55 $(PGM).comm:    $(SIM_OBJECTS) 
56         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).comm \
57         -module pose -language charm++ -module commlib -memory paranoid
58
59 $(PGM).pure:    $(SIM_OBJECTS)
60         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).pure \
61         -module pose -language charm++ -purify
62
63 $(PGM).proj:    $(SIM_OBJECTS)
64         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).proj \
65         -module pose -language charm++ -tracemode projections
66
67 $(PGM).summary: $(SIM_OBJECTS)
68         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).summary \
69         -module pose -language charm++ -tracemode summary
70
71 # HOUSE-KEEPING RULES
72 # - DO NOT MODIFY
73 #********************
74
75 # clean removes everything
76 clean:  clear rm_logs ;
77
78 # clear removes only binaries and generated files
79 clear:
80         rm -f charmrun conv-host *.o
81         rm -f *.def.h *.decl.h
82         rm -f $(PGM) $(PGM).pure $(PGM).proj $(PGM).summary
83         rm -f gmon.out #*#
84         rm -f core *~
85         rm -f TAGS *.headers
86         rm -f *_sim.*
87
88 # rm_logs removes projections/summary log traces
89 rm_logs:
90         rm -f [^j]*.log *.sum [^j]*.sts
91         rm -f *-bg.*.log *-bg.sts
92
93 # SIMULATION COMPILATION RULES
94 # - DO NOT MODIFY 
95 #*****************************
96 $(PGM).o :      $(PGM).C $(PGM).h $(PGM_MODULE).def.h $(PGM_MODULE).decl.h
97         $(CHARMC) -c -I$(CHARMINC) $(INCLUDES) $(LIBS) $(PGM).C
98
99 $(PGM_MODULE).def.h $(PGM_MODULE).decl.h : $(PGM).ci
100         $(CHARMC) $(INCLUDES) $(LIBS) $(PGM).ci
101
102 Worker_sim.o :  Worker_sim.C Worker_sim.h Worker.def.h Worker.decl.h
103         $(CHARMC) -c $(LIBS) $(INCLUDES) -I$(CHARMINC) Worker_sim.C
104
105 Worker.def.h Worker.decl.h : Worker_sim.ci
106         $(CHARMC) $(INCLUDES) $(LIBS) Worker_sim.ci
107
108 Worker_sim.C Worker_sim.h Worker_sim.ci: Worker.C Worker.h Worker.ci 
109         $(CHARMBIN)/etrans.pl Worker
110
111 test:
112         ./pgm 1000 10 1 RANDOM SPARSE 50 -gf 344