Thomas Petazzoni writes:
authorEric Andersen <andersen@codepoet.org>
Tue, 28 Dec 2004 19:15:20 +0000 (19:15 -0000)
committerEric Andersen <andersen@codepoet.org>
Tue, 28 Dec 2004 19:15:20 +0000 (19:15 -0000)
ello,

Enclosed is a small documentation update. It adds a section that answers
a very often asked question : "How to use the uClibc toolchain generated
by Buildroot".

Erik, could you apply it if you agree with the modifications ?

Thanks,

Thomas

docs/buildroot-documentation.html

index 23c79ce23801807b97581ceb8735958e672c422e..35b824a7c56faeb3c5e091cab4167b683d5c438c 100644 (file)
@@ -18,7 +18,7 @@
     <p>Usage and documentation by Thomas Petazzoni. Contributions from
     Karsten Kruse, Ned Ludd, Martin Herren.</p>
 
-    <p><small>Last modification : $Date: 2004/12/27 19:01:52 $</small></p>
+    <p><small>Last modification : $Id: buildroot-documentation.html,v 1.2 2004/12/28 19:15:20 andersen Exp $</small></p>
 
     <ul>
       <li><a href="#about">About Buildroot</a></li>
@@ -30,8 +30,9 @@
       <li><a href="#custom_uclibc">Customizing the uClibc
       configuration</a></li>
       <li><a href="#buildroot_innards">How Buildroot works</a></li>
-      <li><a href="#toolchain_standalone">Using the uClibc toolchain without
-      Buildroot</a></li>
+      <li><a href="#using_toolchain">Using the uClibc toolchain</a></li>
+      <li><a href="#toolchain_standalone">Using the uClibc toolchain
+      outside of Buildroot</a></li>
       <li><a href="#downloaded_packages">Location of downloaded packages</a></li>
       <li><a href="#add_software">Extending Buildroot with more
       Software</a></li>
       <code>toolchain/uClibc/uClibc.config-locale</code>. The former
       is used if you haven't selected locale support in Buildroot
       configuration, and the latter is used if you have selected
-      locale support.
+      locale support.</li>
 
       <li>Run the compilation of Buildroot again</li>
 
 
     <p>As said above, Buildroot is basically a set of Makefiles that download,
     configure and compiles software with the correct options. It also includes
-    some patches for various softwares, mainly the ones involved in the
+    some patches for various software, mainly the ones involved in the
     cross-compilation tool chain (<code>gcc</code>, <code>binutils</code> and
     uClibc).</p>
 
       sub-directory per tool.</li>
 
       <li><b>toolchain</b> (in the <code>toolchain/</code> directory) contains
-      the Makefiles and associated files for all softwares related to the
+      the Makefiles and associated files for all software related to the
       cross-compilation toolchain : <code>binutils</code>, <code>ccache</code>,
       <code>gcc</code>, <code>gdb</code>, <code>kernel-headers</code> and
       <code>uClibc</code>.</li>
 
       <li><b>target</b> (in the <code>target</code> directory) contains the
-      Makefiles and associated files for softwares related to the generation of
+      Makefiles and associated files for software related to the generation of
       the target root filesystem image. Four types of filesystems are supported
       : ext2, jffs2, cramfs and squashfs. For each of them, there's a
       sub-directory with the required files. There is also a
       this global variable, so that the needed tools gets compiled.</li>
     </ol>
 
+    <h2><a name="using_toolchain" id="using_toolchain"></a>Using the
+    uClibc toolchain</h2>
+
+    <p>You may want to compile your own programs or other software
+    that are not packaged in Buildroot. In order to do this, you can
+    use the toolchain that was generated by Buildroot.</p>
+
+    <p>The toolchain generated by Buildroot by default is located in
+    <code>build_ARCH/staging_dir/</code>. The simplest way to use it
+    is to add <code>build_ARCH/staging_dir/bin/</code> to your PATH
+    environnement variable, and then to use
+    <code>arch-linux-gcc</code>, <code>arch-linux-objdump</code>,
+    <code>arch-linux-ld</code>, etc.</p>
+
+    <p>For example, you may add the following to your
+    <code>.bashrc</code> (considering you're building for the MIPS
+    architecture and that Buildroot is located in
+    <code>~/buildroot/</code>) :</p>
+
+<pre>
+export PATH=$PATH:~/buildroot/build_mips/bin/
+</pre>
+
+    <p>Then you can simply do :</p>
+
+<pre>
+mips-linux-gcc -o foo foo.c
+</pre>
+
+    <p><b>Important</b> : do not try to move the toolchain to an other
+    directory, it won't work. There are some hard-coded paths in the
+    <i>gcc</i> configuration. If the default toolchain directory
+    doesn't suit your needs, please refer to the <a
+    href="#toolchain_standalone">Using the uClibc toolchain outside of
+    buildroot</a> section.</p>
+
     <h2><a name="toolchain_standalone" id="toolchain_standalone"></a>Using the
-    uClibc toolchain without buildroot</h2>
+    uClibc toolchain outside of buildroot</h2>
 
     <p>By default, the cross-compilation toolchain is generated inside
     <code>build_ARCH/staging_dir/</code>. But sometimes, it may be useful to
@@ -412,7 +449,7 @@ config BR2_PACKAGE_FOO
     fact, the name of the software is the the identifier of the target
     inside the real <i>Makefile</i> that will do everything (download,
     compile, install), and that we study below. Back to
-    <code>Makefile.in</code>, here is an example :
+    <code>Makefile.in</code>, here is an example :</p>
 
 <pre>
 ifeq ($(strip $(BR2_PACKAGE_FOO)),y)
@@ -486,7 +523,7 @@ endif
 </pre>
 
     <p>First of all, this <i>Makefile</i> example works for a single
-    binary software. For other softwares such as libraries or more
+    binary software. For other software such as libraries or more
     complex stuff with multiple binaries, it should be adapted. Look at
     the other <code>*.mk</code> files in the <code>package</code>
     directory.</p>