Archive for the ‘quagmire’ Category

Using Quagmire

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.

Project Quagmire

This weekend I finally registered project quagmire with Google’s code hosting service. I’ve checked in all my initial .mk files, plus a little bit of documentation.

I’m a little nervous about posting this… Quagmire is still very immature, and I don’t want expectations set too high. There is still a lot to do! But, the good news is, you can easily help set the direction.

I suppose I will set up a Google group for Quagmire eventually. What do you think? Meanwhile, edit the Quagmire wiki with your questions, comments, and ideas.