%% Tommy Kelly <[EMAIL PROTECTED]> writes:
tk> I'm seeing an intermittent (i.e. two consecutive invocations
tk> can be different) results when I have a command which
tk> produces two targets. It occurs when both targets are
tk> themselves given as dependencies of the same higher target.
tk> sli4515:tommyk> cat Makefile
tk> default : clean foo bar
tk> foo bar :
tk> touch foo bar
tk> sleep 1
This doesn't do what you think it does. This rule is identical to:
foo:
touch foo bar
sleep 1
bar:
touch foo bar
sleep 1
That is, listing multiple targets in a normal rule are treated as if
you'd declared that rule for each target, _NOT_ as if that one command
script builds both targets.
See the GNU make manual discussion of the syntax of rule definitions.
So, you can see why you're getting the behavior you are.
The only way to do what you want is either with a dummy target, or using
multiple targets in a pattern rule, which _does_ behave this way (see
this section of the manual).
--
-------------------------------------------------------------------------------
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