This "limitation" is intrinsic to the nature of designing a build system
that operates on files. Consider: which order do you run these in, and
why? How do you handle resume?
The larger issue to me though is that this entire approach appears
extremely misguided. Why would you want to "remove temps"? This means
that libtest.a doesn't have the file dependencies it needs, which build
systems generally do not allow (not a ninja specific issue), and for
quite practical reasons: if you modify one.c, then you need to recompile
one.o and update libtest.a, but modifying libtest.a requires having
two.o and test.o as *ninja* dependencies, and you previously deleted
those. So now you have to recompile them.... :)
Every other build system as a rule will try to run `ar` using `csrD`
rather than `ru`, there's a reason for this. The "r" mode is not a real
optimization, quite honestly.
--
Eli Schwartz