-$(srcdir)/_ping_client.c $(srcdir)/_ping_server.c $(srcdir)/_ping_simulator.c: $(srcdir)/ping_deployment.txt $(top_srcdir)/examples/gras_stub_generator
- cd $(srcdir) ; $(top_srcdir)/examples/gras_stub_generator ping ping_deployment.txt >/dev/null
+NAME=ping
+PROCESSES= client server
+
+$(foreach proc, $(PROCESSES), _$(NAME)_$(proc).c) _ping_simulator.c: $(srcdir)/ping_deployment.xml ../../../tools/gras/gras_stub_generator@EXEEXT@
+ [ x@EXEEXT@ = x ] || exenv=wine; $$exenv ../../../tools/gras/gras_stub_generator@EXEEXT@ ping $(srcdir)/ping_deployment.xml >/dev/null
+
+../../../tools/gras/gras_stub_generator@EXEEXT@:
+ make -C ../../../tools/gras/ gras_stub_generator@EXEEXT@