This is the README for crosstool-NG

Crosstool-NG follows the autoconf dance. So, to get you
kick-started, just run:
    ./configure --help

If you are using a development snapshot, you'll have to
create the configure script, first. Just run:
    ./bootstrap

You will find the documentation in the directory 'docs'.
Here is a quick overview of what you'll find there:
  0 - Table of content
  1 - Introduction
  2 - Installing crosstool-NG
  3 - Configuring a toolchain
  4 - Building the toolchain
  5 - Using the toolchain
  6 - Toolchain types
  7 - Contributing
  8 - Internals
  A - Credits
  B - Known issues
  C - Misc. tutorials

You can also point your browser at:
  http://crosstool-ng.org/

Aloha!
