This directory has been obsoleted for GCC snapshots and CVS access.

For releases the installation documentation is generated from
gcc/doc/install.texi and copied into this directory.

To read this documentation, please point your HTML browser to "index.html".
