1.1 --- a/docs/overview.txt Tue Apr 17 22:22:46 2007 +0000
1.2 +++ b/docs/overview.txt Wed May 23 20:49:02 2007 +0000
1.3 @@ -1,7 +1,8 @@
1.4 File.........: overview.txt
1.5 Content......: Overview of how ct-ng works.
1.6 -Copyrigth....: (C) 2006 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
1.7 +Copyrigth....: (C) 2007 Yann E. MORIN <yann.morin.1998@anciens.enib.fr>
1.8 License......: see COPYING in the root of this package
1.9 +
1.10 ________________
1.11 /
1.12 Introduction /
1.13 @@ -67,7 +68,8 @@
1.14
1.15 At the time of writing, crosstool only supports building with one C library,
1.16 namely glibc, and one C compiler, gcc; it is cripled with historical support
1.17 -for legacy components, and is some kind of a mess to upgrade.
1.18 +for legacy components, and is some kind of a mess to upgrade. Also, submited
1.19 +patches take a looong time before they are integrated mainline.
1.20
1.21 I once managed to add support for uClibc-based toolchains, but it did not make
1.22 into mainline, mostly because I don't have time to port the patch forward to
1.23 @@ -100,6 +102,64 @@
1.24 You are then free to add the toolchain /bin directory in your PATH to use
1.25 it at will.
1.26
1.27 +____________________________
1.28 + /
1.29 +Configuring crosstool-NG /
1.30 +_________________________/
1.31 +
1.32 +crosstool-NG is configured the same way you configure your Linux kernel: by
1.33 +using a curses-based menu. It is assumed you now how to handle this.
1.34 +
1.35 +Almost every config item has a help entry. Read it 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}. No such option is ever needed by make.
1.39 +You need to neither single- nor double-quote the string options.
1.40 +
1.41 +There are three environment variablea that are computed by crosstool-NG, and
1.42 +that you can use:
1.43 +
1.44 +CT_TARGET:
1.45 + It represents the target triplet you are building for. You can use it for
1.46 + example in the installation/prefix directory, such as:
1.47 + /opt/x-tools/${CT_TARGET}
1.48 +
1.49 +CT_TOP_DIR:
1.50 + The top directory where crosstool-NG sits. You shouldn't need it in most
1.51 + cases. There is one case where you may need it: if you have local patches
1.52 + and you store them in your copy of crosstool-NG, you can refer to them
1.53 + by using CT_TOP_DIR, such as:
1.54 + ${CT_TOP_DIR}/patches.myproject
1.55 +
1.56 +CT_VERSION:
1.57 + The version of crosstool-NG you are using. Not much help for you, but it's
1.58 + there if you need it.
1.59 +
1.60 +Interesting config options |
1.61 +---------------------------*
1.62 +
1.63 +CT_LOCAL_TARBALLS_DIR:
1.64 + If you already have sone tarballs in a direcotry, enter it here. That will
1.65 + speed up the retrieving phase, where crosstool-ng would otherwise download
1.66 + those tarballs.
1.67 +
1.68 +CT_PREFIX_DIR:
1.69 + This is where the toolchain will be installed in (and for now, where it
1.70 + will run from).
1.71 +
1.72 +CT_LOG_FILE:
1.73 + The file where *all* log messages will go. Keep the default, in goes in
1.74 + ${CT_PREFIX_DIR}/${CT_TARGET}.log
1.75 +
1.76 +CT_TARGET_VENDOR:
1.77 + An identifier for your toolchain, will take place in the vendor part of the
1.78 + target triplet. It shall *not* contain spaces or dashes. Usually, keep it
1.79 + to a one-word string, or use underscores to separate words if you need.
1.80 + Avoid dots, commas, and special characters.
1.81 +
1.82 +CT_TARGET_ALIAS:
1.83 + An alias for the toolchian. It will be used as a prefix to the toolchain
1.84 + tools. For example, you will have ${CT_TARGET_ALIAS}-gcc
1.85
1.86 ___________________
1.87 /
1.88 @@ -149,7 +209,7 @@
1.89 ct-ng calls it "cross-native".
1.90
1.91 4) build != host != target
1.92 - This one is called a canadian-toolchain (*), is is tricky. The three
1.93 + This one is called a canadian-toolchain (*), and is tricky. The three
1.94 machines in play are different. You might want such a toolchain if you
1.95 have a fast build machine, but the users will use it on another machine,
1.96 and will produce code to run on a third machine.
1.97 @@ -166,4 +226,19 @@
1.98 Internals /
1.99 __________/
1.100
1.101 -<To be completed>
1.102 +Internally, crosstool-NG is script-based. To ease usage, the frontend is
1.103 +Makefile-based.
1.104 +
1.105 +Makefile front-end |
1.106 +-------------------*
1.107 +
1.108 +The Makefile defines a set of rules to call each action. You can get the
1.109 +list, along with some terse description, by typing "make help" in your
1.110 +favourite command line.
1.111 +
1.112 +The Makefile sets the version variable from the version file in ${CT_TOP_DIR}
1.113 +which is then available to others in the CT_VERSION environment variable.
1.114 +
1.115 +The kconfig language is a hacked version, vampirised from the toybox project
1.116 +by Rob LANDLEY (http://www.landley.net/code/toybox/), adapted to my needs.
1.117 +