OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [INSTALL/] [configure.html] - Blame information for rev 22

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 13 jlechner
<html lang="en">
2
<head>
3
<title>Installing GCC: Configuration</title>
4
<meta http-equiv="Content-Type" content="text/html">
5
<meta name="description" content="Installing GCC: Configuration">
6
<meta name="generator" content="makeinfo 4.8">
7
<link title="Top" rel="top" href="#Top">
8
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
9
<!--
10
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
11
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
12
 
13
   Permission is granted to copy, distribute and/or modify this document
14
under the terms of the GNU Free Documentation License, Version 1.2 or
15
any later version published by the Free Software Foundation; with no
16
Invariant Sections, the Front-Cover texts being (a) (see below), and
17
with the Back-Cover Texts being (b) (see below).  A copy of the
18
license is included in the section entitled "GNU Free Documentation License".
19
 
20
(a) The FSF's Front-Cover Text is:
21
 
22
     A GNU Manual
23
 
24
(b) The FSF's Back-Cover Text is:
25
 
26
     You have freedom to copy and modify this GNU Manual, like GNU
27
     software.  Copies published by the Free Software Foundation raise
28
     funds for GNU development.-->
29
<meta http-equiv="Content-Style-Type" content="text/css">
30
<style type="text/css"><!--
31
  pre.display { font-family:inherit }
32
  pre.format  { font-family:inherit }
33
  pre.smalldisplay { font-family:inherit; font-size:smaller }
34
  pre.smallformat  { font-family:inherit; font-size:smaller }
35
  pre.smallexample { font-size:smaller }
36
  pre.smalllisp    { font-size:smaller }
37
  span.sc    { font-variant:small-caps }
38
  span.roman { font-family:serif; font-weight:normal; }
39
  span.sansserif { font-family:sans-serif; font-weight:normal; }
40
--></style>
41
</head>
42
<body>
43
<h1 class="settitle">Installing GCC: Configuration</h1>
44
<a name="index-Configuration-1"></a><a name="index-Installing-GCC_003a-Configuration-2"></a>
45
Like most GNU software, GCC must be configured before it can be built.
46
This document describes the recommended configuration procedure
47
for both native and cross targets.
48
 
49
   <p>We use <var>srcdir</var> to refer to the toplevel source directory for
50
GCC; we use <var>objdir</var> to refer to the toplevel build/object directory.
51
 
52
   <p>If you obtained the sources via SVN, <var>srcdir</var> must refer to the top
53
<samp><span class="file">gcc</span></samp> directory, the one where the <samp><span class="file">MAINTAINERS</span></samp> can be found,
54
and not its <samp><span class="file">gcc</span></samp> subdirectory, otherwise the build will fail.
55
 
56
   <p>If either <var>srcdir</var> or <var>objdir</var> is located on an automounted NFS
57
file system, the shell's built-in <samp><span class="command">pwd</span></samp> command will return
58
temporary pathnames.  Using these can lead to various sorts of build
59
problems.  To avoid this issue, set the <samp><span class="env">PWDCMD</span></samp> environment
60
variable to an automounter-aware <samp><span class="command">pwd</span></samp> command, e.g.,
61
<samp><span class="command">pawd</span></samp> or `<samp><span class="samp">amq -w</span></samp>', during the configuration and build
62
phases.
63
 
64
   <p>First, we <strong>highly</strong> recommend that GCC be built into a
65
separate directory than the sources which does <strong>not</strong> reside
66
within the source tree.  This is how we generally build GCC; building
67
where <var>srcdir</var> == <var>objdir</var> should still work, but doesn't
68
get extensive testing; building where <var>objdir</var> is a subdirectory
69
of <var>srcdir</var> is unsupported.
70
 
71
   <p>If you have previously built GCC in the same directory for a
72
different target machine, do `<samp><span class="samp">make distclean</span></samp>' to delete all files
73
that might be invalid.  One of the files this deletes is <samp><span class="file">Makefile</span></samp>;
74
if `<samp><span class="samp">make distclean</span></samp>' complains that <samp><span class="file">Makefile</span></samp> does not exist
75
or issues a message like &ldquo;don't know how to make distclean&rdquo; it probably
76
means that the directory is already suitably clean.  However, with the
77
recommended method of building in a separate <var>objdir</var>, you should
78
simply use a different <var>objdir</var> for each target.
79
 
80
   <p>Second, when configuring a native system, either <samp><span class="command">cc</span></samp> or
81
<samp><span class="command">gcc</span></samp> must be in your path or you must set <samp><span class="env">CC</span></samp> in
82
your environment before running configure.  Otherwise the configuration
83
scripts may fail.
84
 
85
   <p>Note that the bootstrap compiler and the resulting GCC must be link
86
compatible, else the bootstrap will fail with linker errors about
87
incompatible object file formats.  Several multilibed targets are
88
affected by this requirement, see
89
<a href="specific.html">host/target specific installation notes</a>.
90
 
91
   <p>To configure GCC:
92
 
93
<pre class="smallexample">        % mkdir <var>objdir</var>
94
        % cd <var>objdir</var>
95
        % <var>srcdir</var>/configure [<var>options</var>] [<var>target</var>]
96
</pre>
97
   <h3 class="heading"><a name="TOC0"></a>Target specification</h3>
98
 
99
     <ul>
100
<li>GCC has code to correctly determine the correct value for <var>target</var>
101
for nearly all native systems.  Therefore, we highly recommend you not
102
provide a configure target when configuring a native compiler.
103
 
104
     <li><var>target</var> must be specified as <samp><span class="option">--target=</span><var>target</var></samp>
105
when configuring a cross compiler; examples of valid targets would be
106
m68k-coff, sh-elf, etc.
107
 
108
     <li>Specifying just <var>target</var> instead of <samp><span class="option">--target=</span><var>target</var></samp>
109
implies that the host defaults to <var>target</var>.
110
</ul>
111
 
112
<h3 class="heading"><a name="TOC1"></a>Options specification</h3>
113
 
114
<p>Use <var>options</var> to override several configure time options for
115
GCC.  A list of supported <var>options</var> follows; `<samp><span class="samp">configure
116
--help</span></samp>' may list other options, but those not listed below may not
117
work and should not normally be used.
118
 
119
   <p>Note that each <samp><span class="option">--enable</span></samp> option has a corresponding
120
<samp><span class="option">--disable</span></samp> option and that each <samp><span class="option">--with</span></samp> option has a
121
corresponding <samp><span class="option">--without</span></samp> option.
122
 
123
     <dl>
124
<dt><code>--prefix=</code><var>dirname</var><dd>Specify the toplevel installation
125
directory.  This is the recommended way to install the tools into a directory
126
other than the default.  The toplevel installation directory defaults to
127
<samp><span class="file">/usr/local</span></samp>.
128
 
129
     <p>We <strong>highly</strong> recommend against <var>dirname</var> being the same or a
130
subdirectory of <var>objdir</var> or vice versa.  If specifying a directory
131
beneath a user's home directory tree, some shells will not expand
132
<var>dirname</var> correctly if it contains the `<samp><span class="samp">~</span></samp>' metacharacter; use
133
<samp><span class="env">$HOME</span></samp> instead.
134
 
135
     <p>The following standard <samp><span class="command">autoconf</span></samp> options are supported.  Normally you
136
should not need to use these options.
137
          <dl>
138
<dt><code>--exec-prefix=</code><var>dirname</var><dd>Specify the toplevel installation directory for architecture-dependent
139
files.  The default is <samp><var>prefix</var></samp>.
140
 
141
          <br><dt><code>--bindir=</code><var>dirname</var><dd>Specify the installation directory for the executables called by users
142
(such as <samp><span class="command">gcc</span></samp> and <samp><span class="command">g++</span></samp>).  The default is
143
<samp><var>exec-prefix</var><span class="file">/bin</span></samp>.
144
 
145
          <br><dt><code>--libdir=</code><var>dirname</var><dd>Specify the installation directory for object code libraries and
146
internal data files of GCC.  The default is <samp><var>exec-prefix</var><span class="file">/lib</span></samp>.
147
 
148
          <br><dt><code>--libexecdir=</code><var>dirname</var><dd>Specify the installation directory for internal executables of GCC.
149
  The default is <samp><var>exec-prefix</var><span class="file">/libexec</span></samp>.
150
 
151
          <br><dt><code>--with-slibdir=</code><var>dirname</var><dd>Specify the installation directory for the shared libgcc library.  The
152
default is <samp><var>libdir</var></samp>.
153
 
154
          <br><dt><code>--infodir=</code><var>dirname</var><dd>Specify the installation directory for documentation in info format.
155
The default is <samp><var>prefix</var><span class="file">/info</span></samp>.
156
 
157
          <br><dt><code>--datadir=</code><var>dirname</var><dd>Specify the installation directory for some architecture-independent
158
data files referenced by GCC.  The default is <samp><var>prefix</var><span class="file">/share</span></samp>.
159
 
160
          <br><dt><code>--mandir=</code><var>dirname</var><dd>Specify the installation directory for manual pages.  The default is
161
<samp><var>prefix</var><span class="file">/man</span></samp>.  (Note that the manual pages are only extracts from
162
the full GCC manuals, which are provided in Texinfo format.  The manpages
163
are derived by an automatic conversion process from parts of the full
164
manual.)
165
 
166
          <br><dt><code>--with-gxx-include-dir=</code><var>dirname</var><dd>Specify
167
the installation directory for G++ header files.  The default is
168
<samp><var>prefix</var><span class="file">/include/c++/</span><var>version</var></samp>.
169
 
170
     </dl>
171
 
172
     <br><dt><code>--program-prefix=</code><var>prefix</var><dd>GCC supports some transformations of the names of its programs when
173
installing them.  This option prepends <var>prefix</var> to the names of
174
programs to install in <var>bindir</var> (see above).  For example, specifying
175
<samp><span class="option">--program-prefix=foo-</span></samp> would result in `<samp><span class="samp">gcc</span></samp>'
176
being installed as <samp><span class="file">/usr/local/bin/foo-gcc</span></samp>.
177
 
178
     <br><dt><code>--program-suffix=</code><var>suffix</var><dd>Appends <var>suffix</var> to the names of programs to install in <var>bindir</var>
179
(see above).  For example, specifying <samp><span class="option">--program-suffix=-3.1</span></samp>
180
would result in `<samp><span class="samp">gcc</span></samp>' being installed as
181
<samp><span class="file">/usr/local/bin/gcc-3.1</span></samp>.
182
 
183
     <br><dt><code>--program-transform-name=</code><var>pattern</var><dd>Applies the `<samp><span class="samp">sed</span></samp>' script <var>pattern</var> to be applied to the names
184
of programs to install in <var>bindir</var> (see above).  <var>pattern</var> has to
185
consist of one or more basic `<samp><span class="samp">sed</span></samp>' editing commands, separated by
186
semicolons.  For example, if you want the `<samp><span class="samp">gcc</span></samp>' program name to be
187
transformed to the installed program <samp><span class="file">/usr/local/bin/myowngcc</span></samp> and
188
the `<samp><span class="samp">g++</span></samp>' program name to be transformed to
189
<samp><span class="file">/usr/local/bin/gspecial++</span></samp> without changing other program names,
190
you could use the pattern
191
<samp><span class="option">--program-transform-name='s/^gcc$/myowngcc/; s/^g++$/gspecial++/'</span></samp>
192
to achieve this effect.
193
 
194
     <p>All three options can be combined and used together, resulting in more
195
complex conversion patterns.  As a basic rule, <var>prefix</var> (and
196
<var>suffix</var>) are prepended (appended) before further transformations
197
can happen with a special transformation script <var>pattern</var>.
198
 
199
     <p>As currently implemented, this option only takes effect for native
200
builds; cross compiler binaries' names are not transformed even when a
201
transformation is explicitly asked for by one of these options.
202
 
203
     <p>For native builds, some of the installed programs are also installed
204
with the target alias in front of their name, as in
205
`<samp><span class="samp">i686-pc-linux-gnu-gcc</span></samp>'.  All of the above transformations happen
206
before the target alias is prepended to the name&mdash;so, specifying
207
<samp><span class="option">--program-prefix=foo-</span></samp> and <samp><span class="option">program-suffix=-3.1</span></samp>, the
208
resulting binary would be installed as
209
<samp><span class="file">/usr/local/bin/i686-pc-linux-gnu-foo-gcc-3.1</span></samp>.
210
 
211
     <p>As a last shortcoming, none of the installed Ada programs are
212
transformed yet, which will be fixed in some time.
213
 
214
     <br><dt><code>--with-local-prefix=</code><var>dirname</var><dd>Specify the
215
installation directory for local include files.  The default is
216
<samp><span class="file">/usr/local</span></samp>.  Specify this option if you want the compiler to
217
search directory <samp><var>dirname</var><span class="file">/include</span></samp> for locally installed
218
header files <em>instead</em> of <samp><span class="file">/usr/local/include</span></samp>.
219
 
220
     <p>You should specify <samp><span class="option">--with-local-prefix</span></samp> <strong>only</strong> if your
221
site has a different convention (not <samp><span class="file">/usr/local</span></samp>) for where to put
222
site-specific files.
223
 
224
     <p>The default value for <samp><span class="option">--with-local-prefix</span></samp> is <samp><span class="file">/usr/local</span></samp>
225
regardless of the value of <samp><span class="option">--prefix</span></samp>.  Specifying
226
<samp><span class="option">--prefix</span></samp> has no effect on which directory GCC searches for
227
local header files.  This may seem counterintuitive, but actually it is
228
logical.
229
 
230
     <p>The purpose of <samp><span class="option">--prefix</span></samp> is to specify where to <em>install
231
GCC</em>.  The local header files in <samp><span class="file">/usr/local/include</span></samp>&mdash;if you put
232
any in that directory&mdash;are not part of GCC.  They are part of other
233
programs&mdash;perhaps many others.  (GCC installs its own header files in
234
another directory which is based on the <samp><span class="option">--prefix</span></samp> value.)
235
 
236
     <p>Both the local-prefix include directory and the GCC-prefix include
237
directory are part of GCC's &ldquo;system include&rdquo; directories.  Although these
238
two directories are not fixed, they need to be searched in the proper
239
order for the correct processing of the include_next directive.  The
240
local-prefix include directory is searched before the GCC-prefix
241
include directory.  Another characteristic of system include directories
242
is that pedantic warnings are turned off for headers in these directories.
243
 
244
     <p>Some autoconf macros add <samp><span class="option">-I </span><var>directory</var></samp> options to the
245
compiler command line, to ensure that directories containing installed
246
packages' headers are searched.  When <var>directory</var> is one of GCC's
247
system include directories, GCC will ignore the option so that system
248
directories continue to be processed in the correct order.  This
249
may result in a search order different from what was specified but the
250
directory will still be searched.
251
 
252
     <p>GCC automatically searches for ordinary libraries using
253
<samp><span class="env">GCC_EXEC_PREFIX</span></samp>.  Thus, when the same installation prefix is
254
used for both GCC and packages, GCC will automatically search for
255
both headers and libraries.  This provides a configuration that is
256
easy to use.  GCC behaves in a manner similar to that when it is
257
installed as a system compiler in <samp><span class="file">/usr</span></samp>.
258
 
259
     <p>Sites that need to install multiple versions of GCC may not want to
260
use the above simple configuration.  It is possible to use the
261
<samp><span class="option">--program-prefix</span></samp>, <samp><span class="option">--program-suffix</span></samp> and
262
<samp><span class="option">--program-transform-name</span></samp> options to install multiple versions
263
into a single directory, but it may be simpler to use different prefixes
264
and the <samp><span class="option">--with-local-prefix</span></samp> option to specify the location of the
265
site-specific files for each version.  It will then be necessary for
266
users to specify explicitly the location of local site libraries
267
(e.g., with <samp><span class="env">LIBRARY_PATH</span></samp>).
268
 
269
     <p>The same value can be used for both <samp><span class="option">--with-local-prefix</span></samp> and
270
<samp><span class="option">--prefix</span></samp> provided it is not <samp><span class="file">/usr</span></samp>.  This can be used
271
to avoid the default search of <samp><span class="file">/usr/local/include</span></samp>.
272
 
273
     <p><strong>Do not</strong> specify <samp><span class="file">/usr</span></samp> as the <samp><span class="option">--with-local-prefix</span></samp>!
274
The directory you use for <samp><span class="option">--with-local-prefix</span></samp> <strong>must not</strong>
275
contain any of the system's standard header files.  If it did contain
276
them, certain programs would be miscompiled (including GNU Emacs, on
277
certain targets), because this would override and nullify the header
278
file corrections made by the <samp><span class="command">fixincludes</span></samp> script.
279
 
280
     <p>Indications are that people who use this option use it based on mistaken
281
ideas of what it is for.  People use it as if it specified where to
282
install part of GCC.  Perhaps they make this assumption because
283
installing GCC creates the directory.
284
 
285
     <br><dt><code>--enable-shared[=</code><var>package</var><code>[,...]]</code><dd>Build shared versions of libraries, if shared libraries are supported on
286
the target platform.  Unlike GCC 2.95.x and earlier, shared libraries
287
are enabled by default on all platforms that support shared libraries.
288
 
289
     <p>If a list of packages is given as an argument, build shared libraries
290
only for the listed packages.  For other packages, only static libraries
291
will be built.  Package names currently recognized in the GCC tree are
292
`<samp><span class="samp">libgcc</span></samp>' (also known as `<samp><span class="samp">gcc</span></samp>'), `<samp><span class="samp">libstdc++</span></samp>' (not
293
`<samp><span class="samp">libstdc++-v3</span></samp>'), `<samp><span class="samp">libffi</span></samp>', `<samp><span class="samp">zlib</span></samp>', `<samp><span class="samp">boehm-gc</span></samp>',
294
`<samp><span class="samp">ada</span></samp>', `<samp><span class="samp">libada</span></samp>', `<samp><span class="samp">libjava</span></samp>' and `<samp><span class="samp">libobjc</span></samp>'.
295
Note `<samp><span class="samp">libiberty</span></samp>' does not support shared libraries at all.
296
 
297
     <p>Use <samp><span class="option">--disable-shared</span></samp> to build only static libraries.  Note that
298
<samp><span class="option">--disable-shared</span></samp> does not accept a list of package names as
299
argument, only <samp><span class="option">--enable-shared</span></samp> does.
300
 
301
     <br><dt><code><a name="with_002dgnu_002das"></a>--with-gnu-as</code><dd>Specify that the compiler should assume that the
302
assembler it finds is the GNU assembler.  However, this does not modify
303
the rules to find an assembler and will result in confusion if the
304
assembler found is not actually the GNU assembler.  (Confusion may also
305
result if the compiler finds the GNU assembler but has not been
306
configured with <samp><span class="option">--with-gnu-as</span></samp>.)  If you have more than one
307
assembler installed on your system, you may want to use this option in
308
connection with <samp><span class="option">--with-as=</span><var>pathname</var></samp>.
309
 
310
     <p>The following systems are the only ones where it makes a difference
311
whether you use the GNU assembler.  On any other system,
312
<samp><span class="option">--with-gnu-as</span></samp> has no effect.
313
 
314
          <ul>
315
<li>`<samp><span class="samp">hppa1.0-</span><var>any</var><span class="samp">-</span><var>any</var></samp>'
316
<li>`<samp><span class="samp">hppa1.1-</span><var>any</var><span class="samp">-</span><var>any</var></samp>'
317
<li>`<samp><span class="samp">i386-</span><var>any</var><span class="samp">-sysv</span></samp>'
318
<li>`<samp><span class="samp">m68k-bull-sysv</span></samp>'
319
<li>`<samp><span class="samp">m68k-hp-hpux</span></samp>'
320
<li>`<samp><span class="samp">m68000-hp-hpux</span></samp>'
321
<li>`<samp><span class="samp">m68000-att-sysv</span></samp>'
322
<li>`<samp><span class="samp">sparc-sun-solaris2.</span><var>any</var></samp>'
323
<li>`<samp><span class="samp">sparc64-</span><var>any</var><span class="samp">-solaris2.</span><var>any</var></samp>'
324
</ul>
325
 
326
     <p>On the systems listed above (except for the HP-PA, the SPARC, for ISC on
327
the 386, if you use the GNU assembler, you should also use the GNU linker
328
(and specify <samp><span class="option">--with-gnu-ld</span></samp>).
329
 
330
     <br><dt><code><a name="with_002das"></a>--with-as=</code><var>pathname</var><dd>Specify that the
331
compiler should use the assembler pointed to by <var>pathname</var>, rather
332
than the one found by the standard rules to find an assembler, which
333
are:
334
          <ul>
335
<li>Check the <samp><var>libexec</var><span class="file">/gcc/</span><var>target</var><span class="file">/</span><var>version</var></samp>
336
directory, where <var>libexec</var> defaults to
337
<samp><var>exec-prefix</var><span class="file">/libexec</span></samp> and <var>exec-prefix</var> defaults to
338
<var>prefix</var> which defaults to <samp><span class="file">/usr/local</span></samp> unless overridden by
339
the <samp><span class="option">--prefix=</span><var>pathname</var></samp> switch described
340
above.  <var>target</var> is the target system triple, such as
341
`<samp><span class="samp">sparc-sun-solaris2.7</span></samp>', and <var>version</var> denotes the GCC
342
version, such as 3.0.
343
<li>Check operating system specific directories (e.g. <samp><span class="file">/usr/ccs/bin</span></samp> on
344
Sun Solaris 2).
345
</ul>
346
     Note that these rules do not check for the value of <samp><span class="env">PATH</span></samp>.  You may
347
want to use <samp><span class="option">--with-as</span></samp> if no assembler is installed in the
348
directories listed above, or if you have multiple assemblers installed
349
and want to choose one that is not found by the above rules.
350
 
351
     <br><dt><code><a name="with_002dgnu_002dld"></a>--with-gnu-ld</code><dd>Same as <a href="#with-gnu-as"><samp><span class="option">--with-gnu-as</span></samp></a>
352
but for the linker.
353
 
354
     <br><dt><code>--with-ld=</code><var>pathname</var><dd>Same as <a href="#with-as"><samp><span class="option">--with-as</span></samp></a>
355
but for the linker.
356
 
357
     <br><dt><code>--with-stabs</code><dd>Specify that stabs debugging
358
information should be used instead of whatever format the host normally
359
uses.  Normally GCC uses the same debug format as the host system.
360
 
361
     <p>On MIPS based systems and on Alphas, you must specify whether you want
362
GCC to create the normal ECOFF debugging format, or to use BSD-style
363
stabs passed through the ECOFF symbol table.  The normal ECOFF debug
364
format cannot fully handle languages other than C.  BSD stabs format can
365
handle other languages, but it only works with the GNU debugger GDB.
366
 
367
     <p>Normally, GCC uses the ECOFF debugging format by default; if you
368
prefer BSD stabs, specify <samp><span class="option">--with-stabs</span></samp> when you configure GCC.
369
 
370
     <p>No matter which default you choose when you configure GCC, the user
371
can use the <samp><span class="option">-gcoff</span></samp> and <samp><span class="option">-gstabs+</span></samp> options to specify explicitly
372
the debug format for a particular compilation.
373
 
374
     <p><samp><span class="option">--with-stabs</span></samp> is meaningful on the ISC system on the 386, also, if
375
<samp><span class="option">--with-gas</span></samp> is used.  It selects use of stabs debugging
376
information embedded in COFF output.  This kind of debugging information
377
supports C++ well; ordinary COFF debugging information does not.
378
 
379
     <p><samp><span class="option">--with-stabs</span></samp> is also meaningful on 386 systems running SVR4.  It
380
selects use of stabs debugging information embedded in ELF output.  The
381
C++ compiler currently (2.6.0) does not support the DWARF debugging
382
information normally used on 386 SVR4 platforms; stabs provide a
383
workable alternative.  This requires gas and gdb, as the normal SVR4
384
tools can not generate or interpret stabs.
385
 
386
     <br><dt><code>--disable-multilib</code><dd>Specify that multiple target
387
libraries to support different target variants, calling
388
conventions, etc should not be built.  The default is to build a
389
predefined set of them.
390
 
391
     <p>Some targets provide finer-grained control over which multilibs are built
392
(e.g., <samp><span class="option">--disable-softfloat</span></samp>):
393
          <dl>
394
<dt><code>arc-*-elf*</code><dd>biendian.
395
 
396
          <br><dt><code>arm-*-*</code><dd>fpu, 26bit, underscore, interwork, biendian, nofmult.
397
 
398
          <br><dt><code>m68*-*-*</code><dd>softfloat, m68881, m68000, m68020.
399
 
400
          <br><dt><code>mips*-*-*</code><dd>single-float, biendian, softfloat.
401
 
402
          <br><dt><code>powerpc*-*-*, rs6000*-*-*</code><dd>aix64, pthread, softfloat, powercpu, powerpccpu, powerpcos, biendian,
403
sysv, aix.
404
 
405
     </dl>
406
 
407
     <br><dt><code>--enable-threads</code><dd>Specify that the target
408
supports threads.  This affects the Objective-C compiler and runtime
409
library, and exception handling for other languages like C++ and Java.
410
On some systems, this is the default.
411
 
412
     <p>In general, the best (and, in many cases, the only known) threading
413
model available will be configured for use.  Beware that on some
414
systems, GCC has not been taught what threading models are generally
415
available for the system.  In this case, <samp><span class="option">--enable-threads</span></samp> is an
416
alias for <samp><span class="option">--enable-threads=single</span></samp>.
417
 
418
     <br><dt><code>--disable-threads</code><dd>Specify that threading support should be disabled for the system.
419
This is an alias for <samp><span class="option">--enable-threads=single</span></samp>.
420
 
421
     <br><dt><code>--enable-threads=</code><var>lib</var><dd>Specify that
422
<var>lib</var> is the thread support library.  This affects the Objective-C
423
compiler and runtime library, and exception handling for other languages
424
like C++ and Java.  The possibilities for <var>lib</var> are:
425
 
426
          <dl>
427
<dt><code>aix</code><dd>AIX thread support.
428
<br><dt><code>dce</code><dd>DCE thread support.
429
<br><dt><code>gnat</code><dd>Ada tasking support.  For non-Ada programs, this setting is equivalent
430
to `<samp><span class="samp">single</span></samp>'.  When used in conjunction with the Ada run time, it
431
causes GCC to use the same thread primitives as Ada uses.  This option
432
is necessary when using both Ada and the back end exception handling,
433
which is the default for most Ada targets.
434
<br><dt><code>mach</code><dd>Generic MACH thread support, known to work on NeXTSTEP.  (Please note
435
that the file needed to support this configuration, <samp><span class="file">gthr-mach.h</span></samp>, is
436
missing and thus this setting will cause a known bootstrap failure.)
437
<br><dt><code>no</code><dd>This is an alias for `<samp><span class="samp">single</span></samp>'.
438
<br><dt><code>posix</code><dd>Generic POSIX/Unix98 thread support.
439
<br><dt><code>posix95</code><dd>Generic POSIX/Unix95 thread support.
440
<br><dt><code>rtems</code><dd>RTEMS thread support.
441
<br><dt><code>single</code><dd>Disable thread support, should work for all platforms.
442
<br><dt><code>solaris</code><dd>Sun Solaris 2 thread support.
443
<br><dt><code>vxworks</code><dd>VxWorks thread support.
444
<br><dt><code>win32</code><dd>Microsoft Win32 API thread support.
445
<br><dt><code>nks</code><dd>Novell Kernel Services thread support.
446
</dl>
447
 
448
     <br><dt><code>--enable-tls</code><dd>Specify that the target supports TLS (Thread Local Storage).  Usually
449
configure can correctly determine if TLS is supported.  In cases where
450
it guesses incorrectly, TLS can be explicitly enabled or disabled with
451
<samp><span class="option">--enable-tls</span></samp> or <samp><span class="option">--disable-tls</span></samp>.  This can happen if
452
the assembler supports TLS but the C library does not, or if the
453
assumptions made by the configure test are incorrect.
454
 
455
     <br><dt><code>--disable-tls</code><dd>Specify that the target does not support TLS.
456
This is an alias for <samp><span class="option">--enable-tls=no</span></samp>.
457
 
458
     <br><dt><code>--with-cpu=</code><var>cpu</var><dd>Specify which cpu variant the compiler should generate code for by default.
459
<var>cpu</var> will be used as the default value of the <samp><span class="option">-mcpu=</span></samp> switch.
460
This option is only supported on some targets, including ARM, i386, PowerPC,
461
and SPARC.
462
 
463
     <br><dt><code>--with-schedule=</code><var>cpu</var><dt><code>--with-arch=</code><var>cpu</var><dt><code>--with-tune=</code><var>cpu</var><dt><code>--with-abi=</code><var>abi</var><dt><code>--with-fpu=</code><var>type</var><dt><code>--with-float=</code><var>type</var><dd>These configure options provide default values for the <samp><span class="option">-mschedule=</span></samp>,
464
<samp><span class="option">-march=</span></samp>, <samp><span class="option">-mtune=</span></samp>, <samp><span class="option">-mabi=</span></samp>, and <samp><span class="option">-mfpu=</span></samp>
465
options and for <samp><span class="option">-mhard-float</span></samp> or <samp><span class="option">-msoft-float</span></samp>.  As with
466
<samp><span class="option">--with-cpu</span></samp>, which switches will be accepted and acceptable values
467
of the arguments depend on the target.
468
 
469
     <br><dt><code>--with-divide=</code><var>type</var><dd>Specify how the compiler should generate code for checking for
470
division by zero.  This option is only supported on the MIPS target.
471
The possibilities for <var>type</var> are:
472
          <dl>
473
<dt><code>traps</code><dd>Division by zero checks use conditional traps (this is the default on
474
systems that support conditional traps).
475
<br><dt><code>breaks</code><dd>Division by zero checks use the break instruction.
476
</dl>
477
 
478
     <br><dt><code>--enable-__cxa_atexit</code><dd>Define if you want to use __cxa_atexit, rather than atexit, to
479
register C++ destructors for local statics and global objects.
480
This is essential for fully standards-compliant handling of
481
destructors, but requires __cxa_atexit in libc.  This option is currently
482
only available on systems with GNU libc.  When enabled, this will cause
483
<samp><span class="option">-fuse-cxa-exit</span></samp> to be passed by default.
484
 
485
     <br><dt><code>--enable-target-optspace</code><dd>Specify that target
486
libraries should be optimized for code space instead of code speed.
487
This is the default for the m32r platform.
488
 
489
     <br><dt><code>--disable-cpp</code><dd>Specify that a user visible <samp><span class="command">cpp</span></samp> program should not be installed.
490
 
491
     <br><dt><code>--with-cpp-install-dir=</code><var>dirname</var><dd>Specify that the user visible <samp><span class="command">cpp</span></samp> program should be installed
492
in <samp><var>prefix</var><span class="file">/</span><var>dirname</var><span class="file">/cpp</span></samp>, in addition to <var>bindir</var>.
493
 
494
     <br><dt><code>--enable-initfini-array</code><dd>Force the use of sections <code>.init_array</code> and <code>.fini_array</code>
495
(instead of <code>.init</code> and <code>.fini</code>) for constructors and
496
destructors.  Option <samp><span class="option">--disable-initfini-array</span></samp> has the
497
opposite effect.  If neither option is specified, the configure script
498
will try to guess whether the <code>.init_array</code> and
499
<code>.fini_array</code> sections are supported and, if they are, use them.
500
 
501
     <br><dt><code>--enable-maintainer-mode</code><dd>The build rules that
502
regenerate the GCC master message catalog <samp><span class="file">gcc.pot</span></samp> are normally
503
disabled.  This is because it can only be rebuilt if the complete source
504
tree is present.  If you have changed the sources and want to rebuild the
505
catalog, configuring with <samp><span class="option">--enable-maintainer-mode</span></samp> will enable
506
this.  Note that you need a recent version of the <code>gettext</code> tools
507
to do so.
508
 
509
     <br><dt><code>--enable-generated-files-in-srcdir</code><dd>Neither the .c and .h files that are generated from Bison and flex nor the
510
info manuals and man pages that are built from the .texi files are present
511
in the SVN development tree.  When building GCC from that development tree,
512
or from one of our snapshots, those generated files are placed in your
513
build directory, which allows for the source to be in a readonly
514
directory.
515
 
516
     <p>If you configure with <samp><span class="option">--enable-generated-files-in-srcdir</span></samp> then those
517
generated files will go into the source directory.  This is mainly intended
518
for generating release or prerelease tarballs of the GCC sources, since it
519
is not a requirement that the users of source releases to have flex, Bison,
520
or makeinfo.
521
 
522
     <br><dt><code>--enable-version-specific-runtime-libs</code><dd>Specify
523
that runtime libraries should be installed in the compiler specific
524
subdirectory (<samp><var>libdir</var><span class="file">/gcc</span></samp>) rather than the usual places.  In
525
addition, `<samp><span class="samp">libstdc++</span></samp>''s include files will be installed into
526
<samp><var>libdir</var></samp> unless you overruled it by using
527
<samp><span class="option">--with-gxx-include-dir=</span><var>dirname</var></samp>.  Using this option is
528
particularly useful if you intend to use several versions of GCC in
529
parallel.  This is currently supported by `<samp><span class="samp">libgfortran</span></samp>',
530
`<samp><span class="samp">libjava</span></samp>', `<samp><span class="samp">libmudflap</span></samp>', `<samp><span class="samp">libstdc++</span></samp>', and `<samp><span class="samp">libobjc</span></samp>'.
531
 
532
     <br><dt><code>--with-java-home=</code><var>dirname</var><dd>This `<samp><span class="samp">libjava</span></samp>' option overrides the default value of the
533
`<samp><span class="samp">java.home</span></samp>' system property.  It is also used to set
534
`<samp><span class="samp">sun.boot.class.path</span></samp>' to <samp><var>dirname</var><span class="file">/lib/rt.jar</span></samp>.  By
535
default `<samp><span class="samp">java.home</span></samp>' is set to <samp><var>prefix</var></samp> and
536
`<samp><span class="samp">sun.boot.class.path</span></samp>' to
537
<samp><var>datadir</var><span class="file">/java/libgcj-</span><var>version</var><span class="file">.jar</span></samp>.
538
 
539
     <br><dt><code>--enable-languages=</code><var>lang1</var><code>,</code><var>lang2</var><code>,...</code><dd>Specify that only a particular subset of compilers and
540
their runtime libraries should be built.  For a list of valid values for
541
<var>langN</var> you can issue the following command in the
542
<samp><span class="file">gcc</span></samp> directory of your GCC source tree:<br>
543
     <pre class="smallexample">          grep language= */config-lang.in
544
     </pre>
545
     <p>Currently, you can use any of the following:
546
<code>all</code>, <code>ada</code>, <code>c</code>, <code>c++</code>, <code>fortran</code>, <code>java</code>,
547
<code>objc</code>, <code>obj-c++</code>, <code>treelang</code>.
548
Building the Ada compiler has special requirements, see below.
549
If you do not pass this flag, or specify the option <code>all</code>, then all
550
default languages available in the <samp><span class="file">gcc</span></samp> sub-tree will be configured.
551
Ada, Objective-C++, and treelang are not default languages; the rest are.
552
Re-defining <code>LANGUAGES</code> when calling `<samp><span class="samp">make bootstrap</span></samp>'
553
<strong>does not</strong> work anymore, as those language sub-directories might
554
not have been configured!
555
 
556
     <br><dt><code>--disable-libada</code><dd>Specify that the run-time libraries and tools used by GNAT should not
557
be built.  This can be useful for debugging, or for compatibility with
558
previous Ada build procedures, when it was required to explicitly
559
do a `<samp><span class="samp">make -C gcc gnatlib_and_tools</span></samp>'.
560
 
561
     <br><dt><code>--disable-libssp</code><dd>Specify that the run-time libraries for stack smashing protection
562
should not be built.
563
 
564
     <br><dt><code>--with-dwarf2</code><dd>Specify that the compiler should
565
use DWARF 2 debugging information as the default.
566
 
567
     <br><dt><code>--enable-targets=all</code><dt><code>--enable-targets=</code><var>target_list</var><dd>Some GCC targets, e.g. powerpc64-linux, build bi-arch compilers.
568
These are compilers that are able to generate either 64-bit or 32-bit
569
code.  Typically, the corresponding 32-bit target, e.g.
570
powerpc-linux for powerpc64-linux, only generates 32-bit code.  This
571
option enables the 32-bit target to be a bi-arch compiler, which is
572
useful when you want a bi-arch compiler that defaults to 32-bit, and
573
you are building a bi-arch or multi-arch binutils in a combined tree.
574
Currently, this option only affects powerpc-linux.
575
 
576
     <br><dt><code>--enable-secureplt</code><dd>This option enables <samp><span class="option">-msecure-plt</span></samp> by default for powerpc-linux.
577
See &ldquo;RS/6000 and PowerPC Options&rdquo; in the main manual
578
 
579
     <br><dt><code>--enable-win32-registry</code><dt><code>--enable-win32-registry=</code><var>key</var><dt><code>--disable-win32-registry</code><dd>The <samp><span class="option">--enable-win32-registry</span></samp> option enables Microsoft Windows-hosted GCC
580
to look up installations paths in the registry using the following key:
581
 
582
     <pre class="smallexample">          <code>HKEY_LOCAL_MACHINE\SOFTWARE\Free Software Foundation\</code><var>key</var>
583
     </pre>
584
     <p><var>key</var> defaults to GCC version number, and can be overridden by the
585
<samp><span class="option">--enable-win32-registry=</span><var>key</var></samp> option.  Vendors and distributors
586
who use custom installers are encouraged to provide a different key,
587
perhaps one comprised of vendor name and GCC version number, to
588
avoid conflict with existing installations.  This feature is enabled
589
by default, and can be disabled by <samp><span class="option">--disable-win32-registry</span></samp>
590
option.  This option has no effect on the other hosts.
591
 
592
     <br><dt><code>--nfp</code><dd>Specify that the machine does not have a floating point unit.  This
593
option only applies to `<samp><span class="samp">m68k-sun-sunos</span><var>n</var></samp>'.  On any other
594
system, <samp><span class="option">--nfp</span></samp> has no effect.
595
 
596
     <br><dt><code>--enable-werror</code><dt><code>--disable-werror</code><dt><code>--enable-werror=yes</code><dt><code>--enable-werror=no</code><dd>When you specify this option, it controls whether certain files in the
597
compiler are built with <samp><span class="option">-Werror</span></samp> in bootstrap stage2 and later.
598
If you don't specify it, <samp><span class="option">-Werror</span></samp> is turned on for the main
599
development trunk.  However it defaults to off for release branches and
600
final releases.  The specific files which get <samp><span class="option">-Werror</span></samp> are
601
controlled by the Makefiles.
602
 
603
     <br><dt><code>--enable-checking</code><dt><code>--enable-checking=</code><var>list</var><dd>When you specify this option, the compiler is built to perform internal
604
consistency checks of the requested complexity.  This does not change the
605
generated code, but adds error checking within the compiler.  This will
606
slow down the compiler and may only work properly if you are building
607
the compiler with GCC.  This is `<samp><span class="samp">yes</span></samp>' by default when building
608
from SVN or snapshots, but `<samp><span class="samp">release</span></samp>' for releases.  More control
609
over the checks may be had by specifying <var>list</var>.  The categories of
610
checks available are `<samp><span class="samp">yes</span></samp>' (most common checks
611
`<samp><span class="samp">assert,misc,tree,gc,rtlflag,runtime</span></samp>'), `<samp><span class="samp">no</span></samp>' (no checks at
612
all), `<samp><span class="samp">all</span></samp>' (all but `<samp><span class="samp">valgrind</span></samp>'), `<samp><span class="samp">release</span></samp>' (cheapest
613
checks `<samp><span class="samp">assert,runtime</span></samp>') or `<samp><span class="samp">none</span></samp>' (same as `<samp><span class="samp">no</span></samp>').
614
Individual checks can be enabled with these flags `<samp><span class="samp">assert</span></samp>',
615
`<samp><span class="samp">fold</span></samp>', `<samp><span class="samp">gc</span></samp>', `<samp><span class="samp">gcac</span></samp>' `<samp><span class="samp">misc</span></samp>', `<samp><span class="samp">rtl</span></samp>',
616
`<samp><span class="samp">rtlflag</span></samp>', `<samp><span class="samp">runtime</span></samp>', `<samp><span class="samp">tree</span></samp>', and `<samp><span class="samp">valgrind</span></samp>'.
617
 
618
     <p>The `<samp><span class="samp">valgrind</span></samp>' check requires the external <samp><span class="command">valgrind</span></samp>
619
simulator, available from <a href="http://valgrind.org/">http://valgrind.org/</a>.  The
620
`<samp><span class="samp">rtl</span></samp>', `<samp><span class="samp">gcac</span></samp>' and `<samp><span class="samp">valgrind</span></samp>' checks are very expensive.
621
To disable all checking, `<samp><span class="samp">--disable-checking</span></samp>' or
622
`<samp><span class="samp">--enable-checking=none</span></samp>' must be explicitly requested.  Disabling
623
assertions will make the compiler and runtime slightly faster but
624
increase the risk of undetected internal errors causing wrong code to be
625
generated.
626
 
627
     <br><dt><code>--enable-coverage</code><dt><code>--enable-coverage=</code><var>level</var><dd>With this option, the compiler is built to collect self coverage
628
information, every time it is run.  This is for internal development
629
purposes, and only works when the compiler is being built with gcc.  The
630
<var>level</var> argument controls whether the compiler is built optimized or
631
not, values are `<samp><span class="samp">opt</span></samp>' and `<samp><span class="samp">noopt</span></samp>'.  For coverage analysis you
632
want to disable optimization, for performance analysis you want to
633
enable optimization.  When coverage is enabled, the default level is
634
without optimization.
635
 
636
     <br><dt><code>--enable-gather-detailed-mem-stats</code><dd>When this option is specified more detailed information on memory
637
allocation is gathered.  This information is printed when using
638
<samp><span class="option">-fmem-report</span></samp>.
639
 
640
     <br><dt><code>--with-gc</code><dt><code>--with-gc=</code><var>choice</var><dd>With this option you can specify the garbage collector implementation
641
used during the compilation process.  <var>choice</var> can be one of
642
`<samp><span class="samp">page</span></samp>' and `<samp><span class="samp">zone</span></samp>', where `<samp><span class="samp">page</span></samp>' is the default.
643
 
644
     <br><dt><code>--enable-nls</code><dt><code>--disable-nls</code><dd>The <samp><span class="option">--enable-nls</span></samp> option enables Native Language Support (NLS),
645
which lets GCC output diagnostics in languages other than American
646
English.  Native Language Support is enabled by default if not doing a
647
canadian cross build.  The <samp><span class="option">--disable-nls</span></samp> option disables NLS.
648
 
649
     <br><dt><code>--with-included-gettext</code><dd>If NLS is enabled, the <samp><span class="option">--with-included-gettext</span></samp> option causes the build
650
procedure to prefer its copy of GNU <samp><span class="command">gettext</span></samp>.
651
 
652
     <br><dt><code>--with-catgets</code><dd>If NLS is enabled, and if the host lacks <code>gettext</code> but has the
653
inferior <code>catgets</code> interface, the GCC build procedure normally
654
ignores <code>catgets</code> and instead uses GCC's copy of the GNU
655
<code>gettext</code> library.  The <samp><span class="option">--with-catgets</span></samp> option causes the
656
build procedure to use the host's <code>catgets</code> in this situation.
657
 
658
     <br><dt><code>--with-libiconv-prefix=</code><var>dir</var><dd>Search for libiconv header files in <samp><var>dir</var><span class="file">/include</span></samp> and
659
libiconv library files in <samp><var>dir</var><span class="file">/lib</span></samp>.
660
 
661
     <br><dt><code>--enable-obsolete</code><dd>Enable configuration for an obsoleted system.  If you attempt to
662
configure GCC for a system (build, host, or target) which has been
663
obsoleted, and you do not specify this flag, configure will halt with an
664
error message.
665
 
666
     <p>All support for systems which have been obsoleted in one release of GCC
667
is removed entirely in the next major release, unless someone steps
668
forward to maintain the port.
669
</dl>
670
 
671
<h4 class="subheading"><a name="TOC2"></a>Cross-Compiler-Specific Options</h4>
672
 
673
<p>The following options only apply to building cross compilers.
674
     <dl>
675
<dt><code>--with-sysroot</code><dt><code>--with-sysroot=</code><var>dir</var><dd>Tells GCC to consider <var>dir</var> as the root of a tree that contains a
676
(subset of) the root filesystem of the target operating system.
677
Target system headers, libraries and run-time object files will be
678
searched in there.  The specified directory is not copied into the
679
install tree, unlike the options <samp><span class="option">--with-headers</span></samp> and
680
<samp><span class="option">--with-libs</span></samp> that this option obsoletes.  The default value,
681
in case <samp><span class="option">--with-sysroot</span></samp> is not given an argument, is
682
<samp><span class="option">${gcc_tooldir}/sys-root</span></samp>.  If the specified directory is a
683
subdirectory of <samp><span class="option">${exec_prefix}</span></samp>, then it will be found relative to
684
the GCC binaries if the installation tree is moved.
685
 
686
     <br><dt><code>--with-build-sysroot</code><dt><code>--with-build-sysroot=</code><var>dir</var><dd>Tells GCC to consider <var>dir</var> as the system root (see
687
<samp><span class="option">--with-sysroot</span></samp>) while building target libraries, instead of
688
the directory specified with <samp><span class="option">--with-sysroot</span></samp>.  This option is
689
only useful when you are already using <samp><span class="option">--with-sysroot</span></samp>.  You
690
can use <samp><span class="option">--with-build-sysroot</span></samp> when you are configuring with
691
<samp><span class="option">--prefix</span></samp> set to a directory that is different from the one in
692
which you are installing GCC and your target libraries.
693
 
694
     <p>This option affects the system root for the compiler used to build
695
target libraries (which runs on the build system); it does not affect
696
the compiler which is used to build GCC itself.
697
 
698
     <br><dt><code>--with-headers</code><dt><code>--with-headers=</code><var>dir</var><dd>Deprecated in favor of <samp><span class="option">--with-sysroot</span></samp>.
699
Specifies that target headers are available when building a cross compiler.
700
The <var>dir</var> argument specifies a directory which has the target include
701
files.  These include files will be copied into the <samp><span class="file">gcc</span></samp> install
702
directory.  <em>This option with the </em><var>dir</var><em> argument is required</em> when
703
building a cross compiler, if <samp><var>prefix</var><span class="file">/</span><var>target</var><span class="file">/sys-include</span></samp>
704
doesn't pre-exist.  If <samp><var>prefix</var><span class="file">/</span><var>target</var><span class="file">/sys-include</span></samp> does
705
pre-exist, the <var>dir</var> argument may be omitted.  <samp><span class="command">fixincludes</span></samp>
706
will be run on these files to make them compatible with GCC.
707
 
708
     <br><dt><code>--without-headers</code><dd>Tells GCC not use any target headers from a libc when building a cross
709
compiler.  When crossing to GNU/Linux, you need the headers so GCC
710
can build the exception handling for libgcc.
711
 
712
     <br><dt><code>--with-libs</code><dt><code>--with-libs=``</code><var>dir1</var> <var>dir2</var><code> ... </code><var>dirN</var><code>''</code><dd>Deprecated in favor of <samp><span class="option">--with-sysroot</span></samp>.
713
Specifies a list of directories which contain the target runtime
714
libraries.  These libraries will be copied into the <samp><span class="file">gcc</span></samp> install
715
directory.  If the directory list is omitted, this option has no
716
effect.
717
<br><dt><code>--with-newlib</code><dd>Specifies that `<samp><span class="samp">newlib</span></samp>' is
718
being used as the target C library.  This causes <code>__eprintf</code> to be
719
omitted from <samp><span class="file">libgcc.a</span></samp> on the assumption that it will be provided by
720
`<samp><span class="samp">newlib</span></samp>'.
721
</dl>
722
 
723
<h4 class="subheading"><a name="TOC3"></a>Fortran-specific Option</h4>
724
 
725
<p>The following options apply to the build of the Fortran front end.
726
 
727
     <dl>
728
<dt><code>--with-gmp=</code><var>pathname</var><dt><code>--with-mpfr=</code><var>pathname</var><dt><code>--with-gmp-dir=</code><var>pathname</var><dt><code>--with-mpfr-dir=</code><var>pathname</var><dd>If you don't have GMP (the GNU Multiple Precision library) and the MPFR
729
Libraries installed in a standard location and you want to build the Fortran
730
front-end, you can explicitly specify the directory where they are installed
731
(`<samp><span class="samp">--with-gmp=gmpinstalldir</span></samp>', `<samp><span class="samp">--with-mpfr=mpfrinstalldir</span></samp>') or where
732
you built them without installing (`<samp><span class="samp">--with-gmp-dir=gmpbuilddir</span></samp>',
733
`<samp><span class="samp">--with-mpfr-dir=gmpbuilddir</span></samp>').
734
 
735
   </dl>
736
 
737
<h4 class="subheading"><a name="TOC4"></a>Java-Specific Options</h4>
738
 
739
<p>The following option applies to the build of the Java front end.
740
 
741
     <dl>
742
<dt><code>--disable-libgcj</code><dd>Specify that the run-time libraries
743
used by GCJ should not be built.  This is useful in case you intend
744
to use GCJ with some other run-time, or you're going to install it
745
separately, or it just happens not to build on your particular
746
machine.  In general, if the Java front end is enabled, the GCJ
747
libraries will be enabled too, unless they're known to not work on
748
the target platform.  If GCJ is enabled but `<samp><span class="samp">libgcj</span></samp>' isn't built, you
749
may need to port it; in this case, before modifying the top-level
750
<samp><span class="file">configure.in</span></samp> so that `<samp><span class="samp">libgcj</span></samp>' is enabled by default on this platform,
751
you may use <samp><span class="option">--enable-libgcj</span></samp> to override the default.
752
 
753
   </dl>
754
 
755
   <p>The following options apply to building `<samp><span class="samp">libgcj</span></samp>'.
756
 
757
<h5 class="subsubheading"><a name="TOC5"></a>General Options</h5>
758
 
759
     <dl>
760
<dt><code>--disable-getenv-properties</code><dd>Don't set system properties from <samp><span class="env">GCJ_PROPERTIES</span></samp>.
761
 
762
     <br><dt><code>--enable-hash-synchronization</code><dd>Use a global hash table for monitor locks.  Ordinarily,
763
`<samp><span class="samp">libgcj</span></samp>''s `<samp><span class="samp">configure</span></samp>' script automatically makes
764
the correct choice for this option for your platform.  Only use
765
this if you know you need the library to be configured differently.
766
 
767
     <br><dt><code>--enable-interpreter</code><dd>Enable the Java interpreter.  The interpreter is automatically
768
enabled by default on all platforms that support it.  This option
769
is really only useful if you want to disable the interpreter
770
(using <samp><span class="option">--disable-interpreter</span></samp>).
771
 
772
     <br><dt><code>--disable-java-net</code><dd>Disable java.net.  This disables the native part of java.net only,
773
using non-functional stubs for native method implementations.
774
 
775
     <br><dt><code>--disable-jvmpi</code><dd>Disable JVMPI support.
776
 
777
     <br><dt><code>--with-ecos</code><dd>Enable runtime eCos target support.
778
 
779
     <br><dt><code>--without-libffi</code><dd>Don't use `<samp><span class="samp">libffi</span></samp>'.  This will disable the interpreter and JNI
780
support as well, as these require `<samp><span class="samp">libffi</span></samp>' to work.
781
 
782
     <br><dt><code>--enable-libgcj-debug</code><dd>Enable runtime debugging code.
783
 
784
     <br><dt><code>--enable-libgcj-multifile</code><dd>If specified, causes all <samp><span class="file">.java</span></samp> source files to be
785
compiled into <samp><span class="file">.class</span></samp> files in one invocation of
786
`<samp><span class="samp">gcj</span></samp>'.  This can speed up build time, but is more
787
resource-intensive.  If this option is unspecified or
788
disabled, `<samp><span class="samp">gcj</span></samp>' is invoked once for each <samp><span class="file">.java</span></samp>
789
file to compile into a <samp><span class="file">.class</span></samp> file.
790
 
791
     <br><dt><code>--with-libiconv-prefix=DIR</code><dd>Search for libiconv in <samp><span class="file">DIR/include</span></samp> and <samp><span class="file">DIR/lib</span></samp>.
792
 
793
     <br><dt><code>--enable-sjlj-exceptions</code><dd>Force use of <code>builtin_setjmp</code> for exceptions.  `<samp><span class="samp">configure</span></samp>'
794
ordinarily picks the correct value based on the platform.  Only use
795
this option if you are sure you need a different setting.
796
 
797
     <br><dt><code>--with-system-zlib</code><dd>Use installed `<samp><span class="samp">zlib</span></samp>' rather than that included with GCC.
798
 
799
     <br><dt><code>--with-win32-nlsapi=ansi, unicows or unicode</code><dd>Indicates how MinGW `<samp><span class="samp">libgcj</span></samp>' translates between UNICODE
800
characters and the Win32 API.
801
          <dl>
802
<dt><code>ansi</code><dd>Use the single-byte <code>char</code> and the Win32 A functions natively,
803
translating to and from UNICODE when using these functions.  If
804
unspecified, this is the default.
805
 
806
          <br><dt><code>unicows</code><dd>Use the <code>WCHAR</code> and Win32 W functions natively.  Adds
807
<code>-lunicows</code> to <samp><span class="file">libgcj.spec</span></samp> to link with `<samp><span class="samp">libunicows</span></samp>'.
808
<samp><span class="file">unicows.dll</span></samp> needs to be deployed on Microsoft Windows 9X machines
809
running built executables.  <samp><span class="file">libunicows.a</span></samp>, an open-source
810
import library around Microsoft's <code>unicows.dll</code>, is obtained from
811
<a href="http://libunicows.sourceforge.net/">http://libunicows.sourceforge.net/</a>, which also gives details
812
on getting <samp><span class="file">unicows.dll</span></samp> from Microsoft.
813
 
814
          <br><dt><code>unicode</code><dd>Use the <code>WCHAR</code> and Win32 W functions natively.  Does <em>not</em>
815
add <code>-lunicows</code> to <samp><span class="file">libgcj.spec</span></samp>.  The built executables will
816
only run on Microsoft Windows NT and above.
817
</dl>
818
     </dl>
819
 
820
<h5 class="subsubheading"><a name="TOC6"></a>AWT-Specific Options</h5>
821
 
822
     <dl>
823
<dt><code>--with-x</code><dd>Use the X Window System.
824
 
825
     <br><dt><code>--enable-java-awt=PEER(S)</code><dd>Specifies the AWT peer library or libraries to build alongside
826
`<samp><span class="samp">libgcj</span></samp>'.  If this option is unspecified or disabled, AWT
827
will be non-functional.  Current valid values are <samp><span class="option">gtk</span></samp> and
828
<samp><span class="option">xlib</span></samp>.  Multiple libraries should be separated by a
829
comma (i.e. <samp><span class="option">--enable-java-awt=gtk,xlib</span></samp>).
830
 
831
     <br><dt><code>--enable-gtk-cairo</code><dd>Build the cairo Graphics2D implementation on GTK.
832
 
833
     <br><dt><code>--enable-java-gc=TYPE</code><dd>Choose garbage collector.  Defaults to <samp><span class="option">boehm</span></samp> if unspecified.
834
 
835
     <br><dt><code>--disable-gtktest</code><dd>Do not try to compile and run a test GTK+ program.
836
 
837
     <br><dt><code>--disable-glibtest</code><dd>Do not try to compile and run a test GLIB program.
838
 
839
     <br><dt><code>--with-libart-prefix=PFX</code><dd>Prefix where libart is installed (optional).
840
 
841
     <br><dt><code>--with-libart-exec-prefix=PFX</code><dd>Exec prefix where libart is installed (optional).
842
 
843
     <br><dt><code>--disable-libarttest</code><dd>Do not try to compile and run a test libart program.
844
 
845
</dl>
846
 
847
   <p><hr />
848
<p><a href="./index.html">Return to the GCC Installation page</a>
849
 
850
<!-- ***Building**************************************************************** -->
851
<!-- ***Testing***************************************************************** -->
852
<!-- ***Final install*********************************************************** -->
853
<!-- ***Binaries**************************************************************** -->
854
<!-- ***Specific**************************************************************** -->
855
<!-- ***Old documentation****************************************************** -->
856
<!-- ***GFDL******************************************************************** -->
857
<!-- *************************************************************************** -->
858
<!-- Part 6 The End of the Document -->
859
</body></html>
860
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.