mirror of
https://review.haiku-os.org/buildtools
synced 2025-01-19 21:01:18 +01:00
e6c8d025f2
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15082 a95241bf-73f2-0310-859d-f6bbb57e9c96
222 lines
11 KiB
HTML
222 lines
11 KiB
HTML
<html lang="en">
|
|
<head>
|
|
<title>Prerequisites for GCC</title>
|
|
<meta http-equiv="Content-Type" content="text/html">
|
|
<meta name="description" content="Prerequisites for GCC">
|
|
<meta name="generator" content="makeinfo 4.8">
|
|
<link title="Top" rel="top" href="#Top">
|
|
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
|
|
<!--
|
|
Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
|
|
1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
|
|
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.2 or
|
|
any later version published by the Free Software Foundation; with no
|
|
Invariant Sections, the Front-Cover texts being (a) (see below), and
|
|
with the Back-Cover Texts being (b) (see below). A copy of the
|
|
license is included in the section entitled "GNU Free Documentation License".
|
|
|
|
(a) The FSF's Front-Cover Text is:
|
|
|
|
A GNU Manual
|
|
|
|
(b) The FSF's Back-Cover Text is:
|
|
|
|
You have freedom to copy and modify this GNU Manual, like GNU
|
|
software. Copies published by the Free Software Foundation raise
|
|
funds for GNU development.-->
|
|
<meta http-equiv="Content-Style-Type" content="text/css">
|
|
<style type="text/css"><!--
|
|
pre.display { font-family:inherit }
|
|
pre.format { font-family:inherit }
|
|
pre.smalldisplay { font-family:inherit; font-size:smaller }
|
|
pre.smallformat { font-family:inherit; font-size:smaller }
|
|
pre.smallexample { font-size:smaller }
|
|
pre.smalllisp { font-size:smaller }
|
|
span.sc { font-variant:small-caps }
|
|
span.roman { font-family:serif; font-weight:normal; }
|
|
span.sansserif { font-family:sans-serif; font-weight:normal; }
|
|
--></style>
|
|
</head>
|
|
<body>
|
|
<h1 class="settitle">Prerequisites for GCC</h1>
|
|
<a name="index-Prerequisites-1"></a>
|
|
GCC requires that various tools and packages be available for use in the
|
|
build procedure. Modifying GCC sources requires additional tools
|
|
described below.
|
|
|
|
<h3 class="heading"><a name="TOC0"></a>Tools/packages necessary for building GCC</h3>
|
|
|
|
<dl>
|
|
<dt>ISO C90 compiler<dd>Necessary to bootstrap the GCC package, although versions of GCC prior
|
|
to 3.4 also allow bootstrapping with a traditional (K&R) C compiler.
|
|
|
|
<p>To make all languages in a cross-compiler or other configuration where
|
|
3-stage bootstrap is not performed, you need to start with an existing
|
|
GCC binary (version 2.95 or later) because source code for language
|
|
frontends other than C might use GCC extensions.
|
|
|
|
<br><dt>GNAT<dd>
|
|
In order to build the Ada compiler (GNAT) you must already have GNAT
|
|
installed because portions of the Ada frontend are written in Ada (with
|
|
GNAT extensions.) Refer to the Ada installation instructions for more
|
|
specific information.
|
|
|
|
<br><dt>A “working” POSIX compatible shell, or GNU bash<dd>
|
|
Necessary when running <samp><span class="command">configure</span></samp> because some
|
|
<samp><span class="command">/bin/sh</span></samp> shells have bugs and may crash when configuring the
|
|
target libraries. In other cases, <samp><span class="command">/bin/sh</span></samp> or even some
|
|
<samp><span class="command">ksh</span></samp> have disastrous corner-case performance problems. This
|
|
can cause target <samp><span class="command">configure</span></samp> runs to literally take days to
|
|
complete in some cases.
|
|
|
|
<p>So on some platforms <samp><span class="command">/bin/ksh</span></samp> is sufficient, on others it
|
|
isn't. See the host/target specific instructions for your platform, or
|
|
use <samp><span class="command">bash</span></samp> to be sure. Then set <samp><span class="env">CONFIG_SHELL</span></samp> in your
|
|
environment to your “good” shell prior to running
|
|
<samp><span class="command">configure</span></samp>/<samp><span class="command">make</span></samp>.
|
|
|
|
<p><samp><span class="command">zsh</span></samp> is not a fully compliant POSIX shell and will not
|
|
work when configuring GCC.
|
|
|
|
<br><dt>GNU binutils<dd>
|
|
Necessary in some circumstances, optional in others. See the
|
|
host/target specific instructions for your platform for the exact
|
|
requirements.
|
|
|
|
<br><dt>gzip version 1.2.4 (or later) or<dt>bzip2 version 1.0.2 (or later)<dd>
|
|
Necessary to uncompress GCC <samp><span class="command">tar</span></samp> files when source code is
|
|
obtained via FTP mirror sites.
|
|
|
|
<br><dt>GNU make version 3.79.1 (or later)<dd>
|
|
You must have GNU make installed to build GCC.
|
|
|
|
<br><dt>GNU tar version 1.12 (or later)<dd>
|
|
Necessary (only on some platforms) to untar the source code. Many
|
|
systems' <samp><span class="command">tar</span></samp> programs will also work, only try GNU
|
|
<samp><span class="command">tar</span></samp> if you have problems.
|
|
|
|
<br><dt>GNU Multiple Precision Library (GMP) version 4.0 (or later)<dd>
|
|
Necessary to build the Fortran frontend. If you don't have it
|
|
installed in your library search path, you will have to configure with
|
|
the <samp><span class="option">--with-gmp</span></samp> or <samp><span class="option">--with-gmp-dir</span></samp> configure option.
|
|
|
|
<br><dt>MPFR Library<dd>
|
|
Necessary to build the Fortran frontend. It can be downloaded from
|
|
<a href="http://www.mpfr.org/">http://www.mpfr.org/</a>. It is also included in the current GMP
|
|
release (4.1.3) when configured with <samp><span class="option">--enable-mpfr</span></samp>.
|
|
|
|
<p>The <samp><span class="option">--with-mpfr</span></samp> or <samp><span class="option">--with-mpfr-dir</span></samp> configure option should
|
|
be used if your MPFR Library is not installed in your library search path.
|
|
|
|
</dl>
|
|
|
|
<h3 class="heading"><a name="TOC1"></a>Tools/packages necessary for modifying GCC</h3>
|
|
|
|
<dl>
|
|
<dt>autoconf versions 2.13 and 2.59<dt>GNU m4 version 1.4 (or later)<dd>
|
|
Necessary when modifying <samp><span class="file">configure.ac</span></samp>, <samp><span class="file">aclocal.m4</span></samp>, etc.
|
|
to regenerate <samp><span class="file">configure</span></samp> and <samp><span class="file">config.in</span></samp> files. Most
|
|
directories require autoconf 2.59 (exactly), but the toplevel
|
|
still requires autoconf 2.13 (exactly).
|
|
|
|
<br><dt>automake versions 1.9.3<dd>
|
|
Necessary when modifying a <samp><span class="file">Makefile.am</span></samp> file to regenerate its
|
|
associated <samp><span class="file">Makefile.in</span></samp>.
|
|
|
|
<p>Much of GCC does not use automake, so directly edit the <samp><span class="file">Makefile.in</span></samp>
|
|
file. Specifically this applies to the <samp><span class="file">gcc</span></samp>, <samp><span class="file">intl</span></samp>,
|
|
<samp><span class="file">libcpp</span></samp>, <samp><span class="file">libiberty</span></samp>, <samp><span class="file">libobjc</span></samp> directories as well
|
|
as any of their subdirectories.
|
|
|
|
<p>For directories that use automake, GCC requires the latest release in
|
|
the 1.9.x series, which is currently 1.9.3. When regenerating a directory
|
|
to a newer version, please update all the directories using an older 1.9.x
|
|
to the latest released version.
|
|
|
|
<br><dt>gettext version 0.14.5 (or later)<dd>
|
|
Needed to regenerate <samp><span class="file">gcc.pot</span></samp>.
|
|
|
|
<br><dt>gperf version 2.7.2 (or later)<dd>
|
|
Necessary when modifying <samp><span class="command">gperf</span></samp> input files, e.g.
|
|
<samp><span class="file">gcc/cp/cfns.gperf</span></samp> to regenerate its associated header file, e.g.
|
|
<samp><span class="file">gcc/cp/cfns.h</span></samp>.
|
|
|
|
<br><dt>expect version ???<dt>tcl version ???<dt>dejagnu version 1.4.4 (or later)<dd>
|
|
Necessary to run the GCC testsuite.
|
|
|
|
<br><dt>autogen version 5.5.4 (or later) and<dt>guile version 1.4.1 (or later)<dd>
|
|
Necessary to regenerate <samp><span class="file">fixinc/fixincl.x</span></samp> from
|
|
<samp><span class="file">fixinc/inclhack.def</span></samp> and <samp><span class="file">fixinc/*.tpl</span></samp>.
|
|
|
|
<p>Necessary to run the <samp><span class="file">fixinc</span></samp> <samp><span class="command">make check</span></samp>.
|
|
|
|
<p>Necessary to regenerate the top level <samp><span class="file">Makefile.in</span></samp> file from
|
|
<samp><span class="file">Makefile.tpl</span></samp> and <samp><span class="file">Makefile.def</span></samp>.
|
|
|
|
<br><dt>GNU Bison version 1.28 (or later)<dd>Berkeley <samp><span class="command">yacc</span></samp> (<samp><span class="command">byacc</span></samp>) is also reported to work other
|
|
than for java.
|
|
|
|
<p>Necessary when modifying <samp><span class="file">*.y</span></samp> files.
|
|
|
|
<p>Necessary to build GCC during development because the generated output
|
|
files are not included in the CVS repository. They are included in
|
|
releases.
|
|
|
|
<br><dt>Flex version 2.5.4 (or later)<dd>
|
|
Necessary when modifying <samp><span class="file">*.l</span></samp> files.
|
|
|
|
<p>Necessary to build GCC during development because the generated output
|
|
files are not included in the CVS repository. They are included in
|
|
releases.
|
|
|
|
<br><dt>Texinfo version 4.2 (or later)<dd>
|
|
Necessary for running <samp><span class="command">makeinfo</span></samp> when modifying <samp><span class="file">*.texi</span></samp>
|
|
files to test your changes.
|
|
|
|
<p>Necessary to build GCC documentation during development because the
|
|
generated output files are not included in the CVS repository. They are
|
|
included in releases.
|
|
|
|
<br><dt>TeX (any working version)<dd>
|
|
Necessary for running <samp><span class="command">texi2dvi</span></samp>, used when running
|
|
<samp><span class="command">make dvi</span></samp> to create DVI files.
|
|
|
|
<br><dt>cvs version 1.10 (or later)<dt>ssh (any version)<dd>
|
|
Necessary to access the CVS repository. Public releases and weekly
|
|
snapshots of the development sources are also available via FTP.
|
|
|
|
<br><dt>perl version 5.6.1 (or later)<dd>
|
|
Necessary when regenerating <samp><span class="file">Makefile</span></samp> dependencies in libiberty.
|
|
Necessary when regenerating <samp><span class="file">libiberty/functions.texi</span></samp>.
|
|
Necessary when generating manpages from Texinfo manuals.
|
|
Used by various scripts to generate some files included in CVS (mainly
|
|
Unicode-related and rarely changing) from source tables.
|
|
|
|
<br><dt>GNU diffutils version 2.7 (or later)<dd>
|
|
Necessary when creating changes to GCC source code to submit for review.
|
|
|
|
<br><dt>patch version 2.5.4 (or later)<dd>
|
|
Necessary when applying patches, created with <samp><span class="command">diff</span></samp>, to one's
|
|
own sources.
|
|
|
|
</dl>
|
|
|
|
<p><hr />
|
|
<p><a href="./index.html">Return to the GCC Installation page</a>
|
|
|
|
<!-- ***Downloading the source************************************************** -->
|
|
<!-- ***Configuration*********************************************************** -->
|
|
<!-- ***Building**************************************************************** -->
|
|
<!-- ***Testing***************************************************************** -->
|
|
<!-- ***Final install*********************************************************** -->
|
|
<!-- ***Binaries**************************************************************** -->
|
|
<!-- ***Specific**************************************************************** -->
|
|
<!-- ***Old documentation****************************************************** -->
|
|
<!-- ***GFDL******************************************************************** -->
|
|
<!-- *************************************************************************** -->
|
|
<!-- Part 6 The End of the Document -->
|
|
</body></html>
|
|
|