|mach build| currently contains a lot of code for performing builds. Due to the way it is implemented, it is outside the build system proper. This means features like compiler warning aggregation and Finder-is-slowing-down-your-build are only active when building through mach. It was always my intent to have as little "business logic" in mach commands as possible. IMO a mach command method should simply instantiate a thing, call that thing, and format its output. In this bug, I'm proposing moving the "build the tree" logic outside of mach_commands.py and into somewhere in mozbuild.*. Once we've done that, we can modify client.mk to call that code instead of make directly. This will give us compiler warning detection and future features on the official builders. Yay!