|
@@ -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>
|
|
@@ -246,7 +247,7 @@
|
|
|
<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>
|
|
|
|
|
@@ -262,7 +263,7 @@
|
|
|
|
|
|
<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>
|
|
|
|
|
@@ -277,13 +278,13 @@
|
|
|
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
|
|
@@ -347,8 +348,44 @@
|
|
|
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>
|