docs/overview.txt
changeset 294 7947c33280e8
parent 277 4c32aa5569b2
child 304 56b97558f14a
     1.1 --- a/docs/overview.txt	Tue Jul 17 21:49:43 2007 +0000
     1.2 +++ b/docs/overview.txt	Tue Jul 24 21:51:24 2007 +0000
     1.3 @@ -85,6 +85,58 @@
     1.4  Next Generation, as many other comunity projects do, and as a wink at the TV
     1.5  series "Star Trek: The Next Generation". ;-)
     1.6  
     1.7 +
     1.8 +___________________________
     1.9 +                          /
    1.10 +Installing crosstool-NG  /
    1.11 +________________________/
    1.12 +
    1.13 +There are two ways you can use crosstool-NG:
    1.14 + - build and install it, then get rid of the sources like you'd do for most
    1.15 +   programs,
    1.16 + - or only build it and run from the source directory.
    1.17 +
    1.18 +The former should be used if you got crosstool-NG from a packaged tarball, see
    1.19 +"Install method", below, while the latter is most usefull for developpers that
    1.20 +checked the code out from SVN, and want to submit patches, see "The Hacker's
    1.21 +way", below.
    1.22 +
    1.23 +Install method |
    1.24 +---------------+
    1.25 +
    1.26 +If you go for the install, then you just follow the classical, but yet easy
    1.27 +./configure way:
    1.28 +  ./configure --prefix=/some/place
    1.29 +  make
    1.30 +  make install
    1.31 +  export PATH="${PATH}:/some/place/bin"
    1.32 +
    1.33 +You can then get rid of crosstool-NG source. Next create a directory to serve
    1.34 +as a working place, cd in there and run:
    1.35 +  ct-ng help
    1.36 +
    1.37 +See below for complete usage.
    1.38 +
    1.39 +The Hacker's way |
    1.40 +-----------------+
    1.41 +
    1.42 +If you go the hacker's way, then the usage is a bit different, although very
    1.43 +simple:
    1.44 +  ./configure --local
    1.45 +  make
    1.46 +
    1.47 +Now, *do not* remove crosstool-NG sources. They are needed to run crosstool-NG!
    1.48 +Stay in the directory holding the sources, and run:
    1.49 +  ./ct-ng help
    1.50 +
    1.51 +See below for complete usage.
    1.52 +
    1.53 +Now, provided you checked-out the code, you can send me your interesting changes
    1.54 +by running:
    1.55 +  svn diff
    1.56 +
    1.57 +and mailing me the result! :-P
    1.58 +
    1.59  ____________________________
    1.60                             /
    1.61  Configuring crosstool-NG  /
    1.62 @@ -106,7 +158,7 @@
    1.63  
    1.64  String and number options can refer to environment variables. In such a case,
    1.65  you must use the shell syntax: ${VAR}. You shall neither single- nor double-
    1.66 -quote the string options.
    1.67 +quote the string/number options.
    1.68  
    1.69  There are three environment variables that are computed by crosstool-NG, and
    1.70  that you can use:
    1.71 @@ -159,7 +211,7 @@
    1.72    Show obsolete versions or tools. Most of the time, you don't want to base
    1.73    your toolchain on too old a version (of gcc, for example). But at times, it
    1.74    can come handy to use such an old version for regression tests. Those old
    1.75 -  versions are hidden behind CT_BSOLETE.
    1.76 +  versions are hidden behind CT_OBSOLETE.
    1.77  
    1.78  CT_EXPERIMENTAL:
    1.79    Show experimental versions or tools. Again, you might not want to base your
    1.80 @@ -171,7 +223,7 @@
    1.81    Show broken versions or tools. Some usefull tools are currently broken: they
    1.82    won't compile, run, or worse, cause defects when running. But if you are
    1.83    brave enough, you can try and debug them. They are hidden behind CT_BROKEN,
    1.84 -  which itself is hiddent behind EXPERIMENTAL.
    1.85 +  which itself is hidden behind EXPERIMENTAL.
    1.86  
    1.87  Re-building an existing toolchain |
    1.88  ----------------------------------+
    1.89 @@ -257,9 +309,11 @@
    1.90  and then using the target triplet to tell the build systems to use your
    1.91  toolchain:
    1.92    ./configure --target=your-target-triplet
    1.93 +or
    1.94    make CC=your-target-triplet-gcc
    1.95 +or
    1.96    make CROSS_COMPILE=your-target-triplet-
    1.97 -  and so on...
    1.98 +and so on...
    1.99  
   1.100  When your root directory is ready, it is still missing some important bits: the
   1.101  toolchain's libraries. To populate your root directory with those libs, just
   1.102 @@ -274,6 +328,24 @@
   1.103  You can then use /your/root-populated to build up your file system image, a
   1.104  tarball, or to NFS-mount it from your target, or whatever you need.
   1.105  
   1.106 +populate accepts the following options:
   1.107 +
   1.108 + -s [src_dir]
   1.109 +    Use 'src_dir' as the 'source', un-populated root directory
   1.110 +
   1.111 + -d [dst_dir]
   1.112 +    Put the 'destination', populated root directory in 'dst_dir'
   1.113 +
   1.114 + -f
   1.115 +    Remove 'dst_dir' if it previously existed
   1.116 +
   1.117 + -v
   1.118 +    Be verbose, and tell what's going on (you can see exactly where libs are
   1.119 +    coming from).
   1.120 +
   1.121 + -h
   1.122 +    Print the help
   1.123 +
   1.124  ___________________
   1.125                    /
   1.126  Toolchain types  /
   1.127 @@ -350,6 +422,7 @@
   1.128  script with an action will act exactly as if the Makefile was in the current
   1.129  working directory and make was called with the action as rule. Thus:
   1.130    ct-ng menuconfig
   1.131 +
   1.132  is equivalent to having the Makefile in CWD, and calling:
   1.133    make menuconfig
   1.134  
   1.135 @@ -362,13 +435,16 @@
   1.136  ct-ng also search for config files, sub-tools, samples, scripts and patches in
   1.137  that library directory.
   1.138  
   1.139 +Because of a stupid make behavior/bug I was unable to track down, implicit make
   1.140 +rules are disabled: installing with --local would triger those rules, and mconf
   1.141 +was unbuildable.
   1.142 +
   1.143  Kconfig parser |
   1.144  ---------------*
   1.145  
   1.146  The kconfig language is a hacked version, vampirised from the toybox project
   1.147  by Rob LANDLEY (http://www.landley.net/code/toybox/), itself coming from the
   1.148 -Linux kernel (http://www.linux.org/ http://www.kernel.org/), and (heavily)
   1.149 -adapted to my needs.
   1.150 +Linux kernel (http://www.kernel.org/), and (heavily) adapted to my needs.
   1.151  
   1.152  The kconfig parsers (conf and mconf) are not installed pre-built, but as
   1.153  source files. Thus you can have the directory where crosstool-NG is installed,