Facing Autotools

One of the essential features of a good software package is that it is both portable and straightforward to build.  When working on a system (Linux or even OS X) with a UNIX shell, the most common build tools are the dreaded Autotools.  I say dreaded from a developer’s perspective.  From a user’s perspective, it’s usually only takes invoking

./configure && make

to build a well-designed software package.

On the developer’s end, there’s the seemingly Byzantine world of autoconf, automake, auto-whatever and the unfamiliar world of M4 macros and under the hood magic. At first, when faced with setting up a portable build system, I tried to roll my own using Lua scripts. It worked quite well … until other people needed to use it. When that happened, things started to fall apart under the weight of all of the contingencies I had to keep track of, so I dove into the world of Autotools.

Going through the manuals and trying to understand the terminology with no reference points is incredibly frustrating. I managed to get a decent understanding of how things works, but I still wasn’t able to setup a build system to handle the complicated structure of LuaAV. Fortunately, John Calcote has just published a book called Autotools: A Practitioner’s Guide to GNU Autoconf, Automake, and Libtool. I highly recommend it. It’s clear, explains the terminology well, and is as much of a pleasure to read as such things can be.

This entry was posted in Software Engineering and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>