source: trunk/src/binutils/etc/configure.info-2@ 10

Last change on this file since 10 was 10, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 49.1 KB
Line 
1This is configure.info, produced by makeinfo version 4.0 from
2./configure.texi.
3
4INFO-DIR-SECTION GNU admin
5START-INFO-DIR-ENTRY
6* configure: (configure). The GNU configure and build system
7END-INFO-DIR-ENTRY
8
9 This file documents the GNU configure and build system.
10
11 Copyright (C) 1998 Cygnus Solutions.
12
13 Permission is granted to make and distribute verbatim copies of this
14manual provided the copyright notice and this permission notice are
15preserved on all copies.
16
17 Permission is granted to copy and distribute modified versions of
18this manual under the conditions for verbatim copying, provided that
19the entire resulting derived work is distributed under the terms of a
20permission notice identical to this one.
21
22 Permission is granted to copy and distribute translations of this
23manual into another language, under the above conditions for modified
24versions, except that this permission notice may be stated in a
25translation approved by the Foundation.
26
27
28File: configure.info, Node: Configuration Name Definition, Next: Using Configuration Names, Up: Configuration Names
29
30Configuration Name Definition
31=============================
32
33 This is a string of the form CPU-MANUFACTURER-OPERATING_SYSTEM. In
34some cases, this is extended to a four part form:
35CPU-MANUFACTURER-KERNEL-OPERATING_SYSTEM.
36
37 When using a configuration name in a configure option, it is normally
38not necessary to specify an entire name. In particular, the
39MANUFACTURER field is often omitted, leading to strings such as
40`i386-linux' or `sparc-sunos'. The shell script `config.sub' will
41translate these shortened strings into the canonical form. autoconf
42will arrange for `config.sub' to be run automatically when it is needed.
43
44 The fields of a configuration name are as follows:
45
46CPU
47 The type of processor. This is typically something like `i386' or
48 `sparc'. More specific variants are used as well, such as
49 `mipsel' to indicate a little endian MIPS processor.
50
51MANUFACTURER
52 A somewhat freeform field which indicates the manufacturer of the
53 system. This is often simply `unknown'. Other common strings are
54 `pc' for an IBM PC compatible system, or the name of a workstation
55 vendor, such as `sun'.
56
57OPERATING_SYSTEM
58 The name of the operating system which is run on the system. This
59 will be something like `solaris2.5' or `irix6.3'. There is no
60 particular restriction on the version number, and strings like
61 `aix4.1.4.0' are seen. For an embedded system, which has no
62 operating system, this field normally indicates the type of object
63 file format, such as `elf' or `coff'.
64
65KERNEL
66 This is used mainly for GNU/Linux. A typical GNU/Linux
67 configuration name is `i586-pc-linux-gnulibc1'. In this case the
68 kernel, `linux', is separated from the operating system,
69 `gnulibc1'.
70
71 The shell script `config.guess' will normally print the correct
72configuration name for the system on which it is run. It does by
73running `uname' and by examining other characteristics of the system.
74
75 Because `config.guess' can normally determine the configuration name
76for a machine, it is normally only necessary to specify a configuration
77name when building a cross-compiler or when building using a
78cross-compiler.
79
80
81File: configure.info, Node: Using Configuration Names, Prev: Configuration Name Definition, Up: Configuration Names
82
83Using Configuration Names
84=========================
85
86 A configure script will sometimes have to make a decision based on a
87configuration name. You will need to do this if you have to compile
88code differently based on something which can not be tested using a
89standard autoconf feature test.
90
91 It is normally better to test for particular features, rather than to
92test for a particular system. This is because as Unix evolves,
93different systems copy features from one another. Even if you need to
94determine whether the feature is supported based on a configuration
95name, you should define a macro which describes the feature, rather than
96defining a macro which describes the particular system you are on.
97
98 Testing for a particular system is normally done using a case
99statement in `configure.in'. The case statement might look something
100like the following, assuming that `host' is a shell variable holding a
101canonical configuration name (which will be the case if `configure.in'
102uses the `AC_CANONICAL_HOST' or `AC_CANONICAL_SYSTEM' macro).
103
104 case "${host}" in
105 i[3456]86-*-linux-gnu*) do something ;;
106 sparc*-sun-solaris2.[56789]*) do something ;;
107 sparc*-sun-solaris*) do something ;;
108 mips*-*-elf*) do something ;;
109 esac
110
111 It is particularly important to use `*' after the operating system
112field, in order to match the version number which will be generated by
113`config.guess'.
114
115 In most cases you must be careful to match a range of processor
116types. For most processor families, a trailing `*' suffices, as in
117`mips*' above. For the i386 family, something along the lines of
118`i[3456]86' suffices at present. For the m68k family, you will need
119something like `m68*'. Of course, if you do not need to match on the
120processor, it is simpler to just replace the entire field by a `*', as
121in `*-*-irix*'.
122
123
124File: configure.info, Node: Cross Compilation Tools, Next: Canadian Cross, Prev: Configuration Names, Up: Top
125
126Cross Compilation Tools
127***********************
128
129 The GNU configure and build system can be used to build "cross
130compilation" tools. A cross compilation tool is a tool which runs on
131one system and produces code which runs on another system.
132
133* Menu:
134
135* Cross Compilation Concepts:: Cross Compilation Concepts.
136* Host and Target:: Host and Target.
137* Using the Host Type:: Using the Host Type.
138* Specifying the Target:: Specifying the Target.
139* Using the Target Type:: Using the Target Type.
140* Cross Tools in the Cygnus Tree:: Cross Tools in the Cygnus Tree
141
142
143File: configure.info, Node: Cross Compilation Concepts, Next: Host and Target, Up: Cross Compilation Tools
144
145Cross Compilation Concepts
146==========================
147
148 A compiler which produces programs which run on a different system
149is a cross compilation compiler, or simply a "cross compiler".
150Similarly, we speak of cross assemblers, cross linkers, etc.
151
152 In the normal case, a compiler produces code which runs on the same
153system as the one on which the compiler runs. When it is necessary to
154distinguish this case from the cross compilation case, such a compiler
155is called a "native compiler". Similarly, we speak of native
156assemblers, etc.
157
158 Although the debugger is not strictly speaking a compilation tool,
159it is nevertheless meaningful to speak of a cross debugger: a debugger
160which is used to debug code which runs on another system. Everything
161that is said below about configuring cross compilation tools applies to
162the debugger as well.
163
164
165File: configure.info, Node: Host and Target, Next: Using the Host Type, Prev: Cross Compilation Concepts, Up: Cross Compilation Tools
166
167Host and Target
168===============
169
170 When building cross compilation tools, there are two different
171systems involved: the system on which the tools will run, and the
172system for which the tools generate code.
173
174 The system on which the tools will run is called the "host" system.
175
176 The system for which the tools generate code is called the "target"
177system.
178
179 For example, suppose you have a compiler which runs on a GNU/Linux
180system and generates ELF programs for a MIPS embedded system. In this
181case the GNU/Linux system is the host, and the MIPS ELF system is the
182target. Such a compiler could be called a GNU/Linux cross MIPS ELF
183compiler, or, equivalently, a `i386-linux-gnu' cross `mips-elf'
184compiler.
185
186 Naturally, most programs are not cross compilation tools. For those
187programs, it does not make sense to speak of a target. It only makes
188sense to speak of a target for tools like `gcc' or the `binutils' which
189actually produce running code. For example, it does not make sense to
190speak of the target of a tool like `bison' or `make'.
191
192 Most cross compilation tools can also serve as native tools. For a
193native compilation tool, it is still meaningful to speak of a target.
194For a native tool, the target is the same as the host. For example, for
195a GNU/Linux native compiler, the host is GNU/Linux, and the target is
196also GNU/Linux.
197
198
199File: configure.info, Node: Using the Host Type, Next: Specifying the Target, Prev: Host and Target, Up: Cross Compilation Tools
200
201Using the Host Type
202===================
203
204 In almost all cases the host system is the system on which you run
205the `configure' script, and on which you build the tools (for the case
206when they differ, *note Canadian Cross::).
207
208 If your configure script needs to know the configuration name of the
209host system, and the package is not a cross compilation tool and
210therefore does not have a target, put `AC_CANONICAL_HOST' in
211`configure.in'. This macro will arrange to define a few shell
212variables when the `configure' script is run.
213
214`host'
215 The canonical configuration name of the host. This will normally
216 be determined by running the `config.guess' shell script, although
217 the user is permitted to override this by using an explicit
218 `--host' option.
219
220`host_alias'
221 In the unusual case that the user used an explicit `--host' option,
222 this will be the argument to `--host'. In the normal case, this
223 will be the same as the `host' variable.
224
225`host_cpu'
226`host_vendor'
227`host_os'
228 The first three parts of the canonical configuration name.
229
230 The shell variables may be used by putting shell code in
231`configure.in'. For an example, see *Note Using Configuration Names::.
232
233
234File: configure.info, Node: Specifying the Target, Next: Using the Target Type, Prev: Using the Host Type, Up: Cross Compilation Tools
235
236Specifying the Target
237=====================
238
239 By default, the `configure' script will assume that the target is
240the same as the host. This is the more common case; for example, it
241leads to a native compiler rather than a cross compiler.
242
243 If you want to build a cross compilation tool, you must specify the
244target explicitly by using the `--target' option when you run
245`configure'. The argument to `--target' is the configuration name of
246the system for which you wish to generate code. *Note Configuration
247Names::.
248
249 For example, to build tools which generate code for a MIPS ELF
250embedded system, you would use `--target mips-elf'.
251
252
253File: configure.info, Node: Using the Target Type, Next: Cross Tools in the Cygnus Tree, Prev: Specifying the Target, Up: Cross Compilation Tools
254
255Using the Target Type
256=====================
257
258 When writing `configure.in' for a cross compilation tool, you will
259need to use information about the target. To do this, put
260`AC_CANONICAL_SYSTEM' in `configure.in'.
261
262 `AC_CANONICAL_SYSTEM' will look for a `--target' option and
263canonicalize it using the `config.sub' shell script. It will also run
264`AC_CANONICAL_HOST' (*note Using the Host Type::).
265
266 The target type will be recorded in the following shell variables.
267Note that the host versions of these variables will also be defined by
268`AC_CANONICAL_HOST'.
269
270`target'
271 The canonical configuration name of the target.
272
273`target_alias'
274 The argument to the `--target' option. If the user did not specify
275 a `--target' option, this will be the same as `host_alias'.
276
277`target_cpu'
278`target_vendor'
279`target_os'
280 The first three parts of the canonical target configuration name.
281
282 Note that if `host' and `target' are the same string, you can assume
283a native configuration. If they are different, you can assume a cross
284configuration.
285
286 It is arguably possible for `host' and `target' to represent the
287same system, but for the strings to not be identical. For example, if
288`config.guess' returns `sparc-sun-sunos4.1.4', and somebody configures
289with `--target sparc-sun-sunos4.1', then the slight differences between
290the two versions of SunOS may be unimportant for your tool. However,
291in the general case it can be quite difficult to determine whether the
292differences between two configuration names are significant or not.
293Therefore, by convention, if the user specifies a `--target' option
294without specifying a `--host' option, it is assumed that the user wants
295to configure a cross compilation tool.
296
297 The variables `target' and `target_alias' should be handled
298differently.
299
300 In general, whenever the user may actually see a string,
301`target_alias' should be used. This includes anything which may appear
302in the file system, such as a directory name or part of a tool name.
303It also includes any tool output, unless it is clearly labelled as the
304canonical target configuration name. This permits the user to use the
305`--target' option to specify how the tool will appear to the outside
306world.
307
308 On the other hand, when checking for characteristics of the target
309system, `target' should be used. This is because a wide variety of
310`--target' options may map into the same canonical configuration name.
311You should not attempt to duplicate the canonicalization done by
312`config.sub' in your own code.
313
314 By convention, cross tools are installed with a prefix of the
315argument used with the `--target' option, also known as `target_alias'
316(*note Using the Target Type::). If the user does not use the
317`--target' option, and thus is building a native tool, no prefix is
318used.
319
320 For example, if gcc is configured with `--target mips-elf', then the
321installed binary will be named `mips-elf-gcc'. If gcc is configured
322without a `--target' option, then the installed binary will be named
323`gcc'.
324
325 The autoconf macro `AC_ARG_PROGRAM' will handle this for you. If
326you are using automake, no more need be done; the programs will
327automatically be installed with the correct prefixes. Otherwise, see
328the autoconf documentation for `AC_ARG_PROGRAM'.
329
330
331File: configure.info, Node: Cross Tools in the Cygnus Tree, Prev: Using the Target Type, Up: Cross Compilation Tools
332
333Cross Tools in the Cygnus Tree
334==============================
335
336 The Cygnus tree is used for various packages including gdb, the GNU
337binutils, and egcs. It is also, of course, used for Cygnus releases.
338
339 In the Cygnus tree, the top level `configure' script uses the old
340Cygnus configure system, not autoconf. The top level `Makefile.in' is
341written to build packages based on what is in the source tree, and
342supports building a large number of tools in a single
343`configure'/`make' step.
344
345 The Cygnus tree may be configured with a `--target' option. The
346`--target' option applies recursively to every subdirectory, and
347permits building an entire set of cross tools at once.
348
349* Menu:
350
351* Host and Target Libraries:: Host and Target Libraries.
352* Target Library Configure Scripts:: Target Library Configure Scripts.
353* Make Targets in Cygnus Tree:: Make Targets in Cygnus Tree.
354* Target libiberty:: Target libiberty
355
356
357File: configure.info, Node: Host and Target Libraries, Next: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
358
359Host and Target Libraries
360-------------------------
361
362 The Cygnus tree distinguishes host libraries from target libraries.
363
364 Host libraries are built with the compiler used to build the programs
365which run on the host, which is called the host compiler. This includes
366libraries such as `bfd' and `tcl'. These libraries are built with the
367host compiler, and are linked into programs like the binutils or gcc
368which run on the host.
369
370 Target libraries are built with the target compiler. If gcc is
371present in the source tree, then the target compiler is the gcc that is
372built using the host compiler. Target libraries are libraries such as
373`newlib' and `libstdc++'. These libraries are not linked into the host
374programs, but are instead made available for use with programs built
375with the target compiler.
376
377 For the rest of this section, assume that gcc is present in the
378source tree, so that it will be used to build the target libraries.
379
380 There is a complication here. The configure process needs to know
381which compiler you are going to use to build a tool; otherwise, the
382feature tests will not work correctly. The Cygnus tree handles this by
383not configuring the target libraries until the target compiler is
384built. In order to permit everything to build using a single
385`configure'/`make', the configuration of the target libraries is
386actually triggered during the make step.
387
388 When the target libraries are configured, the `--target' option is
389not used. Instead, the `--host' option is used with the argument of
390the `--target' option for the overall configuration. If no `--target'
391option was used for the overall configuration, the `--host' option will
392be passed with the output of the `config.guess' shell script. Any
393`--build' option is passed down unchanged.
394
395 This translation of configuration options is done because since the
396target libraries are compiled with the target compiler, they are being
397built in order to run on the target of the overall configuration. By
398the definition of host, this means that their host system is the same as
399the target system of the overall configuration.
400
401 The same process is used for both a native configuration and a cross
402configuration. Even when using a native configuration, the target
403libraries will be configured and built using the newly built compiler.
404This is particularly important for the C++ libraries, since there is no
405reason to assume that the C++ compiler used to build the host tools (if
406there even is one) uses the same ABI as the g++ compiler which will be
407used to build the target libraries.
408
409 There is one difference between a native configuration and a cross
410configuration. In a native configuration, the target libraries are
411normally configured and built as siblings of the host tools. In a cross
412configuration, the target libraries are normally built in a subdirectory
413whose name is the argument to `--target'. This is mainly for
414historical reasons.
415
416 To summarize, running `configure' in the Cygnus tree configures all
417the host libraries and tools, but does not configure any of the target
418libraries. Running `make' then does the following steps:
419
420 * Build the host libraries.
421
422 * Build the host programs, including gcc. Note that we call gcc
423 both a host program (since it runs on the host) and a target
424 compiler (since it generates code for the target).
425
426 * Using the newly built target compiler, configure the target
427 libraries.
428
429 * Build the target libraries.
430
431 The steps need not be done in precisely this order, since they are
432actually controlled by `Makefile' targets.
433
434
435File: 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
436
437Target Library Configure Scripts
438--------------------------------
439
440 There are a few things you must know in order to write a configure
441script for a target library. This is just a quick sketch, and beginners
442shouldn't worry if they don't follow everything here.
443
444 The target libraries are configured and built using a newly built
445target compiler. There may not be any startup files or libraries for
446this target compiler. In fact, those files will probably be built as
447part of some target library, which naturally means that they will not
448exist when your target library is configured.
449
450 This means that the configure script for a target library may not use
451any test which requires doing a link. This unfortunately includes many
452useful autoconf macros, such as `AC_CHECK_FUNCS'. autoconf macros
453which do a compile but not a link, such as `AC_CHECK_HEADERS', may be
454used.
455
456 This is a severe restriction, but normally not a fatal one, as target
457libraries can often assume the presence of other target libraries, and
458thus know which functions will be available.
459
460 As of this writing, the autoconf macro `AC_PROG_CC' does a link to
461make sure that the compiler works. This may fail in a target library,
462so target libraries must use a different set of macros to locate the
463compiler. See the `configure.in' file in a directory like `libiberty'
464or `libgloss' for an example.
465
466 As noted in the previous section, target libraries are sometimes
467built in directories which are siblings to the host tools, and are
468sometimes built in a subdirectory. The `--with-target-subdir' configure
469option will be passed when the library is configured. Its value will be
470an empty string if the target library is a sibling. Its value will be
471the name of the subdirectory if the target library is in a subdirectory.
472
473 If the overall build is not a native build (i.e., the overall
474configure used the `--target' option), then the library will be
475configured with the `--with-cross-host' option. The value of this
476option will be the host system of the overall build. Recall that the
477host system of the library will be the target of the overall build. If
478the overall build is a native build, the `--with-cross-host' option
479will not be used.
480
481 A library which can be built both standalone and as a target library
482may want to install itself into different directories depending upon the
483case. When built standalone, or when built native, the library should
484be installed in `$(libdir)'. When built as a target library which is
485not native, the library should be installed in `$(tooldir)/lib'. The
486`--with-cross-host' option may be used to distinguish these cases.
487
488 This same test of `--with-cross-host' may be used to see whether it
489is OK to use link tests in the configure script. If the
490`--with-cross-host' option is not used, then the library is being built
491either standalone or native, and a link should work.
492
493
494File: configure.info, Node: Make Targets in Cygnus Tree, Next: Target libiberty, Prev: Target Library Configure Scripts, Up: Cross Tools in the Cygnus Tree
495
496Make Targets in Cygnus Tree
497---------------------------
498
499 The top level `Makefile' in the Cygnus tree defines targets for
500every known subdirectory.
501
502 For every subdirectory DIR which holds a host library or program,
503the `Makefile' target `all-DIR' will build that library or program.
504
505 There are dependencies among host tools. For example, building gcc
506requires first building gas, because the gcc build process invokes the
507target assembler. These dependencies are reflected in the top level
508`Makefile'.
509
510 For every subdirectory DIR which holds a target library, the
511`Makefile' target `configure-target-DIR' will configure that library.
512The `Makefile' target `all-target-DIR' will build that library.
513
514 Every `configure-target-DIR' target depends upon `all-gcc', since
515gcc, the target compiler, is required to configure the tool. Every
516`all-target-DIR' target depends upon the corresponding
517`configure-target-DIR' target.
518
519 There are several other targets which may be of interest for each
520directory: `install-DIR', `clean-DIR', and `check-DIR'. There are also
521corresponding `target' versions of these for the target libraries ,
522such as `install-target-DIR'.
523
524
525File: configure.info, Node: Target libiberty, Prev: Make Targets in Cygnus Tree, Up: Cross Tools in the Cygnus Tree
526
527Target libiberty
528----------------
529
530 The `libiberty' subdirectory is currently a special case, in that it
531is the only directory which is built both using the host compiler and
532using the target compiler.
533
534 This is because the files in `libiberty' are used when building the
535host tools, and they are also incorporated into the `libstdc++' target
536library as support code.
537
538 This duality does not pose any particular difficulties. It means
539that there are targets for both `all-libiberty' and
540`all-target-libiberty'.
541
542 In a native configuration, when target libraries are not built in a
543subdirectory, the same objects are normally used as both the host build
544and the target build. This is normally OK, since libiberty contains
545only C code, and in a native configuration the results of the host
546compiler and the target compiler are normally interoperable.
547
548 Irix 6 is again an exception here, since the SGI native compiler
549defaults to using the `O32' ABI, and gcc defaults to using the `N32'
550ABI. On Irix 6, the target libraries are built in a subdirectory even
551for a native configuration, avoiding this problem.
552
553 There are currently no other libraries built for both the host and
554the target, but there is no conceptual problem with adding more.
555
556
557File: configure.info, Node: Canadian Cross, Next: Cygnus Configure, Prev: Cross Compilation Tools, Up: Top
558
559Canadian Cross
560**************
561
562 It is possible to use the GNU configure and build system to build a
563program which will run on a system which is different from the system on
564which the tools are built. In other words, it is possible to build
565programs using a cross compiler.
566
567 This is referred to as a "Canadian Cross".
568
569* Menu:
570
571* Canadian Cross Example:: Canadian Cross Example.
572* Canadian Cross Concepts:: Canadian Cross Concepts.
573* Build Cross Host Tools:: Build Cross Host Tools.
574* Build and Host Options:: Build and Host Options.
575* CCross not in Cygnus Tree:: Canadian Cross not in Cygnus Tree.
576* CCross in Cygnus Tree:: Canadian Cross in Cygnus Tree.
577* Supporting Canadian Cross:: Supporting Canadian Cross.
578
579
580File: configure.info, Node: Canadian Cross Example, Next: Canadian Cross Concepts, Up: Canadian Cross
581
582Canadian Cross Example
583======================
584
585 Here is an example of a Canadian Cross.
586
587 While running on a GNU/Linux, you can build a program which will run
588on a Solaris system. You would use a GNU/Linux cross Solaris compiler
589to build the program.
590
591 Of course, you could not run the resulting program on your GNU/Linux
592system. You would have to copy it over to a Solaris system before you
593would run it.
594
595 Of course, you could also simply build the programs on the Solaris
596system in the first place. However, perhaps the Solaris system is not
597available for some reason; perhaps you actually don't have one, but you
598want to build the tools for somebody else to use. Or perhaps your
599GNU/Linux system is much faster than your Solaris system.
600
601 A Canadian Cross build is most frequently used when building
602programs to run on a non-Unix system, such as DOS or Windows. It may
603be simpler to configure and build on a Unix system than to support the
604configuration machinery on a non-Unix system.
605
606
607File: configure.info, Node: Canadian Cross Concepts, Next: Build Cross Host Tools, Prev: Canadian Cross Example, Up: Canadian Cross
608
609Canadian Cross Concepts
610=======================
611
612 When building a Canadian Cross, there are at least two different
613systems involved: the system on which the tools are being built, and
614the system on which the tools will run.
615
616 The system on which the tools are being built is called the "build"
617system.
618
619 The system on which the tools will run is called the host system.
620
621 For example, if you are building a Solaris program on a GNU/Linux
622system, as in the previous section, the build system would be GNU/Linux,
623and the host system would be Solaris.
624
625 It is, of course, possible to build a cross compiler using a Canadian
626Cross (i.e., build a cross compiler using a cross compiler). In this
627case, the system for which the resulting cross compiler generates code
628is called the target system. (For a more complete discussion of host
629and target systems, *note Host and Target::).
630
631 An example of building a cross compiler using a Canadian Cross would
632be building a Windows cross MIPS ELF compiler on a GNU/Linux system. In
633this case the build system would be GNU/Linux, the host system would be
634Windows, and the target system would be MIPS ELF.
635
636 The name Canadian Cross comes from the case when the build, host, and
637target systems are all different. At the time that these issues were
638all being hashed out, Canada had three national political parties.
639
640
641File: configure.info, Node: Build Cross Host Tools, Next: Build and Host Options, Prev: Canadian Cross Concepts, Up: Canadian Cross
642
643Build Cross Host Tools
644======================
645
646 In order to configure a program for a Canadian Cross build, you must
647first build and install the set of cross tools you will use to build the
648program.
649
650 These tools will be build cross host tools. That is, they will run
651on the build system, and will produce code that runs on the host system.
652
653 It is easy to confuse the meaning of build and host here. Always
654remember that the build system is where you are doing the build, and the
655host system is where the resulting program will run. Therefore, you
656need a build cross host compiler.
657
658 In general, you must have a complete cross environment in order to do
659the build. This normally means a cross compiler, cross assembler, and
660so forth, as well as libraries and include files for the host system.
661
662
663File: configure.info, Node: Build and Host Options, Next: CCross not in Cygnus Tree, Prev: Build Cross Host Tools, Up: Canadian Cross
664
665Build and Host Options
666======================
667
668 When you run `configure', you must use both the `--build' and