Lines Matching full:configure
1 This is configure.info, produced by makeinfo version 4.13 from
2 /Volumes/androidtc/androidtoolchain/./src/build/../gdb/gdb-7.3.x/etc/configure.texi.
6 * configure: (configure). The GNU configure and build system
9 This file documents the GNU configure and build system.
28 File: configure.info, Node: Top, Next: Introduction, Up: (dir)
30 GNU configure and build system
33 The GNU configure and build system.
43 * Cygnus Configure:: Cygnus Configure.
49 File: configure.info, Node: Introduction, Next: Getting Started, Prev: Top, Up: Top
54 This document describes the GNU configure and build systems. It
56 also includes a discussion of the older Cygnus configure system.
68 (*note libtool overview: (libtool)Top.), and the Cygnus configure
79 File: configure.info, Node: Goals, Next: Tools, Up: Introduction
84 The GNU configure and build system has two main goals.
98 File: configure.info, Node: Tools, Next: History, Prev: Goals, Up: Introduction
103 The GNU configure and build system is comprised of several different
133 File: configure.info, Node: History, Next: Building, Prev: Tools, Up: Introduction
150 * The Cygnus configure script, by K. Richard Pixley, and the gcc
151 configure script, by Richard Stallman. These use essentially the
161 all the features of Cygnus configure. Since then, there has been a
162 slow but steady conversion of GNU programs from Cygnus configure to
163 autoconf. gcc has been converted, eliminating the gcc configure script.
200 File: configure.info, Node: Building, Prev: History, Up: Introduction
206 running `configure' and `make'. This section may serve as a quick
209 Building a tool is normally as simple as running `configure'
210 followed by `make'. You should normally run `configure' from an empty
211 directory, using some path to refer to the `configure' script in the
212 source directory. The directory in which you run `configure' is called
226 configure options simultaneously.
228 If you don't have GNU `make', you will have to run `configure' in
232 After running `configure', you can build the tools by running `make'.
237 by `configure' options, as described below.
245 All `configure' scripts support a wide variety of options. The most
249 configure script.
275 File: configure.info, Node: Getting Started, Next: Files, Prev: Introduction, Up: Top
280 To start using the GNU configure and build system with your software
286 * Write configure.in:: Write configure.in.
293 File: configure.info, Node: Write configure.in, Next: Write Makefile.am, Up: Getting Started
295 2.1 Write configure.in
298 You must first write the file `configure.in'. This is an autoconf
302 You will write tests in your `configure.in' file to check for
309 by putting `AC_CHECK_FUNCS(gettimeofday)' in `configure.in'.
311 When the configure script is run at build time, this will arrange to
318 help identify potential portability problems, and hence configure tests
327 package, every `configure.in' file should contain the following macros.
337 invalid `configure' script. For example, `AC_PREREQ(2.12)'.
355 This is what you should normally put in `configure.in':
362 This macro always appears in Cygnus configure scripts. Other
367 the configure system. This of course requires that developers be
378 Either this macro or `AM_EXEEXT' always appears in Cygnus configure
399 However, if this `configure.in' file is for a library which is to
403 can be found in various `configure.in' files for libraries that are
421 `AM_DISABLE_SHARED' before `AM_PROG_LIBTOOL'. The configure
434 This macro takes a list of file names which the configure process
441 If you want to use locally defined macros in your `configure.in'
453 File: configure.info, Node: Write Makefile.am, Next: Write acconfig.h, Prev: Write configure.in, Up: Getting Started
473 in the `AC_OUTPUT' macro in `configure.in'.
516 to `configure'. If those options are not used, the default values are
517 based on the `--prefix' or `--exec-prefix' options to `configure'. It
528 File: configure.info, Node: Write acconfig.h, Next: Generate files, Prev: Write Makefile.am, Up: Getting Started
534 `AM_CONFIG_HEADER' in `configure.in'), then you will have to write a
547 for any unusual macros in the `configure.in' file, including any macro
551 `AC_DEFINE(_GNU_SOURCE)' in `configure.in' as suggested above, you will
558 you do anything particular odd in your `configure.in' file, you will
568 File: configure.info, Node: Generate files, Next: Getting Started Example, Prev: Write acconfig.h, Up: Getting Started
573 Once you have written `configure.in', `Makefile.am', `acconfig.h', and
602 errors, you should create a new empty directory, and run the `configure'
615 File: configure.info, Node: Getting Started Example, Prev: Generate files, Up: Getting Started
639 File: configure.info, Node: Getting Started Example 1, Next: Getting Started Example 2, Up: Getting Started Example
696 `autoscan', which will create a `configure.scan' file which we can use
697 as a prototype for our `configure.in' file. I won't show the output,
706 File: configure.info, Node: Getting Started Example 2, Next: Getting Started Example 3, Prev: Getting Started Example 1, Up: Getting Started Example
832 File: configure.info, Node: Getting Started Example 3, Next: Generate Files in Example, Prev: Getting Started Example 2, Up: Getting Started Example
837 For our third try at this program, we will write a `configure.in'
846 The new `configure.in' file is as follows.
859 above; see *note Write configure.in::. If we omit these macros, then
906 File: configure.info, Node: Generate Files in Example, Prev: Getting Started Example 3, Up: Getting Started Example
936 * `configure'
945 File: configure.info, Node: Files, Next: Configuration Names, Prev: Getting Started, Up: Top
950 As was seen in the previous chapter, the GNU configure and build system
965 File: configure.info, Node: Developer Files, Next: Build Files, Up: Files
980 File: configure.info, Node: Developer Files Picture, Next: Written Developer Files, Up: Developer Files
991 acconfig.h configure.in Makefile.am
1007 configure
1010 File: configure.info, Node: Written Developer Files, Next: Generated Developer Files, Prev: Developer Files Picture, Up: Developer Files
1017 `configure.in'
1023 builder runs the configure script. This file is always required
1024 when using the GNU configure system. *Note Write configure.in::.
1036 When the configure script creates a portability header file, by
1042 `configure.in' will require a line in this file. *Note Write
1047 macros. These macros may then be used in `configure.in'. If you
1050 macros, since you can put everything in `configure.in', but
1063 File: configure.info, Node: Generated Developer Files, Prev: Written Developer Files, Up: Developer Files
1073 `AM_MAINTAINER_MODE' is used in `configure.in' (the normal case in
1075 you configure using the `--enable-maintainer-mode' option.
1082 `configure'
1083 This is the configure script which will be run when building the
1084 package. This is generated by `autoconf' from `configure.in' and
1088 This is the file which the configure script will turn into the
1092 with some configure substitutions for certain variables.
1096 contents of `configure.in' and `acinclude.m4' (or, as noted in the
1099 which `autoconf' will use when generating the file `configure'.
1103 this file yourself; in that case, if `configure.in' uses only
1108 `configure.in'. At build time, the configure script will define
1122 upon `configure.in', but it is easy to change `configure.in' in a
1126 File: configure.info, Node: Build Files, Next: Support Files, Prev: Developer Files, Up: Files
1131 This section describes the files which are created at configure and
1146 File: configure.info, Node: Build Files Picture, Next: Build Files Description, Up: Build Files
1155 config.in *configure* Makefile.in
1166 File: configure.info, Node: Build Files Description, Prev: Build Files Picture, Up: Build Files
1174 The first step in building a package is to run the `configure'
1175 script. The `configure' script will create the file
1177 run `configure', it will automatically run `config.status'. An
1194 It is used by the `configure' script to cache results between
1196 `configure.in' in such a way that the results of old tests should
1202 file. This can speed up running `configure' scripts on your
1213 File: configure.info, Node: Support Files, Prev: Build Files, Up: Files
1218 The GNU configure and build system requires several support files to be
1226 macro in `configure.in' to tell `automake' and the `configure' script
1257 configure script can not find an install binary.
1294 File: configure.info, Node: Configuration Names, Next: Cross Compilation Tools, Prev: Files, Up: Top
1299 The GNU configure system names all systems using a "configuration
1310 File: configure.info, Node: Configuration Name Definition, Next: Using Configuration Names, Up: Configuration Names
1319 When using a configuration name in a configure option, it is normally
1363 File: configure.info, Node: Using Configuration Names, Prev: Configuration Name Definition, Up: Configuration Names
1368 A configure script will sometimes have to make a decision based on a
1381 statement in `configure.in'. The case statement might look something
1383 canonical configuration name (which will be the case if `configure.in'
1406 File: configure.info, Node: Cross Compilation Tools, Next: Canadian Cross, Prev: Configuration Names, Up: Top
1411 The GNU configure and build system can be used to build "cross
1425 File: configure.info, Node: Cross Compilation Concepts, Next: Host and Target, Up: Cross Compilation Tools
1447 File: configure.info, Node: Host and Target, Next: Using the Host Type, Prev: Cross Compilation Concepts, Up: Cross Compilation Tools
1481 File: configure.info, Node: Using the Host Type, Next: Specifying the Target, Prev: Host and Target, Up: Cross Compilation Tools
1487 `configure' script, and on which you build the tools (for the case when
1490 If your configure script needs to know the configuration name of the
1493 `configure.in'. This macro will arrange to define a few shell
1494 variables when the `configure' script is run.
1513 `configure.in'. For an example, see *note Using Configuration Names::.
1516 File: configure.info, Node: Specifying the Target, Next: Using the Target Type, Prev: Using the Host Type, Up: Cross Compilation Tools
1521 By default, the `configure' script will assume that the target is the
1527 `configure'. The argument to `--target' is the configuration name of
1535 File: configure.info, Node: Using the Target Type, Next: Cross Tools in the Cygnus Tree, Prev: Specifying the Target, Up: Cross Compilation Tools
1540 When writing `configure.in' for a cross compilation tool, you will need
1542 `AC_CANONICAL_SYSTEM' in `configure.in'.
1577 to configure a cross compilation tool.
1613 File: configure.info, Node: Cross Tools in the Cygnus Tree, Prev: Using the Target Type, Up: Cross Compilation Tools
1621 In the Cygnus tree, the top level `configure' script uses the old
1622 Cygnus configure system, not autoconf. The top level `Makefile.in' is
1625 `configure'/`make' step.
1634 * Target Library Configure Scripts:: Target Library Configure Scripts.
1639 File: configure.info, Node: Host and Target Libraries, Next: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
1662 There is a complication here. The configure process needs to know
1667 `configure'/`make', the configuration of the target libraries is
1698 To summarize, running `configure' in the Cygnus tree configures all
1699 the host libraries and tools, but does not configure any of the target
1708 * Using the newly built target compiler, configure the target
1717 File: configure.info, Node: Target Library Configure Scripts, Next: Make Targets in Cygnus Tree, Prev: Host and Target Libraries, Up: Cross Tools in the Cygnus Tree
1719 5.6.2 Target Library Configure Scripts
1722 There are a few things you must know in order to write a configure
1732 This means that the configure script for a target library may not use
1745 compiler. See the `configure.in' file in a directory like `libiberty'
1750 sometimes built in a subdirectory. The `--with-target-subdir' configure
1756 configure used the `--target' option), then the library will be
1771 is OK to use link tests in the configure script. If the
1776 File: configure.info, Node: Make Targets in Cygnus Tree, Next: Target libiberty, Prev: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
1793 `Makefile' target `configure-target-DIR' will configure that library.
1796 Every `configure-target-DIR' target depends upon `all-gcc', since
1797 gcc, the target compiler, is required to configure the tool. Every
1799 `configure-target-DIR' target.
1807 File: configure.info, Node: Target libiberty, Prev: Make Targets in Cygnus Tree, Up: Cross Tools in the Cygnus Tree
1839 File: configure.info, Node: Canadian Cross, Next: Cygnus Configure, Prev: Cross Compilation Tools, Up: Top
1844 It is possible to use the GNU configure and build system to build a
1862 File: configure.info, Node: Canadian Cross Example, Next: Canadian Cross Concepts, Up: Canadian Cross
1885 be simpler to configure and build on a Unix system than to support the
1889 File: configure.info, Node: Canadian Cross Concepts, Next: Build Cross Host Tools, Prev: Canadian Cross Example, Up: Canadian Cross
1923 File: configure.info, Node: Build Cross Host Tools, Next: Build and Host Options, Prev: Canadian Cross Concepts, Up: Canadian Cross
1928 In order to configure a program for a Canadian Cross build, you must
1945 File: configure.info, Node: Build and Host Options, Next: CCross not in Cygnus Tree, Prev: Build Cross Host Tools, Up: Canadian Cross
1950 When you run `configure', you must use both the `--build' and `--host'
1971 `--build' option that the configure script could run `config.guess' to
1974 historical reasons, some configure scripts are routinely run using an
1983 File: configure.info, Node: CCross not in Cygnus Tree, Next: CCross in Cygnus Tree, Prev: Build and Host Options, Up: Canadian Cross
1990 setting environment variables before running the `configure' script.
2007 File: configure.info, Node: CCross in Cygnus Tree, Next: Supporting Canadian Cross, Prev: CCross not in Cygnus Tree, Up: Canadian Cross
2021 File: configure.info, Node: Standard Cygnus CCross, Next: Cross Cygnus CCross, Up: CCross in Cygnus Tree
2042 For example, if you configure with `--build=i386-linux-gnu' and
2049 File: configure.info, Node: Cross Cygnus CCross, Prev: Standard Cygnus CCross, Up: CCross in Cygnus Tree
2075 `configure'/`make' step. Because it builds these in a single step, it
2085 cross MIPS ELF (configure name `mips-elf') compiler, you might execute
2091 SRCDIR/configure --target i386-cygwin32 --prefix=INSTALLDIR \
2098 SRCDIR/configure --target mips-elf --prefix=INSTALLDIR \
2105 SRCDIR/configure --build=i386-linux-gnu --host=i386-cygwin32 \
2115 File: configure.info, Node: Supporting Canadian Cross, Prev: CCross in Cygnus Tree, Up: Canadian Cross
2122 configure and make rules. Simple cases will normally work correctly.
2123 However, it is not hard to write configure and make tests which will
2128 * CCross in Configure:: Supporting Canadian Cross in Configure Scripts.
2132 File: configure.info, Node: CCross in Configure, Next: CCross in Make, Up: Supporting Canadian Cross
2134 6.7.1 Supporting Canadian Cross in Configure Scripts
2137 In a `configure.in' file, after calling `AC_PROG_CC', you can find out
2138 whether this is a Canadian Cross configure by examining the shell
2144 configure script. However, if you do need that information, you can get
2151 When writing tests in `configure.in', you must remember that you
2161 build environment. Remember that the configure script is running on the
2162 build system, not the host system. If your configure scripts examines
2173 configure script what to do in a Canadian Cross. If that argument is
2176 This tells you that the resulting `configure' script will not work
2179 In some cases while it may better to perform a test at configure
2182 your program that the test could not be performed at configure time.
2193 File: configure.info, Node: CCross in Make, Prev: CCross in Configure, Up: Supporting Canadian Cross
2212 compiling with `$(CC_FOR_BUILD)'. The `configure' script will build
2226 File: configure.info, Node: Cygnus Configure, Next: Multilibs, Prev: Canadian Cross, Up: Top
2228 7 Cygnus Configure
2231 The Cygnus configure script predates autoconf. All of its interesting
2233 be written to use the Cygnus configure script.
2235 However, the Cygnus configure script is still used in a few places:
2244 * Cygnus Configure Basics:: Cygnus Configure Basics.
2245 * Cygnus Configure in C++ Libraries:: Cygnus Configure in C++ Libraries.
2248 File: configure.info, Node: Cygnus Configure Basics, Next: Cygnus Configure in C++ Libraries, Up: Cygnus Configure
2250 7.1 Cygnus Configure Basics
2253 Cygnus configure does not use any generated files; there is no program
2255 named `configure' which may be found at the top of the Cygnus tree.
2260 Cygnus configure works in a particular directory by examining the
2261 file `configure.in' in that directory. That file is broken into four
2264 The first is the contents of `configure.in' up to a line that starts
2267 The second is the rest of `configure.in' up to a line that starts
2270 The third is the rest of `configure.in' up to a line that starts
2273 The fourth is the remainder of `configure.in'. This is the post
2279 Cygnus configure will first execute the common part. This must set
2281 confirm that Cygnus configure is looking at the right directory. This
2285 Cygnus configure will next set the `build' and `host' shell
2289 Cygnus configure will next set the `target' variable, and execute
2295 found. Cygnus configure will automatically look for a `Makefile.in'
2300 For each `Makefile.in', Cygnus configure will automatically create a
2306 configure will interpret them as file names relative to either the
2315 Cygnus configure, unlike autoconf, normally does not do feature tests,
2327 Like an autoconf generated `configure' script, Cygnus configure will
2330 execute the Cygnus configure script again with the appropriate
2333 Any of the parts of `configure.in' may set the shell variables
2334 `files' and `links'. Cygnus configure will set up symlinks from the
2338 Finally, any of the parts of `configure.in' may set the shell
2340 configure will recursively run the configure process in each
2341 subdirectory. If the subdirectory uses Cygnus configure, it will
2342 contain a `configure.in' file but no `configure' file, in which case
2343 Cygnus configure will invoke itself recursively. If the subdirectory
2344 has a `configure' file, Cygnus configure assumes that it is an autoconf
2345 generated `configure' script, and simply invokes it directly.
2348 File: configure.info, Node: Cygnus Configure in C++ Libraries, Prev: Cygnus Configure Basics, Up: Cygnus Configure
2350 7.2 Cygnus Configure in C++ Libraries
2353 The C++ library configure system, written by Per Bothner, deserves
2354 special mention. It uses Cygnus configure, but it does feature testing
2355 like that done by autoconf generated `configure' scripts. This
2359 script `libio/config.shared'. Each `configure.in' file sets certain
2362 resulting `Makefile' by the Cygnus configure script.
2369 File: configure.info, Node: Multilibs, Next: FAQ, Prev: Cygnus Configure, Up: Top
2386 Multilibs are not really part of the GNU configure and build system,
2387 but we discuss them here since they require support in the `configure'
2396 File: configure.info, Node: Multilibs in gcc, Next: Multilibs in Target Libraries, Up: Multilibs
2420 File: configure.info, Node: Multilibs in Target Libraries, Prev: Multilibs in gcc, Up: Multilibs
2428 This default is set in the top level `configure.in' file, by adding
2429 `--enable-multilib' to the list of arguments passed to configure when
2434 invoked after the `Makefile' has been created by the `configure'
2515 File: configure.info, Node: FAQ, Next: Index, Prev: Multilibs, Up: Top
2522 package, you shouldn't run either by hand. Instead, configure
2527 This means that you have macros in your `configure.in' which are
2533 My `configure' script has stuff like `CY_GNU_GETTEXT' in it.
2534 This means that you have macros in your `configure.in' which should
2546 to your `configure' script. Or it may just mean that you need to
2549 arguments. If you need to force `configure' to run again, first
2557 to run the `configure' script again with the same arguments as the
2560 results of the configure script. The two cases are separate
2571 using the Cygnus configure script. It permits building many
2572 different packages with a single configure and make. The
2573 configure scripts in the tree are being converted to autoconf, but
2592 File: configure.info, Node: Index, Prev: FAQ, Up: Top
2606 * _GNU_SOURCE: Write configure.in. (line 134)
2610 * AC_CONFIG_HEADER: Write configure.in. (line 66)
2611 * AC_EXEEXT: Write configure.in. (line 86)
2612 * AC_INIT: Write configure.in. (line 38)
2613 * AC_OUTPUT: Write configure.in. (line 142)
2614 * AC_PREREQ: Write configure.in. (line 42)
2615 * AC_PROG_CC: Write configure.in. (line 103)
2616 * AC_PROG_CXX: Write configure.in. (line 117)
2624 * AM_CONFIG_HEADER: Write configure.in. (line 53)
2625 * AM_DISABLE_SHARED: Write configure.in. (line 127)
2626 * AM_EXEEXT: Write configure.in. (line 86)
2627 * AM_INIT_AUTOMAKE: Write configure.in. (line 48)
2628 * AM_MAINTAINER_MODE: Write configure.in. (line 70)
2629 * AM_PROG_LIBTOOL: Write configure.in. (line 122)
2630 * AM_PROG_LIBTOOL in configure: FAQ. (line 19)
2635 * canadian cross in configure: CCross in Configure. (line 6)
2655 * configure: Generated Developer Files.
2657 * configure build system: Build and Host Options.
2659 * configure host: Build and Host Options.
2661 * configure target: Specifying the Target.
2663 * configure.in: Written Developer Files.
2665 * configure.in, writing: Write configure.in. (line 6)
2673 * CY_GNU_GETTEXT in configure: FAQ. (line 19)
2674 * cygnus configure: Cygnus Configure. (line 6)
2683 * libg++ configure: Cygnus Configure in C++ Libraries.
2685 * libio configure: Cygnus Configure in C++ Libraries.
2687 * libstdc++ configure: Cygnus Configure in C++ Libraries.
2720 Node: Write configure.in11141
2749 Node: Target Library Configure Scripts66813
2762 Node: CCross in Configure85028
2764 Node: Cygnus Configure89799
2765 Node: Cygnus Configure Basics90634
2766 Node: Cygnus Configure in C++ Libraries95312