The order is unspecified and can run in either order. This isn't just a theoretical concern. It can happen during parallel builds. Assuming the same Makefile as in the question, I ran:
watch -n 0.1 make -j8
It only took a few seconds to print:
See also this StackOverflow answer by Jörg W Mittag:
No, the order is not defined. That is the whole point in using declarative dependency-oriented programming: that the computer can pick the optimal evaluation order, or in fact, evaluate them even at the same time.
However, as mosvy points out, this is only true for GNU Make. POSIX make (which can be emulated in GNU Make by adding the special
.POSIX target to your makefile) specifies a left-to-right ordering when handling prerequisites.