I didn't bother before because a make build is inherently
non-deterministic, unless the author manually defines a total order
on all the prerequisites of a target. I suspect the implementation of
GNU make to implicitly define such an order, but there's nothing of
the sort in the documentation, so it's basically "In GNU we trust".
For instance, in skalibs, even after the proposed change, uint16.h
and uint32.h can be built in any order, and there's no way to
guarantee an order without either trusting the make implementation to
do it or adding an artificial prerequisite from uint32.h to uint16.h
or the other way around.
The proposed change, though, eliminates a lot of randomness at a
very cheap price, so it's a good one.