pandora-build - make your software compile as pedantically as ours!

I've been working on cleanups to the Drizzle autoconf and automake system. Actually, to be fair, I've been doing this work on Drizzle, Gearmand, libdrizzle and libmemcached.

In all of those projects, we have the same set of build ideas:

  1. Warnings == Errors
  2. As many warnings as we can enable
  3. Lots of people will be building directly from bzr

As it turns out, I'm pretty lazy, and I got tired of remember to port the latest m4 macro fix that we made in one project across to the other three. O, hai - code reuse!

So I did some refactoring and split the several macros and large portions of the configure.ac files out into a set of m4 macro files. These now live in their own project, which you can grab from bzr via:

 bzr branch lp:pandora-build

Although each of the macros is useful by itself, the fun part is that you can just put:

 PANDORA_CANONICAL_TARGET

at the top of your configure.ac file right after AC_INIT  and the normal AC_CONFIG macros. It will set up libtool, automake, run some standard tests, and turn on assloads of warnings, etc.. essentially setting your build env up to be just like we're running for all of our projects. There are a few parameters that you can pass to control some optional features (drizzle, for instance, is the only one of our projects that uses gnulib)

To add the macros to your project, you can do one of two things. First, you can just copy all of the m4 files in to your m4 dir, but that will make Robert Collins sad. The better way is that you can do:

 autoreconf

 ./configure

 make install

in the pandora-build tree, which will add all of these macros to /usr/share/aclocal.

I welcome folks to start using them in their projects and to give me feedback. I'm sure feedback #1 will be "better documentation"... 



Enter your website or your OpenID here.