path: root/docs
diff options
authorYann E. MORIN" <>2007-05-13 21:11:54 (GMT)
committerYann E. MORIN" <>2007-05-13 21:11:54 (GMT)
commit9d8cb8679b2c3bf0cf3cc3764f48061cf7230bc1 (patch)
treec85bddaa1b46aecc08c544ff581e3a0261b034f1 /docs
parent4ef6286f11161370e7d77102ec23df58a11a7e47 (diff)
update the documentation somewhat. Still not complete, though... :-(
Diffstat (limited to 'docs')
1 files changed, 79 insertions, 4 deletions
diff --git a/docs/overview.txt b/docs/overview.txt
index 93ff311..1ddf418 100644
--- a/docs/overview.txt
+++ b/docs/overview.txt
@@ -1,7 +1,8 @@
File.........: overview.txt
Content......: Overview of how ct-ng works.
-Copyrigth....: (C) 2006 Yann E. MORIN <>
+Copyrigth....: (C) 2007 Yann E. MORIN <>
License......: see COPYING in the root of this package
Introduction /
@@ -67,7 +68,8 @@
At the time of writing, crosstool only supports building with one C library,
namely glibc, and one C compiler, gcc; it is cripled with historical support
-for legacy components, and is some kind of a mess to upgrade.
+for legacy components, and is some kind of a mess to upgrade. Also, submited
+patches take a looong time before they are integrated mainline.
I once managed to add support for uClibc-based toolchains, but it did not make
into mainline, mostly because I don't have time to port the patch forward to
@@ -100,6 +102,64 @@ toolchain.
You are then free to add the toolchain /bin directory in your PATH to use
it at will.
+ /
+Configuring crosstool-NG /
+crosstool-NG is configured the same way you configure your Linux kernel: by
+using a curses-based menu. It is assumed you now how to handle this.
+Almost every config item has a help entry. Read it carefully.
+String and number options can refer to environment variables. In such a case,
+you must use the shell syntax: ${VAR}. No such option is ever needed by make.
+You need to neither single- nor double-quote the string options.
+There are three environment variablea that are computed by crosstool-NG, and
+that you can use:
+ It represents the target triplet you are building for. You can use it for
+ example in the installation/prefix directory, such as:
+ /opt/x-tools/${CT_TARGET}
+ The top directory where crosstool-NG sits. You shouldn't need it in most
+ cases. There is one case where you may need it: if you have local patches
+ and you store them in your copy of crosstool-NG, you can refer to them
+ by using CT_TOP_DIR, such as:
+ ${CT_TOP_DIR}/patches.myproject
+ The version of crosstool-NG you are using. Not much help for you, but it's
+ there if you need it.
+Interesting config options |
+ If you already have sone tarballs in a direcotry, enter it here. That will
+ speed up the retrieving phase, where crosstool-ng would otherwise download
+ those tarballs.
+ This is where the toolchain will be installed in (and for now, where it
+ will run from).
+ The file where *all* log messages will go. Keep the default, in goes in
+ An identifier for your toolchain, will take place in the vendor part of the
+ target triplet. It shall *not* contain spaces or dashes. Usually, keep it
+ to a one-word string, or use underscores to separate words if you need.
+ Avoid dots, commas, and special characters.
+ An alias for the toolchian. It will be used as a prefix to the toolchain
+ tools. For example, you will have ${CT_TARGET_ALIAS}-gcc
@@ -149,7 +209,7 @@ this as "2 and 2 are 4". Here is how they come into play:
ct-ng calls it "cross-native".
4) build != host != target
- This one is called a canadian-toolchain (*), is is tricky. The three
+ This one is called a canadian-toolchain (*), and is tricky. The three
machines in play are different. You might want such a toolchain if you
have a fast build machine, but the users will use it on another machine,
and will produce code to run on a third machine.
@@ -166,4 +226,19 @@ _____________
Internals /
-<To be completed>
+Internally, crosstool-NG is script-based. To ease usage, the frontend is
+Makefile front-end |
+The Makefile defines a set of rules to call each action. You can get the
+list, along with some terse description, by typing "make help" in your
+favourite command line.
+The Makefile sets the version variable from the version file in ${CT_TOP_DIR}
+which is then available to others in the CT_VERSION environment variable.
+The kconfig language is a hacked version, vampirised from the toybox project
+by Rob LANDLEY (, adapted to my needs.