docs/overview.txt
changeset 92 1159b1384a78
parent 40 8601bce18905
child 135 b2695c2f1919
     1.1 --- a/docs/overview.txt	Tue Apr 17 22:22:46 2007 +0000
     1.2 +++ b/docs/overview.txt	Sun May 13 21:11:54 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 +