Over the last two weeks I’ve spent some time hacking on Quagmire. I’ve tried to add the features I think are most commonly needed, and I think now it is ready for early adopters to come on board. It isn’t at feature parity with Automake, but it does implement a large subset of Automake’s functionality:
- Build and install C/C++ programs and static libraries, with Automake-style dependency tracking.
- Initial (aka, gcc-only) shared library support. (This is still fairly lame… “libtool in two lines of code”. My current plan here is to do something much more minimal than what libtool provides.)
- Automatic support for the standard clean targets.
- Install and uninstall, including DESTDIR.
- dist and distcheck support (a bit incomplete; and FWIW this is just ripped right out of Automake).
- Support for some minor (but standard) targets: TAGS, texinfo stuff, rebuilding configure-generated files.
It also has some features that Automake does not. One long-requested Automake feature is to be able to turn off its verbose output; Quagmire does this dynamically depending on whether -s
was passed to make.
Quagmire also has some initial support for build-time function and header checks, and pkg-config
support. This is not fully baked, but fun to play with. One way this is nicer than using configure is that if you add a new function to the list, the next invocation of make will run that test only.
There’s some example code in the repository that shows how to use most of the features.
Currently Quagmire does some things differently from Automake. For instance, it does not use directory prefixes for things like PROGRAMS. However, I recently figured out that it could (and in some situations, like _DATA, this is really what you want), so I’m wondering whether I should change all this to follow Automake more closely. Let me know what you think.
Also I’ve been wondering about whether it would be appropriate to post an announcement of Quagmire on the Automake mailing list.