Books & Videos

Table of Contents

  1. Chapter 1 A BRIEF INTRODUCTION TO THE GNU AUTOTOOLS

    1. Who Should Use the Autotools?

    2. When Should You Not Use the Autotools?

    3. Apple Platforms and Mac OS X

    4. The Choice of Language

    5. Generating Your Package Build System

    6. Autoconf

    7. Automake

    8. Libtool

    9. Building Your Package

    10. Installing the Most Up-to-Date Autotools

    11. Summary

  2. Chapter 2 UNDERSTANDING THE GNU CODING STANDARDS

    1. Creating a New Project Directory Structure

    2. Project Structure

    3. Makefile Basics

    4. Creating a Source Distribution Archive

    5. Automatically Testing a Distribution

    6. Unit Testing, Anyone?

    7. Installing Products

    8. The Filesystem Hierarchy Standard

    9. Supporting Standard Targets and Variables

    10. Getting Your Project into a Linux Distro

    11. Build vs. Installation Prefix Overrides

    12. User Variables

    13. Configuring Your Package

    14. Summary

  3. Chapter 3 CONFIGURING YOUR PROJECT WITH AUTOCONF

    1. Autoconf Configuration Scripts

    2. The Shortest configure.ac File

    3. Comparing M4 to the C Preprocessor

    4. The Nature of M4 Macros

    5. Executing autoconf

    6. Executing configure

    7. Executing config.status

    8. Adding Some Real Functionality

    9. Generating Files from Templates

    10. Adding VPATH Build Functionality

    11. Let's Take a Breather

    12. An Even Quicker Start with autoscan

    13. Initialization and Package Information

    14. The Instantiating Macros

    15. Back to Remote Builds for a Moment

    16. Summary

  4. Chapter 4 MORE FUN WITH AUTOCONF: CONFIGURING USER OPTIONS

    1. Substitutions and Definitions

    2. Checking for Compilers

    3. Checking for Other Programs

    4. A Common Problem with Autoconf

    5. Checks for Libraries and Header Files

    6. Supporting Optional Features and Packages

    7. Checks for Type and Structure Definitions

    8. The AC_OUTPUT Macro

    9. Summary

  5. Chapter 5 AUTOMATIC MAKEFILES WITH AUTOMAKE

    1. Getting Down to Business

    2. What's in a Makefile.am File?

    3. Analyzing Our New Build System

    4. Unit Tests: Supporting make check

    5. Reducing Complexity with Convenience Libraries

    6. Building the New Library

    7. What Goes into a Distribution?

    8. Maintainer Mode

    9. Cutting Through the Noise

    10. Summary

  6. Chapter 6 BUILDING LIBRARIES WITH LIBTOOL

    1. The Benefits of Shared Libraries

    2. How Shared Libraries Work

    3. Using Libtool

    4. Installing Libtool

    5. Adding Shared Libraries to Jupiter

    6. Summary

  7. Chapter 7 LIBRARY INTERFACE VERSIONING AND RUNTIME DYNAMIC LINKING

    1. System-Specific Versioning

    2. The Libtool Library Versioning Scheme

    3. Using libltdl

    4. Summary

  8. Chapter 8 FLAIM: AN AUTOTOOLS EXAMPLE

    1. What Is FLAIM?

    2. Why FLAIM?

    3. An Initial Look

    4. Getting Started

    5. The FLAIM Subprojects

    6. Designing the XFLAIM Build System

    7. Summary

  9. Chapter 9 FLAIM PART II: PUSHING THE ENVELOPE

    1. Building Java Sources Using the Autotools

    2. Building the C# Sources

    3. Configuring Compiler Options

    4. Hooking Doxygen into the Build Process

    5. Adding Nonstandard Targets

    6. Summary

  10. Chapter 10 USING THE M4 MACRO PROCESSOR WITH AUTOCONF

    1. M4 Text Processing

    2. The Recursive Nature of M4

    3. Autoconf and M4

    4. Writing Autoconf Macros

    5. Diagnosing Problems

    6. Summary

  11. Chapter 11 A CATALOG OF TIPS AND REUSABLE SOLUTIONS FOR CREATING GREAT PROJECTS

    1. Item 1: Keeping Private Details out of Public Interfaces

    2. Item 2: Implementing Recursive Extension Targets

    3. Item 3: Using a Repository Revision Number in a Package Version

    4. Item 4: Ensuring Your Distribution Packages Are Clean

    5. Item 5: Hacking Autoconf Macros

    6. Item 6: Cross-Compiling

    7. Item 7: Emulating Autoconf Text Replacement Techniques

    8. Item 8: Using the ac-archive Project

    9. Item 9: Using pkg-config with Autotools

    10. Item 10: Using Incremental Installation Techniques

    11. Item 11: Using Generated Source Code

    12. Item 12: Disabling Undesirable Targets

    13. Item 13: Watch Those Tab Characters!

    14. Item 14: Packaging Choices

    15. Wrapping Up

  1. Updates