docs/overview.txt
changeset 203 73b023845581
parent 197 9383bf4a2e2e
child 227 15f44768d3f7
     1.1 --- a/docs/overview.txt	Mon Jul 02 19:40:54 2007 +0000
     1.2 +++ b/docs/overview.txt	Wed Jul 04 17:37:48 2007 +0000
     1.3 @@ -63,13 +63,13 @@
     1.4  crosstool was first 'conceived' by Dan Kegel, which offered it to the community,
     1.5  as a set of scripts, a repository of patches, and some pre-configured, general
     1.6  purpose setup files to be used to configure crosstool. This is available at
     1.7 -www.kegel.com/crosstool, and the subversion repository is hosted on google at
     1.8 -http://code.google.com/p/crosstool/.
     1.9 +http://www.kegel.com/crosstool, and the subversion repository is hosted on
    1.10 +google at http://code.google.com/p/crosstool/.
    1.11  
    1.12  At the time of writing, crosstool only supports building with one C library,
    1.13  namely glibc, and one C compiler, gcc; it is cripled with historical support
    1.14  for legacy components, and is some kind of a mess to upgrade. Also, submited
    1.15 -patches take a looong time before they are integrated mainline.
    1.16 +patches take a loooong time before they are integrated mainline.
    1.17  
    1.18  I once managed to add support for uClibc-based toolchains, but it did not make
    1.19  into mainline, mostly because I don't have time to port the patch forward to
    1.20 @@ -77,7 +77,8 @@
    1.21  
    1.22  So I decided to clean up crosstool in the state it was, re-order the things
    1.23  in place, and add appropriate support for what I needed, that is uClibc
    1.24 -support.
    1.25 +support. That was a disaster, as inclusion into mainline is slow as hell,
    1.26 +and the changes were so numerous.
    1.27  
    1.28  The only option left to me was rewrite crosstool from scratch. I decided to go
    1.29  this way, and name the new implementation crosstool-NG, standing for crosstool
    1.30 @@ -95,7 +96,7 @@
    1.31  To enter the menu, type:
    1.32    ct-ng menuconfig
    1.33  
    1.34 -Almost every config item has a help entry. Read it carefully.
    1.35 +Almost every config item has a help entry. Read them carefully.
    1.36  
    1.37  String and number options can refer to environment variables. In such a case,
    1.38  you must use the shell syntax: ${VAR}. You shall neither single- nor double-
    1.39 @@ -155,7 +156,7 @@
    1.40  value for those options are then stored in a configuration file.
    1.41  
    1.42  To build the toolchain, simply type:
    1.43 -  ct-ng
    1.44 +  ct-ng build
    1.45  
    1.46  This will use the above configuration to retrieve, extract and patch the
    1.47  components, build, install and eventually test your newly built toolchain.
    1.48 @@ -165,6 +166,8 @@
    1.49  
    1.50  In any case, you can get some terse help. Just type:
    1.51    ct-ng help
    1.52 +or:
    1.53 +  man 1 ct-ng
    1.54  
    1.55  
    1.56  Stoping and restarting a build |
    1.57 @@ -215,7 +218,7 @@
    1.58    1) the machine configuring the toolchain components: the config machine
    1.59    2) the machine building the toolchain components:    the build machine
    1.60    3) the machine running the toolchain:                the host machine
    1.61 -  4) the machine the toolchain is building for:        the target machine
    1.62 +  4) the machine the toolchain is generating code for: the target machine
    1.63  
    1.64  We can most of the time assume that the config machine and the build machine
    1.65  are the same. Most of the time, this will be true. The only time it isn't
    1.66 @@ -275,7 +278,21 @@
    1.67  Makefile front-end |
    1.68  -------------------*
    1.69  
    1.70 -To Be Written later...
    1.71 +The entry point to crosstool-NG is the Makefile script "ct-ng". Calling this
    1.72 +script with an action will act exactly as if the Makefile was in the current
    1.73 +working directory and make was called with the action as rule. Thus:
    1.74 +  ct-ng menuconfig
    1.75 +is equivalent to having the Makefile in CWD, and calling:
    1.76 +  make menuconfig
    1.77 +
    1.78 +Having ct-ng as it is avoids copying the Makefile everywhere, and acts as a
    1.79 +traditional command.
    1.80 +
    1.81 +ct-ng loads sub- Makefiles from the library directory $(CT_LIB_DIR), as set up
    1.82 +at configuration time with ./configure.
    1.83 +
    1.84 +ct-ng also search for config files, sub-tools, samples, scripts and patches in
    1.85 +that library directory.
    1.86  
    1.87  Kconfig parser |
    1.88  ---------------*
    1.89 @@ -285,3 +302,13 @@
    1.90  Linux kernel (http://www.linux.org/ http://www.kernel.org/), and (heavily)
    1.91  adapted to my needs.
    1.92  
    1.93 +The kconfig parsers (conf and mconf) are not installed pre-built, but as
    1.94 +source files. Thus you can have the directory where crosstool-NG is installed,
    1.95 +exported (via NFS or whatever) and have clients with different architectures
    1.96 +use the same crosstool-NG installation, and most notably, the same set of
    1.97 +patches.
    1.98 +
    1.99 +Build scripts |
   1.100 +--------------*
   1.101 +
   1.102 +To Be Written later...