DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(autoconf) Top

Info Catalog (dir) Top (autoconf) Introduction
 
 Autoconf
 ********
 
 
 
    This manual is for GNU Autoconf (version 2.54, 12 September 2002), a
 package for creating scripts to configure source code packages using
 templates and an `m4' macro package.
 
    Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 2002 Free Software Foundation, Inc.
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU Free Documentation License,
      Version 1.1 or any later version published by the Free Software
      Foundation; with no Invariant Sections, with the Front-Cover texts
      being "A GNU Manual," and with the Back-Cover Texts as in (a)
      below.  A copy of the license is included in the section entitled
      "GNU Free Documentation License."
 
      (a) The FSF's Back-Cover Text is: "You have freedom to copy and
      modify this GNU Manual, like GNU software.  Copies published by
      the Free Software Foundation raise funds for GNU development."
    

Menu

 
* Introduction                Autoconf's purpose, strengths, and weaknesses
* The GNU Build System        A set of tools for portable software packages
* Making configure Scripts    How to organize and produce Autoconf scripts
* Setup                       Initialization and output
* Existing Tests              Macros that check for particular features
* Writing Tests               How to write new feature checks
* Results                     What to do with results from feature checks
* Programming in M4           Layers on top of which Autoconf is written
* Writing Autoconf Macros     Adding new macros to Autoconf
* Portable Shell              Shell script portability pitfalls
* Manual Configuration        Selecting features that can't be guessed
* Site Configuration          Local defaults for `configure'
* Running configure Scripts   How to use the Autoconf output
* config.status Invocation    Recreating a configuration
* Obsolete Constructs         Kept for backward compatibility
* Using Autotest              Creating portable test suites
* FAQ                         Frequent Autoconf Questions, with answers
* History                     History of Autoconf
* Copying This Manual         How to make copies of this manual
* Indices                     Indices of symbols, concepts, etc.
 
  --- The Detailed Node Listing ---
 
 The GNU Build System
 
* Automake                    Escaping Makefile hell
* Libtool                     Building libraries portably
* Pointers                    More info on the GNU build system
 
 Making `configure' Scripts
 
* Writing configure.ac        What to put in an Autoconf input file
* autoscan Invocation         Semi-automatic `configure.ac' writing
* ifnames Invocation          Listing the conditionals in source code
* autoconf Invocation         How to create configuration scripts
* autoreconf Invocation       Remaking multiple `configure' scripts
 
 Writing `configure.ac'
 
* Shell Script Compiler       Autoconf as solution of a problem
* Autoconf Language           Programming in Autoconf
* configure.ac Layout         Standard organization of `configure.ac'
 
 Initialization and Output Files
 
* Initializing configure      Option processing etc.
* Notices                     Copyright, version numbers in `configure'
* Input                       Where Autoconf should find files
* Output                      Outputting results from the configuration
* Configuration Actions       Preparing the output based on results
* Configuration Files         Creating output files
* Makefile Substitutions      Using output variables in `Makefile's
* Configuration Headers       Creating a configuration header file
* Configuration Commands      Running arbitrary instantiation commands
* Configuration Links         Links depending on the configuration
* Subdirectories              Configuring independent packages together
* Default Prefix              Changing the default installation prefix
 
 Substitutions in Makefiles
 
* Preset Output Variables     Output variables that are always set
* Installation Directory Variables  Other preset output variables
* Build Directories           Supporting multiple concurrent compiles
* Automatic Remaking          Makefile rules for configuring
 
 Configuration Header Files
 
* Header Templates            Input for the configuration headers
* autoheader Invocation       How to create configuration templates
* Autoheader Macros           How to specify CPP templates
 
 Existing Tests
 
* Common Behavior             Macros' standard schemes
* Alternative Programs        Selecting between alternative programs
* Files                       Checking for the existence of files
* Libraries                   Library archives that might be missing
* Library Functions           C library functions that might be missing
* Header Files                Header files that might be missing
* Declarations                Declarations that may be missing
* Structures                  Structures or members that might be missing
* Types                       Types that might be missing
* Compilers and Preprocessors  Checks for compiling programs
* System Services             Operating system services
* UNIX Variants               Special kludges for specific UNIX variants
 
 Common Behavior
 
* Standard Symbols            Symbols defined by the macros
* Default Includes            Includes used by the generic macros
 
 Alternative Programs
 
* Particular Programs         Special handling to find certain programs
* Generic Programs            How to find other programs
 
 Library Functions
 
* Function Portability        Pitfalls with usual functions
* Particular Functions        Special handling to find certain functions
* Generic Functions           How to find other functions
 
 Header Files
 
* Header Portability          Collected knowledge on common headers
* Particular Headers          Special handling to find certain headers
* Generic Headers             How to find other headers
 
 Declarations
 
* Particular Declarations     Macros to check for certain declarations
* Generic Declarations        How to find other declarations
 
 Structures
 
* Particular Structures       Macros to check for certain structure members
* Generic Structures          How to find other structure members
 
 Types
 
* Particular Types            Special handling to find certain types
* Generic Types               How to find other types
 
 Compilers and Preprocessors
 
* Specific Compiler Characteristics  Some portability issues
* Generic Compiler Characteristics  Language independent tests
* C Compiler                  Checking its characteristics
* C++ Compiler                Likewise
* Fortran 77 Compiler         Likewise
 
 Writing Tests
 
* Examining Declarations      Detecting header files and declarations
* Examining Syntax            Detecting language syntax features
* Examining Libraries         Detecting functions and global variables
* Run Time                    Testing for run-time features
* Systemology                 A zoology of operating systems
* Multiple Cases              Tests for several possible values
* Language Choice             Selecting which language to use for testing
 
 Checking Run-Time Behavior
 
* Test Programs               Running test programs
* Guidelines                  General rules for writing test programs
* Test Functions              Avoiding pitfalls in test programs
 
 Results of Tests
 
* Defining Symbols            Defining C preprocessor symbols
* Setting Output Variables    Replacing variables in output files
* Caching Results             Speeding up subsequent `configure' runs
* Printing Messages           Notifying `configure' users
 
 Caching Results
 
* Cache Variable Names        Shell variables used in caches
* Cache Files                 Files `configure' uses for caching
* Cache Checkpointing         Loading and saving the cache file
 
 Programming in M4
 
* M4 Quotation                Protecting macros from unwanted expansion
* Invoking autom4te           The Autoconf executables backbone
* Programming in M4sugar      Convenient pure M4 macros
* Programming in M4sh         Common shell constructs
 
 M4 Quotation
 
* Active Characters           Characters that change the behavior of m4
* One Macro Call              Quotation and one macro call
* Quotation and Nested Macros  Macros calling macros
* Changequote is Evil         Worse than INTERCAL: M4 + changequote
* Quadrigraphs                Another way to escape special characters
* Quotation Rule Of Thumb     One parenthesis, one quote
 
 Programming in M4sugar
 
* Redefined M4 Macros         M4 builtins changed in M4sugar
* Evaluation Macros           More quotation and evaluation control
* Forbidden Patterns          Catching unexpanded macros
 
 Writing Autoconf Macros
 
* Macro Definitions           Basic format of an Autoconf macro
* Macro Names                 What to call your new macros
* Reporting Messages          Notifying `autoconf' users
* Dependencies Between Macros  What to do when macros depend on other macros
* Obsoleting Macros           Warning about old ways of doing things
* Coding Style                Writing Autoconf macros a` la Autoconf
 
 Dependencies Between Macros
 
* Prerequisite Macros         Ensuring required information
* Suggested Ordering          Warning about possible ordering problems
 
 Portable Shell Programming
 
* Shellology                  A zoology of shells
* Here-Documents              Quirks and tricks
* File Descriptors            FDs and redirections
* File System Conventions     File- and pathnames
* Shell Substitutions         Variable and command expansions
* Assignments                 Varying side effects of assignments
* Special Shell Variables     Variables you should not change
* Limitations of Builtins     Portable use of not so portable /bin/sh
* Limitations of Usual Tools  Portable use of portable tools
* Limitations of Make         Portable Makefiles
 
 Manual Configuration
 
* Specifying Names            Specifying the system type
* Canonicalizing              Getting the canonical system type
* Using System Type           What to do with the system type
 
 Site Configuration
 
* External Software           Working with other optional software
* Package Options             Selecting optional features
* Pretty Help Strings         Formatting help string
* Site Details                Configuring site details
* Transforming Names          Changing program names when installing
* Site Defaults               Giving `configure' local defaults
 
 Transforming Program Names When Installing
 
* Transformation Options      `configure' options to transform names
* Transformation Examples     Sample uses of transforming names
* Transformation Rules        `Makefile' uses of transforming names
 
 Running `configure' Scripts
 
* Basic Installation          Instructions for typical cases
* Compilers and Options       Selecting compilers and optimization
* Multiple Architectures      Compiling for multiple architectures at once
* Installation Names          Installing in different directories
* Optional Features           Selecting optional features
* System Type                 Specifying the system type
* Sharing Defaults            Setting site-wide defaults for `configure'
* Defining Variables          Specifying the compiler etc.
* configure Invocation        Changing how `configure' runs
 
 Obsolete Constructs
 
* Obsolete config.status Use  Different calling convention
* acconfig.h                  Additional entries in `config.h.in'
* autoupdate Invocation       Automatic update of `configure.ac'
* Obsolete Macros             Backward compatibility macros
* Autoconf 1                  Tips for upgrading your files
* Autoconf 2.13               Some fresher tips
 
 Upgrading From Version 1
 
* Changed File Names          Files you might rename
* Changed Makefiles           New things to put in `Makefile.in'
* Changed Macros              Macro calls you might replace
* Changed Results             Changes in how to check test results
* Changed Macro Writing       Better ways to write your own macros
 
 Upgrading From Version 2.13
 
* Changed Quotation           Broken code which used to work
* New Macros                  Interaction with foreign macros
* Hosts and Cross-Compilation  Bugward compatibility kludges
* AC_LIBOBJ vs LIBOBJS        LIBOBJS is a forbidden token
 
 Generating Test Suites with Autotest
 
* Using an Autotest Test Suite  Autotest and the user
* Writing testsuite.at        Autotest macros
* testsuite Invocation        Running `testsuite' scripts
* Making testsuite Scripts    Using autom4te to create `testsuite'
 
 Using an Autotest Test Suite
 
* testsuite Scripts           The concepts of Autotest
* Autotest Logs               Their contents
 
 Frequent Autoconf Questions, with answers
 
* Distributing                Distributing `configure' scripts
* Why GNU m4                  Why not use the standard M4?
* Bootstrapping               Autoconf and GNU M4 require each other?
* Why Not Imake               Why GNU uses `configure' instead of Imake
* Defining Directories        Passing `datadir' to program
 
 History of Autoconf
 
* Genesis                     Prehistory and naming of `configure'
* Exodus                      The plagues of M4 and Perl
* Leviticus                   The priestly code of portability arrives
* Numbers                     Growth and contributors
* Deuteronomy                 Approaching the promises of easy configuration
 
 Copying This Manual
 
* GNU Free Documentation License  License for copying this manual
 
 Indices
 
* Environment Variable Index  Index of environment variables used
* Output Variable Index       Index of variables set in output files
* Preprocessor Symbol Index   Index of C preprocessor symbols defined
* Autoconf Macro Index        Index of Autoconf macros
* M4 Macro Index              Index of M4, M4sugar, and M4sh macros
* Autotest Macro Index        Index of Autotest macros
* Program & Function Index    Index of those with portability problems
* Concept Index               General index
 
Info Catalog (dir) Top (autoconf) Introduction
automatically generated byinfo2html