Confix: A Build Tool on Top of GNU Automake

Introduction

Build tools such as Automake, CMake, or SCons, try to shield the unfortunate C or C++ programmer from crafting compiler and linker commandlines for myriads of different compilers and compiler versions. Each of these tools has a slightly different focus - some prefer cross-platform features, and some focus on fully supporting all of the Unices. Each is unbeatable in doing its job. Basically, all you have to tell them is, for example, "Compile these files as C, and make a library out of them!", and they do what you want.

Automake, CMake, and SCons do not, however, help you in managing your project. All of us know that, once the project has grown beyond a certain size, restructuring it can become a nightmare. Even moving one header file can break the build for a day or two, since everybody has to adjust include paths. Or, even worse, consider you split a library into two or three separate libraries because it has acquired too many responsibilities over time - you'd have to instruct everyone who has used the library about the new structure. (People often argue that a project's structure does not contribute any quality measure, and that the time spent on the structure be better spent on getting the code right. This is certainly a valid view of the matter, but it's a different story, and I don't argue against. Anyway, if you do not care about structure, then you should only be reading on if you want to use the features of Automake but don't want to learn its damn syntax.)

Project structure maintenance is of course but one of Confix's features, although the strongest. The following list is a rough compilation of things that Confix can do for the programmer.

Confix is licensed under the GNU Lesser General Public License.

Download and Installation

You can download releases from the project summary page on Sourceforge. The most recent stable release is 2.1. If no release is recent enough, you may always checkout a development version from Subversion. You can also browse the Subversion repository without having a Subversion client installed.

Follow the instructions in the INSTALL file.

Documentation

Umm, well. There is a bunch of it, but it has been extremely outdated since the 2.0 release. It is a good reading if you want to grasp how Confix intends to solve the problems it is there to solve, but it does not explain the way Confix is currently trying to solve these problems. (You can view the manual here as HTML and Postscript, if you want.)

For the time being - until the documentation is up to date (probably never) - please refer to the Examples section below. confix2.py --help gives a great deal of information as well.

Examples

Fortunately the number of projects that use Confix is not infinite, so it is possible to list them in a concise way. As a documentation substitute, you may have a view into their project layout and their various Confix2.pkg and Confix2.dir files - and their source code of course, but that's a different story.

Hacking

The HACKING file gives an overview of what you're getting involved with. As opposed to the documentation, the implementation documentation reflects a current state. It is automatically extracted from the source using the extremely cool Epydoc.

Mailing Lists

There are three Confix mailing lists on Sourceforge.

Acknowledgments

Most of all I'd like to thank the handful of people that are using Confix, and who continue to provide valuable input. Most of these people are good ex-colleagues of mine.

I also express my thanks to my former employer, Salomon Automation, who made it possible to go open source with Confix. I have spent a considerable amount of working hours on it, and appreciate that it is not selfunderstood for a company to take that step. At least, it pays in a way that I am still maintaining the project after leaving the company.

SourceForge Logo