Autoconf Creating Automatic Configuration Scripts for version 2.66, 2 July 2010 David MacKenzie Ben Elliston Akim Demaille This manual (2 July 2010) is for GNU Autoconf (version 2.66), 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, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 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.3 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 the freedom to copy and modify this GNU manual. Buying copies from the FSF supports it in developing GNU and promoting software freedom." i Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::: 1 2 The GNU Build System:::::::::::::::::::::::: 3 2.1 Automake:::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2.2 Gnulib ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2.3 Libtool::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 2.4 Pointers:::::::::::::::::::::::::::::::::::::::::::::::::::::::: 4 3 Making configure Scripts :::::::::::::::::::::: 5 3.1 Writing `configure.ac' :::::::::::::::::::::::::::::::::::::::: 6 3.1.1 A Shell Script Compiler ::::::::::::::::::::::::::::::::::: 6 3.1.2 The Autoconf Language ::::::::::::::::::::::::::::::::::: 7 3.1.3 Standard `configure.ac' Layout :::::::::::::::::::::::::: 9 3.2 Using autoscan to Create `configure.ac'::::::::::::::::::::: 10 3.3 Using ifnames to List Conditionals:::::::::::::::::::::::::::: 11 3.4 Using autoconf to Create configure ::::::::::::::::::::::::: 11 3.5 Using autoreconf to Update configure Scripts ::::::::::::::: 13 4 Initialization and Output Files ::::::::::::::: 17 4.1 Initializing configure::::::::::::::::::::::::::::::::::::::::: 17 4.2 Dealing with Autoconf versions:::::::::::::::::::::::::::::::: 18 4.3 Notices in configure ::::::::::::::::::::::::::::::::::::::::: 18 4.4 Finding configure Input ::::::::::::::::::::::::::::::::::::: 19 4.5 Outputting Files :::::::::::::::::::::::::::::::::::::::::::::: 20 4.6 Performing Configuration Actions ::::::::::::::::::::::::::::: 21 4.7 Creating Configuration Files :::::::::::::::::::::::::::::::::: 23 4.8 Substitutions in Makefiles ::::::::::::::::::::::::::::::::::::: 23 4.8.1 Preset Output Variables :::::::::::::::::::::::::::::::::: 23 4.8.2 Installation Directory Variables::::::::::::::::::::::::::: 27 4.8.3 Changed Directory Variables ::::::::::::::::::::::::::::: 30 4.8.4 Build Directories ::::::::::::::::::::::::::::::::::::::::: 31 4.8.5 Automatic Remaking::::::::::::::::::::::::::::::::::::: 32 4.9 Configuration Header Files :::::::::::::::::::::::::::::::::::: 33 4.9.1 Configuration Header Templates:::::::::::::::::::::::::: 34 4.9.2 Using autoheader to Create `config.h.in'::::::::::::::: 35 4.9.3 Autoheader Macros :::::::::::::::::::::::::::::::::::::: 36 4.10 Running Arbitrary Configuration Commands ::::::::::::::::: 37 4.11 Creating Configuration Links::::::::::::::::::::::::::::::::: 38 4.12 Configuring Other Packages in Subdirectories::::::::::::::::: 38 4.13 Default Prefix:::::::::::::::::::::::::::::::::::::::::::::::: 39 ii Autoconf 5 Existing Tests:::::::::::::::::::::::::::::::::: 41 5.1 Common Behavior :::::::::::::::::::::::::::::::::::::::::::: 41 5.1.1 Standard Symbols :::::::::::::::::::::::::::::::::::::::: 41 5.1.2 Default Includes:::::::::::::::::::::::::::::::::::::::::: 41 5.2 Alternative Programs ::::::::::::::::::::::::::::::::::::::::: 43 5.2.1 Particular Program Checks ::::::::::::::::::::::::::::::: 43 5.2.2 Generic Program and File Checks :::::::::::::::::::::::: 46 5.3 Files :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 49 5.4 Library Files :::::::::::::::::::::::::::::::::::::::::::::::::: 49 5.5 Library Functions ::::::::::::::::::::::::::::::::::::::::::::: 50 5.5.1 Portability of C Functions :::::::::::::::::::::::::::::::: 50 5.5.2 Particular Function Checks ::::::::::::::::::::::::::::::: 53 5.5.3 Generic Function Checks ::::::::::::::::::::::::::::::::: 60 5.6 Header Files :::::::::::::::::::::::::::::::::::::::::::::::::: 62 5.6.1 Portability of Headers :::::::::::::::::::::::::::::::::::: 62 5.6.2 Particular Header Checks::::::::::::::::::::::::::::::::: 64 5.6.3 Generic Header Checks ::::::::::::::::::::::::::::::::::: 69 5.7 Declarations :::::::::::::::::::::::::::::::::::::::::::::::::: 70 5.7.1 Particular Declaration Checks :::::::::::::::::::::::::::: 70 5.7.2 Generic Declaration Checks :::::::::::::::::::::::::::::: 70 5.8 Structures :::::::::::::::::::::::::::::::::::::::::::::::::::: 72 5.8.1 Particular Structure Checks :::::::::::::::::::::::::::::: 72 5.8.2 Generic Structure Checks::::::::::::::::::::::::::::::::: 73 5.9 Types::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 73 5.9.1 Particular Type Checks :::::::::::::::::::::::::::::::::: 74 5.9.2 Generic Type Checks ::::::::::::::::::::::::::::::::::::: 76 5.10 Compilers and Preprocessors ::::::::::::::::::::::::::::::::: 77 5.10.1 Specific Compiler Characteristics :::::::::::::::::::::::: 77 5.10.2 Generic Compiler Characteristics :::::::::::::::::::::::: 77 5.10.3 C Compiler Characteristics :::::::::::::::::::::::::::::: 79 5.10.4 C++ Compiler Characteristics :::::::::::::::::::::::::: 85 5.10.5 Objective C Compiler Characteristics:::::::::::::::::::: 85 5.10.6 Objective C++ Compiler Characteristics :::::::::::::::: 86 5.10.7 Erlang Compiler and Interpreter Characteristics ::::::::: 86 5.10.8 Fortran Compiler Characteristics :::::::::::::::::::::::: 87 5.11 System Services :::::::::::::::::::::::::::::::::::::::::::::: 92 5.12 Posix Variants ::::::::::::::::::::::::::::::::::::::::::::::: 93 5.13 Erlang Libraries ::::::::::::::::::::::::::::::::::::::::::::: 94 iii 6 Writing Tests :::::::::::::::::::::::::::::::::: 97 6.1 Language Choice :::::::::::::::::::::::::::::::::::::::::::::: 97 6.2 Writing Test Programs :::::::::::::::::::::::::::::::::::::::: 99 6.2.1 Guidelines for Test Programs ::::::::::::::::::::::::::::: 99 6.2.2 Test Functions ::::::::::::::::::::::::::::::::::::::::::: 99 6.2.3 Generating Sources:::::::::::::::::::::::::::::::::::::: 100 6.3 Running the Preprocessor :::::::::::::::::::::::::::::::::::: 102 6.4 Running the Compiler ::::::::::::::::::::::::::::::::::::::: 104 6.5 Running the Linker :::::::::::::::::::::::::::::::::::::::::: 104 6.6 Checking Runtime Behavior :::::::::::::::::::::::::::::::::: 105 6.7 Systemology ::::::::::::::::::::::::::::::::::::::::::::::::: 106 6.8 Multiple Cases ::::::::::::::::::::::::::::::::::::::::::::::: 107 7 Results of Tests :::::::::::::::::::::::::::::: 109 7.1 Defining C Preprocessor Symbols::::::::::::::::::::::::::::: 109 7.2 Setting Output Variables::::::::::::::::::::::::::::::::::::: 110 7.3 Special Characters in Output Variables::::::::::::::::::::::: 112 7.4 Caching Results:::::::::::::::::::::::::::::::::::::::::::::: 113 7.4.1 Cache Variable Names :::::::::::::::::::::::::::::::::: 114 7.4.2 Cache Files ::::::::::::::::::::::::::::::::::::::::::::: 115 7.4.3 Cache Checkpointing :::::::::::::::::::::::::::::::::::: 115 7.5 Printing Messages:::::::::::::::::::::::::::::::::::::::::::: 116 8 Programming in M4 ::::::::::::::::::::::::: 119 8.1 M4 Quotation ::::::::::::::::::::::::::::::::::::::::::::::: 119 8.1.1 Active Characters ::::::::::::::::::::::::::::::::::::::: 119 8.1.2 One Macro Call ::::::::::::::::::::::::::::::::::::::::: 120 8.1.3 Quoting and Parameters :::::::::::::::::::::::::::::::: 121 8.1.4 Quotation and Nested Macros ::::::::::::::::::::::::::: 122 8.1.5 changequote is Evil::::::::::::::::::::::::::::::::::::: 123 8.1.6 Quadrigraphs ::::::::::::::::::::::::::::::::::::::::::: 124 8.1.7 Dealing with unbalanced parentheses :::::::::::::::::::: 125 8.1.8 Quotation Rule Of Thumb :::::::::::::::::::::::::::::: 127 8.2 Using autom4te:::::::::::::::::::::::::::::::::::::::::::::: 128 8.2.1 Invoking autom4te :::::::::::::::::::::::::::::::::::::: 128 8.2.2 Customizing autom4te :::::::::::::::::::::::::::::::::: 132 8.3 Programming in M4sugar :::::::::::::::::::::::::::::::::::: 133 8.3.1 Redefined M4 Macros ::::::::::::::::::::::::::::::::::: 133 8.3.2 Diagnostic messages from M4sugar :::::::::::::::::::::: 136 8.3.3 Diversion support ::::::::::::::::::::::::::::::::::::::: 137 8.3.4 Conditional constructs :::::::::::::::::::::::::::::::::: 140 8.3.5 Looping constructs :::::::::::::::::::::::::::::::::::::: 142 8.3.6 Evaluation Macros :::::::::::::::::::::::::::::::::::::: 147 8.3.7 String manipulation in M4 :::::::::::::::::::::::::::::: 151 8.3.8 Arithmetic computation in M4 :::::::::::::::::::::::::: 154 8.3.9 Set manipulation in M4 ::::::::::::::::::::::::::::::::: 156 8.3.10 Forbidden Patterns :::::::::::::::::::::::::::::::::::: 160 8.4 Debugging via autom4te ::::::::::::::::::::::::::::::::::::: 160 iv Autoconf 9 Programming in M4sh ::::::::::::::::::::::: 163 9.1 Common Shell Constructs:::::::::::::::::::::::::::::::::::: 163 9.2 Support for indirect variable names :::::::::::::::::::::::::: 166 9.3 Initialization Macros ::::::::::::::::::::::::::::::::::::::::: 169 9.4 File Descriptor Macros ::::::::::::::::::::::::::::::::::::::: 170 10 Writing Autoconf Macros
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages380 Page
-
File Size-