Fix Document style
This commit is contained in:
parent
e17c3858c4
commit
d65d81e06d
@ -34,7 +34,8 @@
|
||||
<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="#downloaded_packages">Location of downloaded packages</a>
|
||||
</li>
|
||||
<li><a href="#add_software">Extending Buildroot with more
|
||||
Software</a></li>
|
||||
<li><a href="#links">Resources</a></li>
|
||||
@ -68,8 +69,8 @@
|
||||
uses the GNU libc as C standard library. This compilation
|
||||
toolchain is called the "host compilation toolchain", and more
|
||||
generally, the machine on which it is running, and on which you're
|
||||
working is called the "host system". The compilation toolchain is
|
||||
provided by your distribution, and Buildroot has nothing to do
|
||||
working is called the "host system". The compilation toolchain
|
||||
is provided by your distribution, and Buildroot has nothing to do
|
||||
with it.</p>
|
||||
|
||||
<p>As said above, the compilation toolchain that comes with your system
|
||||
@ -147,7 +148,7 @@
|
||||
|
||||
<p>One of the key configuration items is the <code>PROJECT</code> which
|
||||
determines where some board specific packages are built and where the
|
||||
results are stored.</p>
|
||||
results are stored. </p>
|
||||
|
||||
<p>Once everything is configured, the configuration tool has generated a
|
||||
<code>.config</code> file that contains the description of your
|
||||
@ -165,7 +166,8 @@
|
||||
be named <code>root_fs_ARCH.EXT</code> where <code>ARCH</code> is your
|
||||
architecture and <code>EXT</code> depends on the type of target filesystem
|
||||
selected in the <code>Target options</code> section of the configuration
|
||||
tool.The file is stored in the "binaries/<code>$(PROJECT)</code>/" directory</p>
|
||||
tool.
|
||||
The file is stored in the "binaries/<code>$(PROJECT)</code>/" directory</p>
|
||||
|
||||
<p>If you intend to do an offline-build and just want to download all
|
||||
sources that you previously selected in "make menuconfig" then
|
||||
@ -207,12 +209,12 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
|
||||
|
||||
<ul>
|
||||
<li>Customize the target filesystem directly, and rebuild the image. The
|
||||
target filesystem is available under <code>project_build_ARCH/root/</code> where
|
||||
<code>ARCH</code> is the chosen target architecture. You can simply make
|
||||
your changes here, and run make afterwards, which will rebuild the target
|
||||
filesystem image. This method allows to do everything on the target
|
||||
filesystem, but if you decide to completely rebuild your toolchain and
|
||||
tools, these changes will be lost.</li>
|
||||
target filesystem is available under <code>project_build_ARCH/root/</code>
|
||||
where <code>ARCH</code> is the chosen target architecture.
|
||||
You can simply make your changes here, and run make afterwards, which will
|
||||
rebuild the target filesystem image. This method allows to do everything
|
||||
on the target filesystem, but if you decide to completely rebuild your
|
||||
toolchain and tools, these changes will be lost.</li>
|
||||
|
||||
<li>Customize the target filesystem skeleton, available under
|
||||
<code>target/generic/target_skeleton/</code>. You can customize
|
||||
@ -229,12 +231,13 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
|
||||
it should be changed. These main directories are in an tarball inside of
|
||||
inside the skeleton because it contains symlinks that would be broken
|
||||
otherwise.<br />
|
||||
These customizations are deployed into <code>project_build_ARCH/root/</code> just
|
||||
before the actual image is made. So simply rebuilding the image by running
|
||||
make should propogate any new changes to the image.</li>
|
||||
These customizations are deployed into
|
||||
<code>project_build_ARCH/root/</code> just before the actual image
|
||||
is made. So simply rebuilding the image by running
|
||||
make should propagate any new changes to the image.</li>
|
||||
|
||||
<li>When configuring the build system, using <code>make menuconfig</code>, you
|
||||
can specify the contents of the /etc/hostname and /etc/issue
|
||||
<li>When configuring the build system, using <code>make menuconfig</code>,
|
||||
you can specify the contents of the /etc/hostname and /etc/issue
|
||||
(the welcome banner) in the <code>PROJECT</code> section</li>
|
||||
</ul>
|
||||
|
||||
@ -258,8 +261,9 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
|
||||
</ol>
|
||||
|
||||
<p>Otherwise, you can simply change the
|
||||
<code>package/busybox/busybox-<version>.config</code> file if you know the options
|
||||
you want to change without using the configuration tool.</p>
|
||||
<code>package/busybox/busybox-<version>.config</code> file if you
|
||||
know the options you want to change without using the configuration tool.
|
||||
</p>
|
||||
<p>If you want to use an existing config file for busybox, then see
|
||||
section <a href="#environment_variables">environment variables</a>.</p>
|
||||
|
||||
@ -358,28 +362,28 @@ $ make HOSTCXX=g++-4.3-HEAD HOSTCC=gcc-4.3-HEAD
|
||||
tarballs are in this directory because it may be useful to save them
|
||||
somewhere to avoid further downloads.</li>
|
||||
|
||||
<li>Create the shared build directory (<code>build_ARCH/</code> by default,
|
||||
where <code>ARCH</code> is your architecture). This is where all
|
||||
non configurable user-space tools will be compiled.When building two or more
|
||||
targets using the same architecture, the first build will go through the full
|
||||
download, configure, make process, but the second and later builds will only
|
||||
copy the result from the first build to its project specific target directory
|
||||
significantly speeding up the build process</li>
|
||||
<li>Create the shared build directory (<code>build_ARCH/</code> by
|
||||
default, where <code>ARCH</code> is your architecture). This is where all
|
||||
non configurable user-space tools will be compiled.When building two or
|
||||
more targets using the same architecture, the first build will go through
|
||||
the full download, configure, make process, but the second and later
|
||||
builds will only copy the result from the first build to its project
|
||||
specific target directory significantly speeding up the build process</li>
|
||||
|
||||
<li>Create the project specific build directory
|
||||
(<code>project_build_ARCH/$(PROJECT)</code> by default, where <code>ARCH</code>
|
||||
is your architecture). This is where all configurable user-space tools will be
|
||||
compiled. The project specific build directory is neccessary, if two different
|
||||
targets needs to use a specific package, but the packages have different
|
||||
configuration for both targets. Some examples of packages built in this directory
|
||||
are busybox and linux.
|
||||
(<code>project_build_ARCH/$(PROJECT)</code> by default, where
|
||||
<code>ARCH</code> is your architecture). This is where all configurable
|
||||
user-space tools will be compiled. The project specific build directory
|
||||
is neccessary, if two different targets needs to use a specific package,
|
||||
but the packages have different configuration for both targets. Some
|
||||
examples of packages built in this directory are busybox and linux.
|
||||
</li>
|
||||
|
||||
<li>Create the project specific result directory
|
||||
(<code>binaries/$(PROJECT)</code> by default, where <code>ARCH</code>
|
||||
is your architecture). This is where the root file system images are stored,
|
||||
It is also used to store the linux kernel image and any utilities, boot-loaders
|
||||
etc. needed for a target.
|
||||
is your architecture). This is where the root file system images are
|
||||
stored, It is also used to store the linux kernel image and any
|
||||
utilities, boot-loaders etc. needed for a target.
|
||||
</li>
|
||||
|
||||
<li>Create the toolchain build directory
|
||||
@ -456,9 +460,9 @@ mips-linux-gcc -o foo foo.c
|
||||
<code>build_ARCH/staging_dir/</code>. But sometimes, it may be useful to
|
||||
install it somewhere else, so that it can be used to compile other programs
|
||||
or by other users. Moving the <code>build_ARCH/staging_dir/</code>
|
||||
directory elsewhere is <b>not possible if using gcc-3.x</b>, because they are some hardcoded
|
||||
paths in the toolchain configuration. This works, thanks to sysroot support, with current,
|
||||
stable gcc-4.x toolchains, of course.</p>
|
||||
directory elsewhere is <b>not possible if using gcc-3.x</b>, because they
|
||||
are some hardcoded paths in the toolchain configuration. This works, thanks
|
||||
to sysroot support, with current, stable gcc-4.x toolchains, of course.</p>
|
||||
|
||||
<p>If you want to use the generated gcc-3.x toolchain for other purposes,
|
||||
you can configure Buildroot to generate it elsewhere using the
|
||||
@ -585,7 +589,8 @@ config BR2_PACKAGE_FOO
|
||||
the other <code>*.mk</code> files in the <code>package</code>
|
||||
directory.</p>
|
||||
|
||||
<p>At lines <a href="#line6">6-11</a>, a couple of useful variables are defined :</p>
|
||||
<p>At lines <a href="#line6">6-11</a>, a couple of useful variables are
|
||||
defined :</p>
|
||||
|
||||
<ul>
|
||||
|
||||
@ -614,22 +619,22 @@ config BR2_PACKAGE_FOO
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Lines <a href="#line13">13-14</a> defines a target that downloads the tarball from
|
||||
the remote site to the download directory
|
||||
<p>Lines <a href="#line13">13-14</a> defines a target that downloads the
|
||||
tarball from the remote site to the download directory
|
||||
(<code>DL_DIR</code>).</p>
|
||||
|
||||
<p>Lines <a href="#line16">16-18</a> defines a target and associated rules that
|
||||
uncompress the downloaded tarball. As you can see, this target
|
||||
<p>Lines <a href="#line16">16-18</a> defines a target and associated rules
|
||||
that uncompress the downloaded tarball. As you can see, this target
|
||||
depends on the tarball file, so that the previous target (line
|
||||
<a href="#line13">13-14</a>) is called before executing the rules of the current
|
||||
target. Uncompressing is followed by <i>touching</i> a hidden file
|
||||
<a href="#line13">13-14</a>) is called before executing the rules of the
|
||||
current target. Uncompressing is followed by <i>touching</i> a hidden file
|
||||
to mark the software has having been uncompressed. This trick is
|
||||
used everywhere in Buildroot <i>Makefile</i> to split steps
|
||||
(download, uncompress, configure, compile, install) while still
|
||||
having correct dependencies.</p>
|
||||
|
||||
<p>Lines <a href="#line20">20-31</a> defines a target and associated rules that
|
||||
configures the software. It depends on the previous target (the
|
||||
<p>Lines <a href="#line20">20-31</a> defines a target and associated rules
|
||||
that configures the software. It depends on the previous target (the
|
||||
hidden <code>.source</code> file) so that we are sure the software has
|
||||
been uncompressed. In order to configure it, it basically runs the
|
||||
well-known <code>./configure</code> script. As we may be doing
|
||||
@ -640,15 +645,15 @@ config BR2_PACKAGE_FOO
|
||||
filesystem. Finally it creates a <code>.configured</code> file to
|
||||
mark the software as configured.</p>
|
||||
|
||||
<p>Lines <a href="#line33">33-34</a> defines a target and a rule that compiles the
|
||||
software. This target will create the binary file in the
|
||||
<p>Lines <a href="#line33">33-34</a> defines a target and a rule that
|
||||
compiles the software. This target will create the binary file in the
|
||||
compilation directory, and depends on the software being already
|
||||
configured (hence the reference to the <code>.configured</code>
|
||||
file). It basically runs <code>make</code> inside the source
|
||||
directory.</p>
|
||||
|
||||
<p>Lines <a href="#line36">36-38</a> defines a target and associated rules that install
|
||||
the software inside the target filesystem. It depends on the
|
||||
<p>Lines <a href="#line36">36-38</a> defines a target and associated rules
|
||||
that install the software inside the target filesystem. It depends on the
|
||||
binary file in the source directory, to make sure the software has
|
||||
been compiled. It uses the <code>install</code> target of the
|
||||
software <code>Makefile</code> by passing a <code>prefix</code>
|
||||
@ -658,8 +663,8 @@ config BR2_PACKAGE_FOO
|
||||
<code>/usr/man</code> directory inside the target filesystem is
|
||||
removed to save space.</p>
|
||||
|
||||
<p>Line <a href="#line40">40</a> defines the main target of the software, the one
|
||||
that will be eventually be used by the top level
|
||||
<p>Line <a href="#line40">40</a> defines the main target of the software,
|
||||
the one that will be eventually be used by the top level
|
||||
<code>Makefile</code> to download, compile, and then install
|
||||
this package. This target should first of all depends on all
|
||||
needed dependecies of the software (in our example,
|
||||
@ -667,33 +672,34 @@ config BR2_PACKAGE_FOO
|
||||
final binary. This last dependency will call all previous
|
||||
dependencies in the correct order. </p>
|
||||
|
||||
<p>Line <a href="#line42">42</a> defines a simple target that only downloads the code
|
||||
source. This is not used during normal operation of Buildroot, but
|
||||
is needed if you intend to download all required sources at once
|
||||
for later offline build. Note that if you add a new package providing
|
||||
<p>Line <a href="#line42">42</a> defines a simple target that only
|
||||
downloads the code source. This is not used during normal operation of
|
||||
Buildroot, but is needed if you intend to download all required sources at
|
||||
once for later offline build. Note that if you add a new package providing
|
||||
a <code>foo-source</code> target is <i>mandatory</i> to support
|
||||
users that wish to do offline-builds. Furthermore it eases checking
|
||||
if all package-sources are downloadable.</p>
|
||||
|
||||
<p>Lines <a href="#line44">44-46</a> define a simple target to clean the software build
|
||||
by calling the <i>Makefiles</i> with the appropriate option.
|
||||
<p>Lines <a href="#line44">44-46</a> define a simple target to clean the
|
||||
software build by calling the <i>Makefiles</i> with the appropriate option.
|
||||
The <code>-clean</code> target should run <code>make clean</code>
|
||||
on $(BUILD_DIR)/package-version and MUST uninstall all files of the
|
||||
package from $(STAGING_DIR) and from $(TARGET_DIR).</p>
|
||||
|
||||
<p>Lines <a href="#line48">48-49</a> define a simple target to completely remove the
|
||||
directory in which the software was uncompressed, configured and
|
||||
compiled. The <code>-dirclean</code> target MUST completely rm $(BUILD_DIR)/package-version.</p>
|
||||
<p>Lines <a href="#line48">48-49</a> define a simple target to completely
|
||||
remove the directory in which the software was uncompressed, configured and
|
||||
compiled. The <code>-dirclean</code> target MUST completely rm $(BUILD_DIR)/
|
||||
package-version.</p>
|
||||
|
||||
<p>Lines <a href="#line51">51-58</a> adds the target <code>foo</code> to the list
|
||||
of targets to be compiled by Buildroot by first checking if
|
||||
<p>Lines <a href="#line51">51-58</a> adds the target <code>foo</code> to
|
||||
the list of targets to be compiled by Buildroot by first checking if
|
||||
the configuration option for this package has been enabled
|
||||
using the configuration tool, and if so then "subscribes"
|
||||
this package to be compiled by adding it to the TARGETS
|
||||
global variable. The name added to the TARGETS global
|
||||
variable is the name of this package's target, as defined on
|
||||
line <a href="#line40">40</a>, which is used by Buildroot to download, compile, and
|
||||
then install this package.</p>
|
||||
line <a href="#line40">40</a>, which is used by Buildroot to download,
|
||||
compile, and then install this package.</p>
|
||||
|
||||
|
||||
<h3>Conclusion</h3>
|
||||
|
Loading…
Reference in New Issue
Block a user