%% Peter Kutschera <[EMAIL PROTECTED]> writes: pk> The problem is if there exists rules generating some "object"-files from pk> one "source"-file with rules like:
pk> my_clnt.c my_xdr.c my.h my_svc.c : my.x pk> rpcgen my.x pk> When using make -j rpcgen is executed IM PARALELL several times. Yes. The rule above doesn't say "run this once to build all these targets". It says "each of these targets can be built using this same rule". So, that's what make does. The rule above is simply syntactic sugar for writing this: my_clnt.c: my.x rpcgen my.x my_xdr.c: my.x rpcgen my.x my_svc.c: my.x rpcgen my.x See the manual. The only _good_ way to write a rule that generates multiple targets is with patterns. Unlike normal targets, a rule with multiple pattern targets is interpreted such that all targets are created with one invocation of the rule, like this: %_clnt.c %_xdr.c %_svc.c: %.x rpcgen $< all: my_clnt.c my_xdr.c my.h my_svc.c will only run the rule once and understand that all the targets are created with one invocation. If you can't write your rules as patterns (there's no common stem) then you have much bigger problems. This is in the GNU make manual as well (see the section on pattern rules). Note this is a GNU make extension and is not portable to other versions of make. -- ------------------------------------------------------------------------------- Paul D. Smith <[EMAIL PROTECTED]> Find some GNU make tips at: http://www.gnu.org http://www.paulandlesley.org/gmake/ "Please remain calm...I may be mad, but I am a professional." --Mad Scientist _______________________________________________ Bug-make mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-make