Merge from vendor branch BIND:
[dragonfly.git] / contrib / gcc-3.4 / gcc / doc / install-old.texi
1 @c Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
2 @c This is part of the GCC manual.
3 @c For copying conditions, see the file install.texi.
4
5 @ifnothtml
6 @comment node-name,     next,          previous, up
7 @node    Old, GNU Free Documentation License, Specific, Top
8 @end ifnothtml
9 @html
10 <h1 align="center">Old installation documentation</h1>
11 @end html
12 @ifnothtml
13 @chapter Old installation documentation
14 @end ifnothtml
15
16 Note most of this information is out of date and superseded by the
17 previous chapters of this manual.  It is provided for historical
18 reference only, because of a lack of volunteers to merge it into the
19 main manual.
20
21 @ifnothtml
22 @menu
23 * Configurations::    Configurations Supported by GCC.
24 @end menu
25 @end ifnothtml
26
27 Here is the procedure for installing GCC on a GNU or Unix system.
28
29 @enumerate
30 @item
31 If you have chosen a configuration for GCC which requires other GNU
32 tools (such as GAS or the GNU linker) instead of the standard system
33 tools, install the required tools in the build directory under the names
34 @file{as}, @file{ld} or whatever is appropriate.
35
36 Alternatively, you can do subsequent compilation using a value of the
37 @code{PATH} environment variable such that the necessary GNU tools come
38 before the standard system tools.
39
40 @item
41 Specify the host, build and target machine configurations.  You do this
42 when you run the @file{configure} script.
43
44 The @dfn{build} machine is the system which you are using, the
45 @dfn{host} machine is the system where you want to run the resulting
46 compiler (normally the build machine), and the @dfn{target} machine is
47 the system for which you want the compiler to generate code.
48
49 If you are building a compiler to produce code for the machine it runs
50 on (a native compiler), you normally do not need to specify any operands
51 to @file{configure}; it will try to guess the type of machine you are on
52 and use that as the build, host and target machines.  So you don't need
53 to specify a configuration when building a native compiler unless
54 @file{configure} cannot figure out what your configuration is or guesses
55 wrong.
56
57 In those cases, specify the build machine's @dfn{configuration name}
58 with the @option{--host} option; the host and target will default to be
59 the same as the host machine.
60
61 Here is an example:
62
63 @smallexample
64 ./configure --host=sparc-sun-sunos4.1
65 @end smallexample
66
67 A configuration name may be canonical or it may be more or less
68 abbreviated.
69
70 A canonical configuration name has three parts, separated by dashes.
71 It looks like this: @samp{@var{cpu}-@var{company}-@var{system}}.
72 (The three parts may themselves contain dashes; @file{configure}
73 can figure out which dashes serve which purpose.)  For example,
74 @samp{m68k-sun-sunos4.1} specifies a Sun 3.
75
76 You can also replace parts of the configuration by nicknames or aliases.
77 For example, @samp{sun3} stands for @samp{m68k-sun}, so
78 @samp{sun3-sunos4.1} is another way to specify a Sun 3.
79
80 You can specify a version number after any of the system types, and some
81 of the CPU types.  In most cases, the version is irrelevant, and will be
82 ignored.  So you might as well specify the version if you know it.
83
84 See @ref{Configurations}, for a list of supported configuration names and
85 notes on many of the configurations.  You should check the notes in that
86 section before proceeding any further with the installation of GCC@.
87
88 @end enumerate
89
90 @ifnothtml
91 @node Configurations, , , Old
92 @section Configurations Supported by GCC
93 @end ifnothtml
94 @html
95 <h2>@anchor{Configurations}Configurations Supported by GCC</h2>
96 @end html
97 @cindex configurations supported by GCC
98
99 Here are the possible CPU types:
100
101 @quotation
102 @c gmicro, fx80, spur and tahoe omitted since they don't work.
103 1750a, a29k, alpha, arm, avr, c@var{n}, clipper, dsp16xx, elxsi, fr30, h8300,
104 hppa1.0, hppa1.1, i370, i386, i486, i586, i686, i786, i860, i960, ip2k, m32r,
105 m68000, m68k, m6811, m6812, m88k, mcore, mips, mipsel, mips64, mips64el,
106 mn10200, mn10300, ns32k, pdp11, powerpc, powerpcle, romp, rs6000, sh, sparc,
107 sparclite, sparc64, v850, vax, we32k.
108 @end quotation
109
110 Here are the recognized company names.  As you can see, customary
111 abbreviations are used rather than the longer official names.
112
113 @c What should be done about merlin, tek*, dolphin?
114 @quotation
115 acorn, alliant, altos, apollo, apple, att, bull,
116 cbm, convergent, convex, crds, dec, dg, dolphin,
117 elxsi, encore, harris, hitachi, hp, ibm, intergraph, isi,
118 mips, motorola, ncr, next, ns, omron, plexus,
119 sequent, sgi, sony, sun, tti, unicom, wrs.
120 @end quotation
121
122 The company name is meaningful only to disambiguate when the rest of
123 the information supplied is insufficient.  You can omit it, writing
124 just @samp{@var{cpu}-@var{system}}, if it is not needed.  For example,
125 @samp{vax-ultrix4.2} is equivalent to @samp{vax-dec-ultrix4.2}.
126
127 Here is a list of system types:
128
129 @quotation
130 386bsd, aix, acis, amigaos, aos, aout, aux, bosx, bsd, clix, coff, ctix, cxux,
131 dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms, genix, gnu, linux,
132 linux-gnu, hiux, hpux, iris, irix, isc, luna, lynxos, mach, minix, msdos, mvs,
133 netbsd, newsos, nindy, ns, osf, osfrose, ptx, riscix, riscos, rtu, sco, sim,
134 solaris, sunos, sym, sysv, udi, ultrix, unicos, uniplus, unos, vms, vsta,
135 vxworks, winnt, xenix.
136 @end quotation
137
138 @noindent
139 You can omit the system type; then @file{configure} guesses the
140 operating system from the CPU and company.
141
142 You can add a version number to the system type; this may or may not
143 make a difference.  For example, you can write @samp{bsd4.3} or
144 @samp{bsd4.4} to distinguish versions of BSD@.  In practice, the version
145 number is most needed for @samp{sysv3} and @samp{sysv4}, which are often
146 treated differently.
147
148 @samp{linux-gnu} is the canonical name for the GNU/Linux target; however
149 GCC will also accept @samp{linux}.  The version of the kernel in use is
150 not relevant on these systems.  A suffix such as @samp{libc1} or @samp{aout}
151 distinguishes major versions of the C library; all of the suffixed versions
152 are obsolete.
153
154 If you specify an impossible combination such as @samp{i860-dg-vms},
155 then you may get an error message from @file{configure}, or it may
156 ignore part of the information and do the best it can with the rest.
157 @file{configure} always prints the canonical name for the alternative
158 that it used.  GCC does not support all possible alternatives.
159
160 Often a particular model of machine has a name.  Many machine names are
161 recognized as aliases for CPU/company combinations.  Thus, the machine
162 name @samp{sun3}, mentioned above, is an alias for @samp{m68k-sun}.
163 Sometimes we accept a company name as a machine name, when the name is
164 popularly used for a particular machine.  Here is a table of the known
165 machine names:
166
167 @quotation
168 3300, 3b1, 3b@var{n}, 7300, altos3068, altos,
169 apollo68, att-7300, balance,
170 convex-c@var{n}, crds, decstation-3100,
171 decstation, delta, encore,
172 fx2800, gmicro, hp7@var{nn}, hp8@var{nn},
173 hp9k2@var{nn}, hp9k3@var{nn}, hp9k7@var{nn},
174 hp9k8@var{nn}, iris4d, iris, isi68,
175 m3230, magnum, merlin, miniframe,
176 mmax, news-3600, news800, news, next,
177 pbd, pc532, pmax, powerpc, powerpcle, ps2, risc-news,
178 rtpc, sun2, sun386i, sun386, sun3,
179 sun4, symmetry, tower-32, tower.
180 @end quotation
181
182 @noindent
183 Remember that a machine name specifies both the cpu type and the company
184 name.
185 If you want to install your own homemade configuration files, you can
186 use @samp{local} as the company name to access them.  If you use
187 configuration @samp{@var{cpu}-local}, the configuration name
188 without the cpu prefix
189 is used to form the configuration file names.
190
191 Thus, if you specify @samp{m68k-local}, configuration uses
192 files @file{m68k.md}, @file{local.h}, @file{m68k.c},
193 @file{xm-local.h}, @file{t-local}, and @file{x-local}, all in the
194 directory @file{config/m68k}.