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,