In the right order, based on the rules you provide. For your particular example, that could mean any one of a number of different (4! = 24, from memory) orders.
All make
programs are free to choose the order they like as long as the dependencies are honored. If there were other rules in your example, say c: b
, then c
would be made before b
(but that isn't the case, as you point out).
If you need to rely on a specific order, you'll need more rules to enforce it. Otherwise make
can do what it pleases. The documentation for GNU Make only states how rules are processed, not the order in which dependencies within a rule are processed. The most logical order (to me, anyway) would be the order in which they're listed but that's not guaranteed.