+# Lesson 8: exceptions
+########################################
+
+8-exceptions.output: 8-exceptions_client 8-exceptions_server 8-exceptions_simulator
+ echo '$$ ./test_server & ./test_client 127.0.0.1 ' > $@
+ ./8-exceptions_server 2>&1 |sed s/8-exceptions/test/ >> $@ 2>&1&
+ ./8-exceptions_client 127.0.0.1 2>&1 |sed s/8-exceptions/test/ >> $@ 2>&1
+ sleep 1
+ echo '$$' >> $@
+ echo '$$ ./test_server --cheat & ./test_client 127.0.0.1 ' >> $@
+ ./8-exceptions_server --cheat 2>&1 |sed s/8-exceptions/test/ >> $@ 2>&1&
+ ./8-exceptions_client 127.0.0.1 2>&1 |sed s/8-exceptions/test/ >> $@ 2>&1
+ sleep 1
+ echo '$$ killall test_server' >> $@
+ killall 8-exceptions_server 8-exceptions_client 2>/dev/null || true
+ echo '$$' >> $@
+ echo '$$ ./test_simulator platform.xml test.xml' >> $@
+ ./8-exceptions_simulator gtut-platform.xml 3-args.xml 2>&1 |sed s/8-exceptions/test/ >> $@ 2>&1
+ echo '$$' >> $@
+
+8-exceptions_client 8-exceptions_server 8-exceptions_simulator: _8-exceptions_client.c _8-exceptions_server.c _8-exceptions_simulator.c
+ make -f 8-exceptions.mk
+
+_8-exceptions_client.c _8-exceptions_server.c _8-exceptions_simulator.c: 8-exceptions.c 3-args.xml
+ ../../tools/gras/gras_stub_generator 8-exceptions 3-args.xml >/dev/null
+
+clean::
+ if [ -e 8-exceptions.mk ] ; then make -f 8-exceptions.mk clean; fi
+ rm -f _8-exceptions_client.c _8-exceptions_server.c _8-exceptions_simulator.c 8-exceptions.trace 8-exceptions.mk
+