http://code.dlang.org/my_packages/reggae
What's new:
. API changes: main high-level rules are now called objectFiles, link, and scriptlike
. Optional top-level targets: aren't built by default but can be built on request
. Phony targets
. staticLibrary rule that does what it says
. unityBuild rule for C/C++ projects that builds a binary as one translation unit to speed up compilation
. Support for writing build descriptions in Python, Ruby, Lua and JavaScript
That last one might cause scratchy head syndrome. Why would I want to enable writing builds in a language other than D? Here's why:
1. Interpreting a build description is faster than compiling, linking and running it. Not a big deal since the build description isn't read often, but it's true
2. No confusion about when to use `enum` and when to use `alias`. Again, probably wasn't catching anybody unawares but also true
3. Not having to install a D compiler in order to generate builds - I ran into this issue at work the other day trying to use reggae on a weird VM with no root access
4. More importantly... to not limit reggae to only D developers
There are quite a few build systems / tools out there in which different languages are used. Almost all of them are only used by developers of their language niche: Ruby/Rake, Python/SCons/Waf, Groovy/Java/Gradle, Haskell/Shake, etc. This is my attempt to make reggae appeal to a wider audience.
I wanted to add a Lisp too but then I'd have to pick a dialect and an implemetation, only to annoy fans of other dialects. I might just do Emacs Lisp to annoy everyone equally! Also, for the lulz.
Atila