In overview.txt, document the two ways of using crosstool-NG: install and --local.
Fix some typos in overview.txt.
Document populate's options, still in overview.txt.
Credit the buildroot people for the patches I vampirise from time to time.
1.1 --- a/docs/CREDITS Tue Jul 24 21:45:46 2007 +0000
1.2 +++ b/docs/CREDITS Tue Jul 24 21:51:24 2007 +0000
1.3 @@ -21,4 +21,7 @@
1.4 - 'sanitised' patches for binutils-2.17
1.5 - patches for glibc-2.5
1.6
1.7 +Special dedication to the buildroot people for maintaining a set of patches I
1.8 +happily and shamelessly vampirise from time to time... :-)
1.9 +
1.10 More to come as they help.
2.1 --- a/docs/overview.txt Tue Jul 24 21:45:46 2007 +0000
2.2 +++ b/docs/overview.txt Tue Jul 24 21:51:24 2007 +0000
2.3 @@ -85,6 +85,58 @@
2.4 Next Generation, as many other comunity projects do, and as a wink at the TV
2.5 series "Star Trek: The Next Generation". ;-)
2.6
2.7 +
2.8 +___________________________
2.9 + /
2.10 +Installing crosstool-NG /
2.11 +________________________/
2.12 +
2.13 +There are two ways you can use crosstool-NG:
2.14 + - build and install it, then get rid of the sources like you'd do for most
2.15 + programs,
2.16 + - or only build it and run from the source directory.
2.17 +
2.18 +The former should be used if you got crosstool-NG from a packaged tarball, see
2.19 +"Install method", below, while the latter is most usefull for developpers that
2.20 +checked the code out from SVN, and want to submit patches, see "The Hacker's
2.21 +way", below.
2.22 +
2.23 +Install method |
2.24 +---------------+
2.25 +
2.26 +If you go for the install, then you just follow the classical, but yet easy
2.27 +./configure way:
2.28 + ./configure --prefix=/some/place
2.29 + make
2.30 + make install
2.31 + export PATH="${PATH}:/some/place/bin"
2.32 +
2.33 +You can then get rid of crosstool-NG source. Next create a directory to serve
2.34 +as a working place, cd in there and run:
2.35 + ct-ng help
2.36 +
2.37 +See below for complete usage.
2.38 +
2.39 +The Hacker's way |
2.40 +-----------------+
2.41 +
2.42 +If you go the hacker's way, then the usage is a bit different, although very
2.43 +simple:
2.44 + ./configure --local
2.45 + make
2.46 +
2.47 +Now, *do not* remove crosstool-NG sources. They are needed to run crosstool-NG!
2.48 +Stay in the directory holding the sources, and run:
2.49 + ./ct-ng help
2.50 +
2.51 +See below for complete usage.
2.52 +
2.53 +Now, provided you checked-out the code, you can send me your interesting changes
2.54 +by running:
2.55 + svn diff
2.56 +
2.57 +and mailing me the result! :-P
2.58 +
2.59 ____________________________
2.60 /
2.61 Configuring crosstool-NG /
2.62 @@ -106,7 +158,7 @@
2.63
2.64 String and number options can refer to environment variables. In such a case,
2.65 you must use the shell syntax: ${VAR}. You shall neither single- nor double-
2.66 -quote the string options.
2.67 +quote the string/number options.
2.68
2.69 There are three environment variables that are computed by crosstool-NG, and
2.70 that you can use:
2.71 @@ -159,7 +211,7 @@
2.72 Show obsolete versions or tools. Most of the time, you don't want to base
2.73 your toolchain on too old a version (of gcc, for example). But at times, it
2.74 can come handy to use such an old version for regression tests. Those old
2.75 - versions are hidden behind CT_BSOLETE.
2.76 + versions are hidden behind CT_OBSOLETE.
2.77
2.78 CT_EXPERIMENTAL:
2.79 Show experimental versions or tools. Again, you might not want to base your
2.80 @@ -171,7 +223,7 @@
2.81 Show broken versions or tools. Some usefull tools are currently broken: they
2.82 won't compile, run, or worse, cause defects when running. But if you are
2.83 brave enough, you can try and debug them. They are hidden behind CT_BROKEN,
2.84 - which itself is hiddent behind EXPERIMENTAL.
2.85 + which itself is hidden behind EXPERIMENTAL.
2.86
2.87 Re-building an existing toolchain |
2.88 ----------------------------------+
2.89 @@ -257,9 +309,11 @@
2.90 and then using the target triplet to tell the build systems to use your
2.91 toolchain:
2.92 ./configure --target=your-target-triplet
2.93 +or
2.94 make CC=your-target-triplet-gcc
2.95 +or
2.96 make CROSS_COMPILE=your-target-triplet-
2.97 - and so on...
2.98 +and so on...
2.99
2.100 When your root directory is ready, it is still missing some important bits: the
2.101 toolchain's libraries. To populate your root directory with those libs, just
2.102 @@ -274,6 +328,24 @@
2.103 You can then use /your/root-populated to build up your file system image, a
2.104 tarball, or to NFS-mount it from your target, or whatever you need.
2.105
2.106 +populate accepts the following options:
2.107 +
2.108 + -s [src_dir]
2.109 + Use 'src_dir' as the 'source', un-populated root directory
2.110 +
2.111 + -d [dst_dir]
2.112 + Put the 'destination', populated root directory in 'dst_dir'
2.113 +
2.114 + -f
2.115 + Remove 'dst_dir' if it previously existed
2.116 +
2.117 + -v
2.118 + Be verbose, and tell what's going on (you can see exactly where libs are
2.119 + coming from).
2.120 +
2.121 + -h
2.122 + Print the help
2.123 +
2.124 ___________________
2.125 /
2.126 Toolchain types /
2.127 @@ -350,6 +422,7 @@
2.128 script with an action will act exactly as if the Makefile was in the current
2.129 working directory and make was called with the action as rule. Thus:
2.130 ct-ng menuconfig
2.131 +
2.132 is equivalent to having the Makefile in CWD, and calling:
2.133 make menuconfig
2.134
2.135 @@ -362,13 +435,16 @@
2.136 ct-ng also search for config files, sub-tools, samples, scripts and patches in
2.137 that library directory.
2.138
2.139 +Because of a stupid make behavior/bug I was unable to track down, implicit make
2.140 +rules are disabled: installing with --local would triger those rules, and mconf
2.141 +was unbuildable.
2.142 +
2.143 Kconfig parser |
2.144 ---------------*
2.145
2.146 The kconfig language is a hacked version, vampirised from the toybox project
2.147 by Rob LANDLEY (http://www.landley.net/code/toybox/), itself coming from the
2.148 -Linux kernel (http://www.linux.org/ http://www.kernel.org/), and (heavily)
2.149 -adapted to my needs.
2.150 +Linux kernel (http://www.kernel.org/), and (heavily) adapted to my needs.
2.151
2.152 The kconfig parsers (conf and mconf) are not installed pre-built, but as
2.153 source files. Thus you can have the directory where crosstool-NG is installed,