<html>
<head>
<title>Installing egcs-1.0.3 </title>
</head>
<body bgcolor="white">
<h1 align="center">Installing egcs-1.0.3</h1>

<p>This document describes the generic installation procedure for egcs as
well as detailing some target specific installation instructions for egcs.

<p>egcs includes several components that previously were separate distributions
with their own installation instructions.  This document supercedes all 
package specific installation instructions.  We provide the component specific
installation information in the source distribution for historical reference
purposes only.

<p>We recommend you read the entire generic installation instructions as
well as any target specific installation instructions before you proceed
to configure, build, test and install egcs.

<p>If something goes wrong in the configure, build, test or install
procedures, first double check that you followed the generic and target
specific installation instructions carefully.  Then check the 
<a href="faq.html">FAQ</a> to see if your problem is covered before you file
a bug report.

<p>The installation procedure is broken into four steps.

<ul>

  <li> <a href="configure.html">configure</a>
  <li> <a href="build.html">build</a>
  <li> <a href="test.html">test</a> (optional)
  <li> <a href="finalinstall.html">install</a>

</ul>

<p>Before starting the build/install procedure <b>please</b> browse the
<a href="specific.html">host/target specific installation notes</a>.

<hr>
<a href="../index.html">Return to the egcs home page</a>
</body>
</html>
<hr>
<i>Last modified on Jan 2, 1998.</i>

