The success of "open-source" software is dependent on programmers around the world being able to develop software that runs on many flavors of Unix and Linux. The GNU autoconf
, and libtool
"autotools" are powerful tools that simplify writing software on different platforms. GNU Autoconf, Automake, and Libtool
is a technically adept and expert guide to using these utilities effectively. Any C/C++ or script programmer who writes software under Unix/Linux will want to have a copy of this book to make better use of these powerful and sometimes obscurely documented tools.
This text is filled with the nuts-and-bolts details of running these three utilities, including command-line switches and the actual, generated files that automate the build process and help programmers port code between different environments. As such, this title will be appreciated by those at their workstations who want a hands-on guide to using the autotools.
There's a danger of missing the forest for the trees here, with all of this necessary detail, but the middle sections of this book pull back a little with several useful chapters on the bigger picture of code "portability." Chapters on both C and C++ portability explore language features that likely will cause trouble when code is moved between different versions of Unix (or even between Unix and Windows). A similar section also discusses the issues when developing portable shell scripts.
Readers will appreciate also sections that are devoted to actual source code that's built with the autotools. Starting out simply, the authors also provide examples of more complex source-code modules (including projects that make use of dynamic loading and cross-platform builds). The genius of the autotools utilities is certainly in the details of command-line switches, and the expert tips that are offered here. But it's good also to get a perspective on why you use these tools, and what they do for the working Unix developer.
By covering both the nitty-gritty and the higher level issues of "portability" in a broader sense, this title succeeds as both a hands-on reference and as a guide to understanding how to write more portable code generally. It'll be a virtual must-have for any serious Unix C/C++ programmer. Although it's not a book you necessarily read from cover to cover, it's chock-full of useful advice that can save considerable time for anyone who writes software for Unix and Linux. --Richard Dragan
- Introduction and history of Unix and configuration tools
- The configure tool
- Makefile and dependencies
- GNU autotools used for a simple program
- Porting options and configure.in
- Bootstrapping techniques
- Comprehensive introduction to the GNU libtool utility (building and linking options)
- Using libtool with configure.in andmakefile.am
- A larger GNU autotools project
- Distributing files in tarballs
- Installing and uninstalling packages
- Strategies and tips for writing portable C code with the GNU autotools (including data types, cross-Unix and Unix/Windows portability issues)
- Guide to C++ portability (includes issues with variable scoping, exceptions, template, and the Standard Template Library)
- Dynamic loading and the GNU libltdll tool
- Advanced automake tips
- A complex GNU autotools example (including dynamic linking)
- Introduction to M4 (the underlying language of the autotools)
- Script portability issues for the Bourne shell and its variants
- Cygnus's Cygwin and the GNU autotools
- Cross-compilation techniques
- Reference for installing the GNU autotools
If you are a developer and are looking to participate in the Open Source development growth area you will need to learn new Open Source tools. GNU autoconf, GNU automake and GNU libtool are key tools for Open Source application development. These tools are not easy to learn, so some of the leading authorities on these tools have agreed to work together on this book to teach developers how to boost their productivity and the portability of their application. This book place New Riders/MTP at the center of the Open Source development community. Autoconf, Automake and Libtool is an efficient discourse on the use of autoconf, automake and libtool aimed at reducing the steep learning curve normally associated with these tools. This is a study guide to the interactions between the tools, and how best to get them to cooperate. If you are a developer and have no GNU build environment expertise, this book will help you develop these tools completely and confidently.