It was getting way too ad-hoc in there. Let's reorganize the tests so that there's a good, obvious, suggested sequence to run them in.
If a file previously was generated but now isn't (ie. its .do file disappears), we would never re-stamp that target, and so all its dependencies would rebuild continually.