Merge branch 'charm' of charmgit:charm into charm
[charm.git] / examples / pose / PatternGen / 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 # For parallel simulation
13 OPTS=-g #-O #-DCMK_OPTIMIZE=1 -DCMK_MEMCHECKS_OFF=1
14 ETRANS_OPTS=
15
16 # For sequential simulation
17 #OPTS=-O -DSEQUENTIAL_POSE=1 #-DCMK_OPTIMIZE=1 -DCMK_MEMCHECKS_OFF=1
18 #ETRANS_OPTS=-s
19
20 CHARMBASE=../../..
21 CHARMBIN=$(CHARMBASE)/bin
22 CHARMINC=$(CHARMBASE)/include
23
24 CHARMC=$(CHARMBIN)/charmc -I$(CHARMINC)/pose $(OPTS)
25
26 # Default Location variables
27 # **************************
28 #POSE_ROOT=$(HOME)/charm/net-linux/lib
29
30 # Default module names
31 # - MAKE MODIFICATIONS HERE
32 # *************************
33 PGM_MODULE=Pgm
34 PGM=pgm
35 OTHER=
36 LIBS=-Lstdc++ -lm
37
38 # Simulation object definitions 
39 # *****************************
40 SIM_OBJECTS=Worker_sim.o $(PGM).o 
41
42 # EXECUTABLE GENERATION RULES 
43 # - DO NOT MODIFY
44 #****************************
45 base:   $(PGM)
46         @echo "Simulation compiled."
47
48 pure:   $(PGM).pure
49         @echo "Simulation (w purify) compiled."
50
51 proj:   $(PGM).proj
52         @echo "Simulation (w projections log traces) compiled."
53
54 summary:    $(PGM).summary
55         @echo "Simulation (w summary log traces) compiled."
56
57 $(PGM): $(SIM_OBJECTS) 
58         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM) \
59         -module pose -language charm++
60
61 $(PGM).seq:     $(SIM_OBJECTS) 
62         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).seq \
63         -module seqpose -language charm++
64
65 $(PGM).alt:     $(SIM_OBJECTS) 
66         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).alt \
67         -module pose -language charm++
68
69 $(PGM).comm:    $(SIM_OBJECTS) 
70         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).comm \
71         -lpose -language charm++ -module commlib
72
73 $(PGM).pure:    $(SIM_OBJECTS)
74         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).pure \
75         -lpose -language charm++ -purify
76
77 $(PGM).proj:    $(SIM_OBJECTS)
78         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).proj \
79         -module pose -language charm++ -tracemode projections
80
81 $(PGM).summary: $(SIM_OBJECTS)
82         $(CHARMC) $(SIM_OBJECTS) $(OTHER) $(LIBS) -o $(PGM).summary \
83         -lpose -language charm++ -tracemode summary
84
85 # HOUSE-KEEPING RULES
86 # - DO NOT MODIFY
87 #********************
88
89 # clean removes everything
90 clean:  clear rm_logs ;
91
92 # clear removes only binaries and generated files
93 clear:
94         rm -f charmrun conv-host *.o
95         rm -f *.def.h *.decl.h
96         rm -f $(PGM) $(PGM).pure $(PGM).proj $(PGM).summary
97         rm -f gmon.out #*#
98         rm -f core *~
99         rm -f TAGS *.headers
100         rm -f *_sim.*
101
102 # rm_logs removes projections/summary log traces
103 rm_logs:
104         rm -f [^j]*.log *.sum [^j]*.sts
105         rm -f *-bg.*.log *-bg.sts
106
107 # SIMULATION COMPILATION RULES
108 # - DO NOT MODIFY 
109 #*****************************
110 $(PGM).o :      $(PGM).C $(PGM).h $(PGM_MODULE).def.h $(PGM_MODULE).decl.h
111         $(CHARMC) -c -I$(CHARMINC) $(INCLUDES) $(LIBS) $(PGM).C
112
113 $(PGM_MODULE).def.h $(PGM_MODULE).decl.h : $(PGM).ci
114         $(CHARMC) $(INCLUDES) $(LIBS) $(PGM).ci
115
116 Worker_sim.o :  Worker_sim.C Worker_sim.h Worker.def.h Worker.decl.h
117         $(CHARMC) -c $(LIBS) $(INCLUDES) -I$(CHARMINC) Worker_sim.C
118
119 Worker.def.h Worker.decl.h : Worker_sim.ci
120         $(CHARMC) $(INCLUDES) $(LIBS) Worker_sim.ci
121
122 Worker_sim.C Worker_sim.h Worker_sim.ci: Worker.C Worker.h Worker.ci 
123         $(CHARMBIN)/etrans.pl $(ETRANS_OPTS) Worker
124
125 test: $(PGM)
126         ./pgm 16 0
127
128 partest: $(PGM)
129         ./charmrun +p4 ./pgm 16 0
130
131 seqtest: $(PGM).seq
132         ./pgm.seq 16 0