--- standards.texi~ 2002-05-29 20:58:40.000000000 +0200 +++ standards.texi 2002-11-19 10:35:40.000000000 +0100 @@ -3,7 +3,7 @@ @setfilename standards.info @settitle GNU Coding Standards @c This date is automagically updated when you save this file: address@hidden lastupdate May 29, 2002 address@hidden lastupdate novembre 19, 2002 @c %**end of header @ifinfo @@ -3510,9 +3510,14 @@ possible, @code{configure} can add to the Makefile a variable named @code{srcdir} whose value is precisely the specified directory. -The @code{configure} script should also take an argument which specifies the -type of system to build the program for. This argument should look like -this: +The @code{configure} script must also support the options address@hidden, which specifies the type of system on which the +program will be compiled, @option{--host}, which specifies the type of +system on which the program will be run, and @option{--target}, which +specifies the type of system which the program will target (e.g., for +a compiler, this is the system for which it generates executables). + +These machine type arguments should look like this: @example @address@hidden@var{system} @@ -3557,11 +3562,8 @@ @c Giving an optional @var{parameter} of @c @samp{no} should omit @var{package}, if it is used by default. -Possible values of @var{package} include address@hidden (or @samp{gas}), @samp{gnu-ld}, @samp{gnu-libc}, address@hidden, address@hidden, -and +Possible values of @var{package} include @samp{gnu-as} (or @samp{gas}), address@hidden, @samp{gnu-libc}, @samp{gdb}, @samp{x}, and @samp{x-toolkit}. Do not use a @samp{--with} option to specify the file name to use to @@ -3586,9 +3588,25 @@ cross-compilation. In such a case, the host and target machines for the program may be different. -The @code{configure} script should normally treat the specified type of -system as both the host and the target, thus producing a program which -works for the same type of machine that it runs on. +If @option{--build} only is specified, the @command{configure} script +should normally treat the specified type of system as the build, the +host and the target, thus producing a program which works for the same +type of machine that it runs on. The @command{configure} script +should normally guess the build machine type (using address@hidden), so this option is probably not necessary. As an +alternative syntax, the build machine type can be specified alone on +the command line; the following two invocations are equivalent + address@hidden +./configure buildtype +./configure address@hidden address@hidden example + +Cross-compiling a program (be it a compiler or not) requires compiling +it on a machine other than the host it will run on. Compilation +packages accept a configuration option @address@hidden +for specifying the configuration on which you will run them, +defaulting to the build machine type. To configure a cross-compiler, cross-assembler, or what have you, you should specify a target different from the host, using the configure @@ -3597,21 +3615,10 @@ look like this: @example -./configure @var{hosttype} address@hidden +./configure address@hidden @end example -Programs for which cross-operation is not meaningful need not accept the address@hidden option, because configuring an entire operating system for -cross-operation is not a meaningful operation. - -Bootstrapping a cross-compiler requires compiling it on a machine other -than the host it will run on. Compilation packages accept a -configuration option @address@hidden for specifying the -configuration on which you will compile them, but the configure script -should normally guess the build machine type (using address@hidden), so this option is probably not necessary. The -host and target types normally default from the build type, so in -bootstrapping a cross-compiler you must specify them both explicitly. +The target type normally defaults to the host type. Some programs have ways of configuring themselves automatically. If your program is set up to do this, your @code{configure} script can simply