GNU Info

Info Node: (autoconf.info)Top

(autoconf.info)Top


Next: Introduction Prev: (dir) Up: (dir)
Enter node , (file) or (file)node

   This file documents the GNU Autoconf package for creating scripts to
configure source code packages using templates and an `m4' macro
package.  This is edition 2.13, for Autoconf version 2.13.

Introduction
Autoconf's purpose, strengths, and weaknesses.
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.
Writing Macros
Adding new macros to Autoconf.
Manual Configuration
Selecting features that can't be guessed.
Site Configuration
Local defaults for `configure'.
Invoking configure
How to use the Autoconf output.
Invoking config.status
Recreating a configuration.
Questions
Questions about Autoconf, with answers.
Upgrading
Tips for upgrading from version 1.
History
History of Autoconf.
Old Macro Names
Backward compatibility macros.
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.
Macro Index
Index of Autoconf macros.
 --- The Detailed Node Listing ---

Making `configure' Scripts

Writing configure.in
What to put in an Autoconf input file.
Invoking autoscan
Semi-automatic `configure.in' writing.
Invoking ifnames
Listing the conditionals in source code.
Invoking autoconf
How to create configuration scripts.
Invoking autoreconf
Remaking multiple `configure' scripts.
Initialization and Output Files

Input
Where Autoconf should find files.
Output
Creating output files.
Makefile Substitutions
Using output variables in `Makefile's.
Configuration Headers
Creating a configuration header file.
Subdirectories
Configuring independent packages together.
Default Prefix
Changing the default installation prefix.
Versions
Version numbers in `configure'.
Substitutions in Makefiles

Preset Output Variables
Output variables that are always set.
Build Directories
Supporting multiple concurrent compiles.
Automatic Remaking
Makefile rules for configuring.
Configuration Header Files

Header Templates
Input for the configuration headers.
Invoking autoheader
How to create configuration templates.
Existing Tests

Alternative Programs
Selecting between alternative programs.
Libraries
Library archives that might be missing.
Library Functions
C library functions that might be missing.
Header Files
Header files that might be missing.
Structures
Structures or members that might be missing.
Typedefs
`typedef's that might be missing.
C Compiler Characteristics
Fortran 77 Compiler Characteristics
System Services
Operating system services.
UNIX Variants
Special kludges for specific UNIX variants.
Alternative Programs

Particular Programs
Special handling to find certain programs.
Generic Programs
How to find other programs.
Library Functions

Particular Functions
Special handling to find certain functions.
Generic Functions
How to find other functions.
Header Files

Particular Headers
Special handling to find certain headers.
Generic Headers
How to find other headers.
Typedefs

Particular Typedefs
Special handling to find certain types.
Generic Typedefs
How to find other types.
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.
Portable Shell
Shell script portability pitfalls.
Testing Values and Files
Checking strings and files.
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 users of progress or problems.
Caching Results

Cache Variable Names
Shell variables used in caches.
Cache Files
Files `configure' uses for caching.
Writing Macros

Macro Definitions
Basic format of an Autoconf macro.
Macro Names
What to call your new macros.
Quoting
Protecting macros from unwanted expansion.
Dependencies Between Macros
What to do when macros depend on other macros.
Dependencies Between Macros

Prerequisite Macros
Ensuring required information.
Suggested Ordering
Warning about possible ordering problems.
Obsolete Macros
Warning about old ways of doing things.
Manual Configuration

Specifying Names
Specifying the system type.
Canonicalizing
Getting the canonical system type.
System Type Variables
Variables containing the 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.
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'.
Operation Controls
Changing how `configure' runs.
Questions About Autoconf

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.
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.
Invoking autoupdate
Replacing old macro names in `configure.in'.
Changed Results
Changes in how to check test results.
Changed Macro Writing
Better ways to write your own macros.
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.

automatically generated by info2www version 1.2.2.9