%% 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

Reply via email to