1 # This works mainly on my box for now
2 export LD_LIBRARY_PATH=$(GRAS_ROOT)/lib
4 all: 01-bones.output 02-simple.output 03-args.output 04-callback.output \
5 05-globals.output 06-logs.output 07-timers.output 08-exceptions.output \
6 09-simpledata.output 10-rpc.output 11-explicitwait.output
11 # Lesson 01: simple bones of project
12 ########################################
14 01-bones.output: 01-bones_client 01-bones_server 01-bones_simulator
15 echo '$$ ./test_client' > $@
16 ./01-bones_client >> $@ 2>&1
17 echo '$$ ./test_server' >> $@
18 ./01-bones_server >> $@ 2>&1
20 echo '$$ ./test_simulator platform.xml test.xml' >> $@
21 ./01-bones_simulator gtut-platform.xml test.xml >> $@ 2>&1
24 01-bones_client 01-bones_server 01-bones_simulator: _01-bones_client.c _01-bones_server.c _01-bones_simulator.c
27 _01-bones_client.c _01-bones_server.c _01-bones_simulator.c: 01-bones.c test.xml
28 ../../tools/gras/gras_stub_generator 01-bones test.xml >/dev/null
31 if [ -e 01-bones.mk ] ; then make -f 01-bones.mk clean; fi
32 rm -f _01-bones_client.c _01-bones_server.c _01-bones_simulator.c 01-bones.trace 01-bones.mk
34 # Lesson 02: simple message exchange
35 ########################################
37 02-simple.output: 02-simple_client 02-simple_server 02-simple_simulator
38 echo '$$ ./test_simulator platform.xml test.xml' > $@
39 ./02-simple_simulator gtut-platform.xml test.xml >> $@ 2>&1
42 02-simple_client 02-simple_server 02-simple_simulator: _02-simple_client.c _02-simple_server.c _02-simple_simulator.c
45 _02-simple_client.c _02-simple_server.c _02-simple_simulator.c: 02-simple.c test.xml
46 ../../tools/gras/gras_stub_generator 02-simple test.xml >/dev/null
49 if [ -e 02-simple.mk ] ; then make -f 02-simple.mk clean; fi
50 rm -f _02-simple_client.c _02-simple_server.c _02-simple_simulator.c 02-simple.trace 02-simple.mk
52 # Lesson 03: passing args to processes
53 ########################################
55 03-args.output: 03-args_client 03-args_server 03-args_simulator
56 echo '$$ ./test_server 12345 & ./test_client 127.0.0.1 12345' > $@
57 ./03-args_server 12345 >> $@ 2>&1&
58 ./03-args_client 127.0.0.1 12345 >> $@ 2>&1
61 echo '$$ ./test_simulator platform.xml test.xml' >> $@
62 ./03-args_simulator gtut-platform.xml 03-args.xml >> $@ 2>&1
64 killall 03-args_server 03-args_client 2>/dev/null || true
66 03-args_client 03-args_server 03-args_simulator: _03-args_client.c _03-args_server.c _03-args_simulator.c
69 _03-args_client.c _03-args_server.c _03-args_simulator.c: 03-args.c 03-args.xml
70 ../../tools/gras/gras_stub_generator 03-args 03-args.xml >/dev/null
73 if [ -e 03-args.mk ] ; then make -f 03-args.mk clean; fi
74 rm -f _03-args_client.c _03-args_server.c _03-args_simulator.c 03-args.trace 03-args.mk
77 ########################################
79 04-callback.output: 04-callback_client 04-callback_server 04-callback_simulator
80 echo '$$ ./test_server 23451 & ./test_client 127.0.0.1 23451' > $@
81 ./04-callback_server 23451 >> $@ 2>&1&
82 ./04-callback_client 127.0.0.1 23451 >> $@ 2>&1
85 echo '$$ ./test_simulator platform.xml test.xml' >> $@
86 ./04-callback_simulator gtut-platform.xml 03-args.xml >> $@ 2>&1
88 killall 04-callback_server 04-callback_client 2>/dev/null || true
90 04-callback_client 04-callback_server 04-callback_simulator: _04-callback_client.c _04-callback_server.c _04-callback_simulator.c
91 make -f 04-callback.mk
93 _04-callback_client.c _04-callback_server.c _04-callback_simulator.c: 04-callback.c 03-args.xml
94 ../../tools/gras/gras_stub_generator 04-callback 03-args.xml >/dev/null
97 if [ -e 04-callback.mk ] ; then make -f 04-callback.mk clean; fi
98 rm -f _04-callback_client.c _04-callback_server.c _04-callback_simulator.c 04-callback.trace 04-callback.mk
101 ########################################
103 05-globals.output: 05-globals_client 05-globals_server 05-globals_simulator
104 echo '$$ ./test_server 12345 & ./test_client 127.0.0.1 12345' > $@
105 ./05-globals_server 12345 >> $@ 2>&1&
106 ./05-globals_client 127.0.0.1 12345 >> $@ 2>&1
109 echo '$$ ./test_simulator platform.xml test.xml' >> $@
110 ./05-globals_simulator gtut-platform.xml 03-args.xml >> $@ 2>&1
112 killall 05-globals_server 05-globals_client 2>/dev/null || true
114 05-globals_client 05-globals_server 05-globals_simulator: _05-globals_client.c _05-globals_server.c _05-globals_simulator.c
115 make -f 05-globals.mk
117 _05-globals_client.c _05-globals_server.c _05-globals_simulator.c: 05-globals.c 03-args.xml
118 ../../tools/gras/gras_stub_generator 05-globals 03-args.xml >/dev/null
121 if [ -e 05-globals.mk ] ; then make -f 05-globals.mk clean; fi
122 rm -f _05-globals_client.c _05-globals_server.c _05-globals_simulator.c 05-globals.trace 05-globals.mk
125 ########################################
127 06-logs.output: 06-logs_client 06-logs_server 06-logs_simulator \
128 06-logs.output.fmt 06-logs.output.fmt-bt 06-logs.output.verbose 06-logs.output.error
129 echo '$$ ./test_server 12345 & ./test_client 127.0.0.1 12345' > $@
130 ./06-logs_server 12345 2>&1 |sed s/06-logs/test/ >> $@ 2>&1&
131 ./06-logs_client 127.0.0.1 12345 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
134 echo '$$ ./test_simulator platform.xml test.xml' >> $@
135 ./06-logs_simulator gtut-platform.xml 03-args.xml 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
137 killall 06-logs_server 06-logs_client 2>/dev/null || true
139 06-logs.output.fmt: 06-logs_client 06-logs_server 06-logs_simulator
140 echo '$$ ./test_server 12345 --log=test.fmt:%m%n & ./test_client 127.0.0.1 12345 --log=test.fmt:%m%n' > $@
141 ./06-logs_server 12345 --log=test.fmt:%m%nn 2>&1 |sed s/06-logs/test/ >> $@ 2>&1&
142 ./06-logs_client 127.0.0.1 12345 --log=test.fmt:%m%n 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
145 echo '$$ ./test_simulator platform.xml test.xml --log=test.fmt:%m%n' >> $@
146 ./06-logs_simulator gtut-platform.xml 03-args.xml --log=test.fmt:%m%n 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
148 killall 06-logs_server 06-logs_client 2>/dev/null || true
150 06-logs.output.fmt-bt: 06-logs_client 06-logs_server 06-logs_simulator
151 echo '$$ ./test_server 12345 --log=test.fmt:"[%r] %m%n%b%n%n" & ./test_client 127.0.0.1 12345 --log=test.fmt:"[%r] %m%n%b%n%n"' > $@
152 ./06-logs_server 12345 --log=test.fmt:[%r]%m%n%b%n%n 2>&1 |sed s/06-logs/test/ >> $@ 2>&1&
153 ./06-logs_client 127.0.0.1 12345 --log=test.fmt:[%r]%m%n%b%n%n 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
156 echo '$$ ./test_simulator platform.xml test.xml --log=test.fmt:[%r]%m%n%b%n%n' >> $@
157 ./06-logs_simulator gtut-platform.xml 03-args.xml --log=test.fmt:[%r]%m%n%b%n%n 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
159 killall 06-logs_server 06-logs_client 2>/dev/null || true
161 06-logs.output.verbose: 06-logs_client 06-logs_server 06-logs_simulator
162 echo '$$ ./test_server 12345 --log=test.thres:verbose & ./test_client 127.0.0.1 12345 --log=test.thres:verbose' > $@
163 ./06-logs_server 12345 --log=test.thres:verbose 2>&1 |sed s/06-logs/test/ >> $@ 2>&1&
164 ./06-logs_client 127.0.0.1 12345 --log=test.thres:verbose 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
167 echo '$$ ./test_simulator platform.xml test.xml --log=test.thres:verbose' >> $@
168 ./06-logs_simulator gtut-platform.xml 03-args.xml --log=test.thres:verbose 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
170 killall 06-logs_server 06-logs_client 2>/dev/null || true
172 06-logs.output.error: 06-logs_client 06-logs_server 06-logs_simulator
173 echo '$$ ./test_server 12345 --log=root.thres:error & ./test_client 127.0.0.1 12345 --log=root.thres:error' > $@
174 ./06-logs_server 12345 --log=root.thres:error 2>&1 |sed s/06-logs/test/ >> $@ 2>&1&
175 ./06-logs_client 127.0.0.1 12345 --log=root.thres:error 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
178 echo '$$ ./test_simulator platform.xml test.xml --log=root.thres:error' >> $@
179 ./06-logs_simulator gtut-platform.xml 03-args.xml --log=root.thres:error 2>&1 |sed s/06-logs/test/ >> $@ 2>&1
181 killall 06-logs_server 06-logs_client 2>/dev/null || true
184 06-logs_client 06-logs_server 06-logs_simulator: _06-logs_client.c _06-logs_server.c _06-logs_simulator.c
187 _06-logs_client.c _06-logs_server.c _06-logs_simulator.c: 06-logs.c 03-args.xml
188 ../../tools/gras/gras_stub_generator 06-logs 03-args.xml >/dev/null
191 if [ -e 06-logs.mk ] ; then make -f 06-logs.mk clean; fi
192 rm -f _06-logs_client.c _06-logs_server.c _06-logs_simulator.c 06-logs.trace 06-logs.mk
196 ########################################
198 07-timers.output: 07-timers_client 07-timers_server 07-timers_simulator
199 echo '$$ ./test_server 12345 & ./test_client 127.0.0.1 12345' > $@
200 ./07-timers_server 12345 2>&1 |sed s/07-timers/test/ >> $@ 2>&1&
201 ./07-timers_client 127.0.0.1 12345 2>&1 |sed s/07-timers/test/ >> $@ 2>&1
204 echo '$$ ./test_simulator platform.xml test.xml' >> $@
205 ./07-timers_simulator gtut-platform.xml 03-args.xml 2>&1 |sed s/07-timers/test/ >> $@ 2>&1
207 killall 07-timers_server 07-timers_client 2>/dev/null || true
209 07-timers_client 07-timers_server 07-timers_simulator: _07-timers_client.c _07-timers_server.c _07-timers_simulator.c
212 _07-timers_client.c _07-timers_server.c _07-timers_simulator.c: 07-timers.c 03-args.xml
213 ../../tools/gras/gras_stub_generator 07-timers 03-args.xml >/dev/null
216 if [ -e 07-timers.mk ] ; then make -f 07-timers.mk clean; fi
217 rm -f _07-timers_client.c _07-timers_server.c _07-timers_simulator.c 07-timers.trace 07-timers.mk
219 # Lesson 8: exceptions
220 ########################################
222 08-exceptions.output: 08-exceptions_client 08-exceptions_server 08-exceptions_simulator
223 echo '$$ ./test_server & ./test_client 127.0.0.1 ' > $@
224 ./08-exceptions_server 2>&1 |sed s/08-exceptions/test/ >> $@ 2>&1&
225 ./08-exceptions_client 127.0.0.1 2>&1 |sed s/08-exceptions/test/ >> $@ 2>&1
228 echo '$$ ./test_server --cheat & ./test_client 127.0.0.1 ' >> $@
229 ./08-exceptions_server --cheat 2>&1 |sed s/08-exceptions/test/ >> $@ 2>&1&
230 ./08-exceptions_client 127.0.0.1 2>&1 |sed s/08-exceptions/test/ >> $@ 2>&1
232 echo '$$ killall test_server' >> $@
233 killall 08-exceptions_server 08-exceptions_client 2>/dev/null || true
235 echo '$$ ./test_simulator platform.xml test.xml' >> $@
236 ./08-exceptions_simulator gtut-platform.xml 03-args.xml 2>&1 |sed s/08-exceptions/test/ >> $@ 2>&1
239 08-exceptions_client 08-exceptions_server 08-exceptions_simulator: _08-exceptions_client.c _08-exceptions_server.c _08-exceptions_simulator.c
240 make -f 08-exceptions.mk
242 _08-exceptions_client.c _08-exceptions_server.c _08-exceptions_simulator.c: 08-exceptions.c 03-args.xml
243 ../../tools/gras/gras_stub_generator 08-exceptions 03-args.xml >/dev/null
246 if [ -e 08-exceptions.mk ] ; then make -f 08-exceptions.mk clean; fi
247 rm -f _08-exceptions_client.c _08-exceptions_server.c _08-exceptions_simulator.c 08-exceptions.trace 08-exceptions.mk 08-exceptions.output
249 # Lesson 9: simple data exchange
250 ########################################
251 09-datatype-dump: 09-datatype-dump.c
252 gcc -I$(GRAS_ROOT)/include -lgras -L$(GRAS_ROOT)/lib $^ -o $@
255 rm -f 09-datatype-dump.o 09-datatype-dump
257 09-simpledata.output: 09-simpledata_client 09-simpledata_server 09-simpledata_simulator
258 echo '$$ ./test_server 12345 & ./test_client 127.0.0.1 12345' > $@
259 ./09-simpledata_server 12345 2>&1 |sed s/09-simpledata/test/ >> $@ 2>&1&
260 ./09-simpledata_client 127.0.0.1 12345 2>&1 |sed s/09-simpledata/test/ >> $@ 2>&1
263 echo '$$ ./test_simulator platform.xml test.xml' >> $@
264 ./09-simpledata_simulator gtut-platform.xml 03-args.xml 2>&1 |sed s/09-simpledata/test/ >> $@ 2>&1
266 killall 09-simpledata_server 09-simpledata_client 2>/dev/null || true
268 09-simpledata_client 09-simpledata_server 09-simpledata_simulator: _09-simpledata_client.c _09-simpledata_server.c _09-simpledata_simulator.c
269 make -f 09-simpledata.mk
271 _09-simpledata_client.c _09-simpledata_server.c _09-simpledata_simulator.c: 09-simpledata.c 03-args.xml
272 ../../tools/gras/gras_stub_generator 09-simpledata 03-args.xml >/dev/null
275 if [ -e 09-simpledata.mk ] ; then make -f 09-simpledata.mk clean; fi
276 rm -f _09-simpledata_client.c _09-simpledata_server.c _09-simpledata_simulator.c 09-simpledata.trace 09-simpledata.mk
279 ########################################
280 10-rpc.output: 10-rpc_client 10-rpc_server 10-rpc_simulator
281 echo '$$ ./test_server & ./test_client 127.0.0.1 ' > $@
282 ./10-rpc_server 12345 2>&1 |sed s/10-rpc/test/ >> $@ 2>&1&
283 ./10-rpc_client 127.0.0.1 12345 2>&1 |sed s/10-rpc/test/ >> $@ 2>&1
286 echo '$$ killall test_server' >> $@
287 killall 10-rpc_server 10-rpc_client 2>/dev/null || true
289 echo '$$ ./test_simulator platform.xml test.xml' >> $@
290 ./10-rpc_simulator gtut-platform.xml 03-args.xml 2>&1 |sed s/10-rpc/test/ >> $@ 2>&1
293 10-rpc_client 10-rpc_server 10-rpc_simulator: _10-rpc_client.c _10-rpc_server.c _10-rpc_simulator.c
296 _10-rpc_client.c _10-rpc_server.c _10-rpc_simulator.c: 10-rpc.c 03-args.xml
297 ../../tools/gras/gras_stub_generator 10-rpc 03-args.xml >/dev/null
300 if [ -e 10-rpc.mk ] ; then make -f 10-rpc.mk clean; fi
301 rm -f _10-rpc_client.c _10-rpc_server.c _10-rpc_simulator.c 10-rpc.trace 10-rpc.mk
304 # Lesson 11: Explicit wait
305 ########################################
306 11-explicitwait.output: 11-explicitwait_client 11-explicitwait_server 11-explicitwait_simulator
307 (echo '$$ ./test_server & ./test_client 127.0.0.1 12345 & ./test_client 127.0.0.1 12345 '; \
308 ./11-explicitwait_client 127.0.0.1 12345 & \
309 ./11-explicitwait_client 127.0.0.1 12345 & \
310 ./11-explicitwait_server 12345 \
311 ) 2>&1 | sed s/11-explicitwait/test/ > $@
314 killall 11-explicitwait_server 11-explicitwait_client 2>/dev/null || true
316 echo '$$ ./test_simulator platform-3nodes.xml test.xml' >> $@
317 ./11-explicitwait_simulator gtut-platform-3nodes.xml 11-explicitwait.xml 2>&1 |sed s/11-explicitwait/test/ >> $@ 2>&1
320 11-explicitwait_client 11-explicitwait_server 11-explicitwait_simulator: _11-explicitwait_client.c _11-explicitwait_server.c _11-explicitwait_simulator.c
321 make -f 11-explicitwait.mk
323 _11-explicitwait_client.c _11-explicitwait_server.c _11-explicitwait_simulator.c: 11-explicitwait.c 03-args.xml
324 ../../tools/gras/gras_stub_generator 11-explicitwait 03-args.xml >/dev/null
327 if [ -e 11-explicitwait.mk ] ; then make -f 11-explicitwait.mk clean; fi
328 rm -f _11-explicitwait_client.c _11-explicitwait_server.c _11-explicitwait_simulator.c 11-explicitwait.trace 11-explicitwait.mk