Buck
Build system that encourages the creation of small, reusable modules
...It encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages on many platforms. Buck builds independent artifacts in parallel to take advantage of multiple cores on your machine. Further, it reduces incremental build times by keeping track of unchanged modules so that the minimal set of modules is rebuilt. Buck only uses the declared inputs, which means everybody gets the same results. Buck looks at the contents of your inputs, not their timestamps to figure out what needs to be built. As a result, incremental builds should always be correct, so there's no need to perform a clean build. ...