Chapter 8. FLAIM: AN AUTOTOOLS EXAMPLE

Uncle Abner said . . . a person that started in to carry a cat home by the tail was gitting knowledge that was always going to be useful to him. . . .

image with no caption

So far in this book, I've taken you on a whirlwind tour of the main features of Autoconf, Automake, and Libtool. I've done my best to explain them in a manner that is not only simple to digest, but also easy to retain—especially if you've had the time and inclination to follow along with my examples on your own. I've always believed that no form of learning comes anywhere close to the learning that happens while doing.

In this chapter and the next, we'll continue learning about the Autotools by studying the process I used to convert an existing, real-world, open source project from a hand-coded makefile to a complete GNU Autotools build system. The examples I provide in these chapters illustrate the decisions I had to make during the conversion process, as well as concrete examples of Autotools features, including a few that I haven't yet presented in previous chapters. These two chapters will round out our study of the Autotools by presenting real solutions to real problems that I faced.

The project I chose to convert is called FLAIM, which stands for FLexible Adaptable Information Management.

FLAIM is a highly scalable database-management library written in C++ and built on its own thin portability layer called the FLAIM toolkit. Some readers may recognize FLAIM as the database used by both Novell eDirectory and the Novell GroupWise server. FLAIM originated at WordPerfect in the late 1980s, and it became part of Novell's software portfolio during the Novell/WordPerfect merger in 1994. Novell eDirectory uses a recent spin-off of the current version of FLAIM to manage directory information bases that contain over a billion objects, and GroupWise uses a much earlier spin-off to manage various server-side databases.

Novell made the FLAIM source code available as an open source project licensed under the GNU Lesser General Public License (LGPL) version 2[100] in 2006. The FLAIM project[101] is currently hosted by SourceForge.net, and it is the result of 25 years of development and hardening in various WordPerfect and Novell products and projects[102].



[100] See the website for the GNU Lesser General Public License, version 2.1 at http://www.gnu.org/licenses/lgpl-2.1.html/.

[101] See "FLAIM Introduction" on the FLAIM project wiki at http://flaim.sourceforge.net/.

[102] You can read more about the history and development of FLAIM at http://sourceforge.net/projects/flaim/.