Mage was born of my frustration with people using Makefiles to build Go projects. Makefiles are not cross platform compatible (good luck running them on Windows without jumping through some hoops), they have significant whitespace, they are generally written in bash, with added idiosyncratic syntax on top of an already idiosyncratic syntax...<p>So I made Mage. Mage tries to take the best parts of Makefiles (dependency trees, ease of execution, partially self-documenting code) and rework it to run with a better programming language (go).<p>It's still a work in progress, but I think it's in a very good initial state. It lets you declare targets and dependencies and it'll resolve the dependnecies into a tree that'll run them from leaf to root in parallel, all executing exactly once.<p>It doesn't have file targets yet, but that is on the docket, along with helpers to make writing code that executes commands in go less ugly.<p>Let me know what you think.