diff INSTALL/prerequisites.html @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children 58ad6c70ea60
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/INSTALL/prerequisites.html	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,271 @@
+<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.12">
+<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, 2006, 2007,
+2008 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 GCC, although versions of GCC prior
+to 3.4 also allow bootstrapping with a traditional (K&amp;R) C compiler.
+
+     <p>To build 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 &ldquo;working&rdquo; 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 <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 &ldquo;good&rdquo; 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>A POSIX or SVR4 awk<dd>
+Necessary for creating some of the generated source files for GCC. 
+If in doubt, use a recent GNU awk version, as some of the older ones
+are broken.  GNU awk version 3.1.5 is known to work.
+
+     <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.80 (or later)<dd>
+You must have GNU make installed to build GCC.
+
+     <br><dt>GNU tar version 1.14 (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.1 (or later)<dd>
+Necessary to build GCC.  If you do not have it installed in your
+library search path, you will have to configure with the
+<samp><span class="option">--with-gmp</span></samp> configure option.  See also <samp><span class="option">--with-gmp-lib</span></samp>
+and <samp><span class="option">--with-gmp-include</span></samp>.  Alternatively, if a GMP source
+distribution is found in a subdirectory of your GCC sources named
+<samp><span class="file">gmp</span></samp>, it will be built together with GCC.
+
+     <br><dt>MPFR Library version 2.3.2 (or later)<dd>
+Necessary to build GCC.  It can be downloaded from
+<a href="http://www.mpfr.org/">http://www.mpfr.org/</a>.  The version of MPFR that is bundled with
+GMP 4.1.x contains numerous bugs.  Although GCC may appear to function
+with the buggy versions of MPFR, there are a few bugs that will not be
+fixed when using this version.  It is strongly recommended to upgrade
+to the recommended version of MPFR.
+
+     <p>The <samp><span class="option">--with-mpfr</span></samp> configure option should be used if your MPFR
+Library is not installed in your default library search path.  See also
+<samp><span class="option">--with-mpfr-lib</span></samp> and <samp><span class="option">--with-mpfr-include</span></samp>. 
+Alternatively, if a MPFR source distribution is found in a subdirectory
+of your GCC sources named <samp><span class="file">mpfr</span></samp>, it will be built together with
+GCC.
+
+     <br><dt>Parma Polyhedra Library (PPL) version 0.10<dd>
+Necessary to build GCC with the Graphite loop optimizations. 
+It can be downloaded from <a href="http://www.cs.unipr.it/ppl/Download/">http://www.cs.unipr.it/ppl/Download/</a>.
+
+     <p>The <samp><span class="option">--with-ppl</span></samp> configure option should be used if PPL is not
+installed in your default library search path.
+
+     <br><dt>CLooG-PPL version 0.15<dd>
+Necessary to build GCC with the Graphite loop optimizations.  It can
+be downloaded from <a href="ftp://gcc.gnu.org/pub/gcc/infrastructure/">ftp://gcc.gnu.org/pub/gcc/infrastructure/</a>. 
+The code in <samp><span class="file">cloog-ppl-0.15.tar.gz</span></samp> comes from a branch of CLooG
+available from <a href="http://repo.or.cz/w/cloog-ppl.git">http://repo.or.cz/w/cloog-ppl.git</a>.  CLooG-PPL
+should be configured with <samp><span class="option">--with-ppl</span></samp>.
+
+     <p>The <samp><span class="option">--with-cloog</span></samp> configure option should be used if CLooG is
+not installed in your default library search path.
+
+     <br><dt><samp><span class="command">jar</span></samp>, or InfoZIP (<samp><span class="command">zip</span></samp> and <samp><span class="command">unzip</span></samp>)<dd>
+Necessary to build libgcj, the GCJ runtime.
+
+</dl>
+
+<h3 class="heading"><a name="TOC1"></a>Tools/packages necessary for modifying GCC</h3>
+
+     <dl>
+<dt>autoconf version 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.
+
+     <br><dt>automake version 1.9.6<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.6.  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>DejaGnu 1.4.4<dt>Expect<dt>Tcl<dd>
+Necessary to run the GCC testsuite; see the section on testing for details.
+
+     <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 &lsquo;<samp><span class="samp">make check</span></samp>&rsquo; for <samp><span class="file">fixinc</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>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 SVN repository.  They are included in
+releases.
+
+     <br><dt>Texinfo version 4.7 (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 for running <samp><span class="command">make dvi</span></samp> or <samp><span class="command">make pdf</span></samp> to
+create printable documentation in DVI or PDF format.  Texinfo version
+4.8 or later is required for <samp><span class="command">make pdf</span></samp>.
+
+     <p>Necessary to build GCC documentation during development because the
+generated output files are not included in the SVN repository.  They are
+included in releases.
+
+     <br><dt>TeX (any working version)<dd>
+Necessary for running <samp><span class="command">texi2dvi</span></samp> and <samp><span class="command">texi2pdf</span></samp>, which
+are used when running <samp><span class="command">make dvi</span></samp> or <samp><span class="command">make pdf</span></samp> to create
+DVI or PDF files, respectively.
+
+     <br><dt>SVN (any version)<dt>SSH (any version)<dd>
+Necessary to access the SVN 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. 
+Necessary when targetting Darwin, building libstdc++,
+and not using <samp><span class="option">--disable-symvers</span></samp>. 
+Used by various scripts to generate some files included in SVN (mainly
+Unicode-related and rarely changing) from source tables.
+
+     <br><dt>GNU diffutils version 2.7 (or later)<dd>
+Useful when submitting patches for the GCC source code.
+
+     <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.
+
+     <br><dt>ecj1<dt>gjavah<dd>
+If you wish to modify <samp><span class="file">.java</span></samp> files in libjava, you will need to
+configure with <samp><span class="option">--enable-java-maintainer-mode</span></samp>, and you will need
+to have executables named <samp><span class="command">ecj1</span></samp> and <samp><span class="command">gjavah</span></samp> in your path. 
+The <samp><span class="command">ecj1</span></samp> executable should run the Eclipse Java compiler via
+the GCC-specific entry point.  You can download a suitable jar from
+<a href="ftp://sourceware.org/pub/java/">ftp://sourceware.org/pub/java/</a>, or by running the script
+<samp><span class="command">contrib/download_ecj</span></samp>.
+
+     <br><dt>antlr.jar version 2.7.1 (or later)<dt>antlr binary<dd>
+If you wish to build the <samp><span class="command">gjdoc</span></samp> binary in libjava, you will
+need to have a <samp><span class="file">antlr.jar</span></samp> library available. The library is
+searched in system locations but can be configured with
+<samp><span class="option">--with-antlr-jar=</span></samp> instead.  When configuring with
+<samp><span class="option">--enable-java-maintainer-mode</span></samp>, you will need to have one of
+the executables named <samp><span class="command">cantlr</span></samp>, <samp><span class="command">runantlr</span></samp> or
+<samp><span class="command">antlr</span></samp> in your path.
+
+</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>
+