Update of bug #42833 (project make):
Status: None => Not A Bug
Open/Closed: Open => Closed
_______________________________________________________
Follow-up Comment #1:
To me make's behavior seems correct.
Possibly you've missed the difference in behavior between explicit rules with
multiple targets and pattern rules with multiple targets. An explicit rule
with N multiple targets is identical to writing the same rule N times, once
with each target. So this:
foo bar: ; echo $@
is identical to writing this:
foo: ; echo $@
bar: ; echo $@
This appears to be what you want.
However, pattern rules are different; see
http://www.gnu.org/software/make/manual/make.html#Pattern-Intro
A pattern rule with multiple targets tells make that ONE invocation of that
recipe will build BOTH targets. That's why you don't see both the /host and
/target generated: make invokes one of them and expects the recipe to build
both, so later when the other is listed as a prerequisite make thinks it's
already been built.
You have to write your pattern rules like this then it should work as you
expect:
%/host:
@echo $@
%/target:
@echo $@
If I've misunderstood the situation add a comment with more detail (maybe a
simpler test-case) and I'll re-open this bug.
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/bugs/?42833>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
_______________________________________________
Bug-make mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-make