manual: trivial fixes

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Arnout Vandecappelle (Essensium/Mind) 2012-11-27 11:59:16 +00:00 committed by Peter Korsgaard
parent 670d60dc91
commit 1d989fafba
23 changed files with 122 additions and 104 deletions

View File

@ -133,13 +133,13 @@ cases, typical packages will therefore only use a few of them.
* +LIBFOO_INSTALL_STAGING_OPT+ contains the make options * +LIBFOO_INSTALL_STAGING_OPT+ contains the make options
used to install the package to the staging directory. By default, the used to install the package to the staging directory. By default, the
value is +DESTDIR=$$(STAGING_DIR) install+, which is value is +DESTDIR=$(STAGING_DIR) install+, which is
correct for most autotools packages. It is still possible to override correct for most autotools packages. It is still possible to override
it. it.
* +LIBFOO_INSTALL_TARGET_OPT+ contains the make options * +LIBFOO_INSTALL_TARGET_OPT+ contains the make options
used to install the package to the target directory. By default, the used to install the package to the target directory. By default, the
value is +DESTDIR=$$(TARGET_DIR) install+. The default value is +DESTDIR=$(TARGET_DIR) install+. The default
value is correct for most autotools packages, but it is still possible value is correct for most autotools packages, but it is still possible
to override it if needed. to override it if needed.

View File

@ -115,12 +115,12 @@ typical packages will therefore only use a few of them.
* +LIBFOO_INSTALL_STAGING_OPT+ contains the make options used to * +LIBFOO_INSTALL_STAGING_OPT+ contains the make options used to
install the package to the staging directory. By default, the value install the package to the staging directory. By default, the value
is +DESTDIR=$$(STAGING_DIR) install+, which is correct for most is +DESTDIR=$(STAGING_DIR) install+, which is correct for most
CMake packages. It is still possible to override it. CMake packages. It is still possible to override it.
* +LIBFOO_INSTALL_TARGET_OPT+ contains the make options used to * +LIBFOO_INSTALL_TARGET_OPT+ contains the make options used to
install the package to the target directory. By default, the value install the package to the target directory. By default, the value
is +DESTDIR=$$(TARGET_DIR) install+. The default value is correct is +DESTDIR=$(TARGET_DIR) install+. The default value is correct
for most CMake packages, but it is still possible to override it if for most CMake packages, but it is still possible to override it if
needed. needed.

View File

@ -8,5 +8,5 @@ matter of writing a Makefile using an existing example and modifying it
according to the compilation process required by the package. according to the compilation process required by the package.
If you package software that might be useful for other people, don't If you package software that might be useful for other people, don't
forget to send a patch to Buildroot developers! forget to send a patch to the Buildroot mailing list!

View File

@ -7,7 +7,7 @@ First of all, create a directory under the +package+ directory for
your software, for example +libfoo+. your software, for example +libfoo+.
Some packages have been grouped by topic in a sub-directory: Some packages have been grouped by topic in a sub-directory:
+multimedia+, +java+, +x11r7+, and +games+. If your package fits in +multimedia+, +x11r7+, +efl+ and +matchbox+. If your package fits in
one of these categories, then create your package directory in these. one of these categories, then create your package directory in these.

View File

@ -175,8 +175,8 @@ information is (assuming the package name is +libfoo+) :
Examples: + Examples: +
+LIBFOO_SITE=http://www.libfoosoftware.org/libfoo+ + +LIBFOO_SITE=http://www.libfoosoftware.org/libfoo+ +
+LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor/+ + +LIBFOO_SITE=http://svn.xiph.org/trunk/Tremor/+ +
+LIBFOO_SITE=git://github.com/kergoth/tslib.git+ +LIBFOO_SITE=git://github.com/kergoth/tslib.git+ +
+LIBFOO_SITE=/opt/software/libfoo.tar.gz+ +LIBFOO_SITE=/opt/software/libfoo.tar.gz+ +
+LIBFOO_SITE=$(TOPDIR)/../src/libfoo/+ +LIBFOO_SITE=$(TOPDIR)/../src/libfoo/+
* +LIBFOO_SITE_METHOD+ determines the method used to fetch or copy the * +LIBFOO_SITE_METHOD+ determines the method used to fetch or copy the
@ -221,7 +221,7 @@ information is (assuming the package name is +libfoo+) :
name) that are required for the current target package to name) that are required for the current target package to
compile. These dependencies are guaranteed to be compiled and compile. These dependencies are guaranteed to be compiled and
installed before the configuration of the current package starts. In installed before the configuration of the current package starts. In
a similar way, +HOST_LIBFOO_DEPENDENCIES+ lists the dependency for a similar way, +HOST_LIBFOO_DEPENDENCIES+ lists the dependencies for
the current host package. the current host package.
* +LIBFOO_INSTALL_STAGING+ can be set to +YES+ or +NO+ (default). If * +LIBFOO_INSTALL_STAGING+ can be set to +YES+ or +NO+ (default). If
@ -275,20 +275,20 @@ LIBFOO_VERSION = 2.32
Now, the variables that define what should be performed at the Now, the variables that define what should be performed at the
different steps of the build process. different steps of the build process.
* +LIBFOO_CONFIGURE_CMDS+, used to list the actions to be performed to * +LIBFOO_CONFIGURE_CMDS+ lists the actions to be performed to
configure the package before its compilation configure the package before its compilation.
* +LIBFOO_BUILD_CMDS+, used to list the actions to be performed to * +LIBFOO_BUILD_CMDS+ lists the actions to be performed to
compile the package compile the package.
* +HOST_LIBFOO_INSTALL_CMDS+, used to list the actions to be performed * +HOST_LIBFOO_INSTALL_CMDS+ lists the actions to be performed
to install the package, when the package is a host package. The to install the package, when the package is a host package. The
package must install its files to the directory given by package must install its files to the directory given by
+$(HOST_DIR)+. All files, including development files such as +$(HOST_DIR)+. All files, including development files such as
headers should be installed, since other packages might be compiled headers should be installed, since other packages might be compiled
on top of this package. on top of this package.
* +LIBFOO_INSTALL_TARGET_CMDS+, used to list the actions to be * +LIBFOO_INSTALL_TARGET_CMDS+ lists the actions to be
performed to install the package to the target directory, when the performed to install the package to the target directory, when the
package is a target package. The package must install its files to package is a target package. The package must install its files to
the directory given by +$(TARGET_DIR)+. Only the files required for the directory given by +$(TARGET_DIR)+. Only the files required for
@ -297,24 +297,24 @@ different steps of the build process.
to the target, if the +development files in target filesystem+ to the target, if the +development files in target filesystem+
option is selected. option is selected.
* +LIBFOO_INSTALL_STAGING_CMDS+, used to list the actions to be * +LIBFOO_INSTALL_STAGING_CMDS+ lists the actions to be
performed to install the package to the staging directory, when the performed to install the package to the staging directory, when the
package is a target package. The package must install its files to package is a target package. The package must install its files to
the directory given by +$(STAGING_DIR)+. All development files the directory given by +$(STAGING_DIR)+. All development files
should be installed, since they might be needed to compile other should be installed, since they might be needed to compile other
packages. packages.
* +LIBFOO_CLEAN_CMDS+, used to list the actions to perform to clean up * +LIBFOO_CLEAN_CMDS+, lists the actions to perform to clean up
the build directory of the package. the build directory of the package.
* +LIBFOO_UNINSTALL_TARGET_CMDS+, used to list the actions to * +LIBFOO_UNINSTALL_TARGET_CMDS+ lists the actions to
uninstall the package from the target directory +$(TARGET_DIR)+ uninstall the package from the target directory +$(TARGET_DIR)+
* +LIBFOO_UNINSTALL_STAGING_CMDS+, used to list the actions to * +LIBFOO_UNINSTALL_STAGING_CMDS+ lists the actions to
uninstall the package from the staging directory +$(STAGING_DIR)+. uninstall the package from the staging directory +$(STAGING_DIR)+.
* +LIBFOO_INSTALL_INIT_SYSV+ and +LIBFOO_INSTALL_INIT_SYSTEMD+, used * +LIBFOO_INSTALL_INIT_SYSV+ and +LIBFOO_INSTALL_INIT_SYSTEMD+ list the
to install init scripts either for the systemV-like init systems actions to install init scripts either for the systemV-like init systems
(busybox, sysvinit, etc.) or for the systemd units. These commands (busybox, sysvinit, etc.) or for the systemd units. These commands
will be run only when the relevant init system is installed (i.e. if will be run only when the relevant init system is installed (i.e. if
systemd is selected as the init system in the configuration, only systemd is selected as the init system in the configuration, only
@ -352,8 +352,8 @@ using the autotools infrastructure described below. However, since
they are provided by the generic infrastructure, they are documented they are provided by the generic infrastructure, they are documented
here. The exception is +LIBFOO_POST_PATCH_HOOKS+. Patching the here. The exception is +LIBFOO_POST_PATCH_HOOKS+. Patching the
package and producing legal info are not user definable, so package and producing legal info are not user definable, so
+LIBFOO_POST_PATCH_HOOKS+ and +LIBFOO_POST_LEGAL_INFO_HOOKS+ will be +LIBFOO_POST_PATCH_HOOKS+ and +LIBFOO_POST_LEGAL_INFO_HOOKS+ are
userful for generic packages. useful for generic packages.
The following hook points are available: The following hook points are available:

View File

@ -32,8 +32,8 @@ using the following rules:
[[github-download-url]] [[github-download-url]]
How to add package from github How to add a package from github
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
If the package has no release version, or its version cannot be If the package has no release version, or its version cannot be
identified using tag, then the sha1 of the particular commit should be identified using tag, then the sha1 of the particular commit should be

View File

@ -21,7 +21,7 @@ selections are highly application-specific.
Once you have a known working configuration, run +make Once you have a known working configuration, run +make
savedefconfig+. This will generate a minimal +defconfig+ file at the savedefconfig+. This will generate a minimal +defconfig+ file at the
root of the Buildroot source tree. Move this file into the +configs/+ root of the Buildroot source tree. Move this file into the +configs/+
directory, and rename it +MYBOARD_defconfig+. directory, and rename it +BOARDNAME_defconfig+.
It is recommended to use upstream versions of the Linux kernel and It is recommended to use upstream versions of the Linux kernel and
bootloaders where possible, and also to use default kernel and bootloader bootloaders where possible, and also to use default kernel and bootloader

View File

@ -47,7 +47,7 @@ safely run multiple builds in parallel using the same source tree as
long as they use unique output directories. long as they use unique output directories.
For ease of use, Buildroot generates a Makefile wrapper in the output For ease of use, Buildroot generates a Makefile wrapper in the output
directory - So after the first run, you no longer need to pass +O=..+ directory - so after the first run, you no longer need to pass +O=..+
and +-C ..+, simply run (in the output directory): and +-C ..+, simply run (in the output directory):
-------------------- --------------------
@ -69,21 +69,21 @@ to +make+ or set in the environment:
internal toolchain is being built. internal toolchain is being built.
+ +
Note that the uClibc configuration file can also be set from the Note that the uClibc configuration file can also be set from the
configuration interface, so through the Buildroot .config file; this configuration interface, so through the Buildroot +.config+ file; this
is the recommended way of setting it. is the recommended way of setting it.
+ +
* +BUSYBOX_CONFIG_FILE=<path/to/.config>+, path to * +BUSYBOX_CONFIG_FILE=<path/to/.config>+, path to
the Busybox configuration file. the Busybox configuration file.
+ +
Note that the Busybox configuration file can also be set from the Note that the Busybox configuration file can also be set from the
configuration interface, so through the Buildroot .config file; this configuration interface, so through the Buildroot +.config+ file; this
is the recommended way of setting it. is the recommended way of setting it.
+ +
* +BUILDROOT_DL_DIR+ to override the directory in which * +BUILDROOT_DL_DIR+ to override the directory in which
Buildroot stores/retrieves downloaded files Buildroot stores/retrieves downloaded files
+ +
Note that the Buildroot download directory can also be set from the Note that the Buildroot download directory can also be set from the
configuration interface, so through the Buildroot .config file; this configuration interface, so through the Buildroot +.config+ file; this
is the recommended way of setting it. is the recommended way of setting it.
An example that uses config files located in the toplevel directory and An example that uses config files located in the toplevel directory and

View File

@ -5,7 +5,7 @@ Customizing the generated target filesystem
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Besides changing one or another configuration through +make *config+, Besides changing one or another configuration through +make *config+,
there are a few ways to customize the resulting target filesystem: there are a few ways to customize the resulting target filesystem.
* Customize the target filesystem directly and rebuild the image. The * Customize the target filesystem directly and rebuild the image. The
target filesystem is available under +output/target/+. You can target filesystem is available under +output/target/+. You can
@ -13,7 +13,7 @@ there are a few ways to customize the resulting target filesystem:
rebuild the target filesystem image. This method allows you to do rebuild the target filesystem image. This method allows you to do
anything to the target filesystem, but if you decide to completely anything to the target filesystem, but if you decide to completely
rebuild your toolchain and tools, these changes will be lost. rebuild your toolchain and tools, these changes will be lost.
_Changes are not resistent to the +make clean+ command_. _Changes do not survive the +make clean+ command_.
* Create your own 'target skeleton'. You can start with the default * Create your own 'target skeleton'. You can start with the default
skeleton available under +system/skeleton+ and then customize it to skeleton available under +system/skeleton+ and then customize it to
@ -30,13 +30,13 @@ there are a few ways to customize the resulting target filesystem:
assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ will allow you to assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ will allow you to
specify the location of your post-build script. This option can be specify the location of your post-build script. This option can be
found in the +System configuration+ menu. The destination root found in the +System configuration+ menu. The destination root
filesystem folder *is given as the first argument to this script, filesystem folder is given as the first argument to this script,
and this script can then be used to copy programs, static data or and this script can then be used to copy programs, static data or
any other needed file to your target filesystem. You should, any other needed file to your target filesystem. You should,
however, use this feature with care. Whenever you find that a however, use this feature with care. Whenever you find that a
certain package generates wrong or unneeded files, you should fix certain package generates wrong or unneeded files, you should fix
that package rather than work around it with a post-build cleanup that package rather than work around it with a post-build cleanup
script. _Among these first 3 methods, this one should be prefere_d. script. _Among these first 3 methods, this one should be preferred_.
* A special package, 'customize', stored in +package/customize+ can be * A special package, 'customize', stored in +package/customize+ can be
used. You can put all the files that you want to see in the final used. You can put all the files that you want to see in the final

View File

@ -24,13 +24,13 @@ The internal Buildroot toolchain backend *only* allows to generate
However, it allows to tune major settings, such as: However, it allows to tune major settings, such as:
* Linux header version * Linux headers version;
* http://www.uclibc.org/[uClibc] configuration (see xref:uclibc-custom[uClibc]) * http://www.uclibc.org/[uClibc] configuration (see xref:uclibc-custom[uClibc]);
* Binutils, GCC, Gdb and toolchain options * Binutils, GCC, Gdb and toolchain options.
This is directly available after selecting the +Buildroot toolchain+ type in These settings are available after selecting the +Buildroot toolchain+ type in
the menu +Toolchain+. the menu +Toolchain+.
Using the Crosstool-NG backend Using the Crosstool-NG backend
@ -44,4 +44,4 @@ limited set of settings under the Buildroot +Toolchain+ menu (ie. when invoking
* Gdb and some toolchain options * Gdb and some toolchain options
Then, the toolchain can be finely tuned invoking +make ctng-menuconfig+. Then, the toolchain can be fine-tuned by invoking +make ctng-menuconfig+.

View File

@ -18,17 +18,16 @@ follow these steps:
similar to the one used in the Linux kernel or Buildroot, similar to the one used in the Linux kernel or Buildroot,
appears. Make your configuration changes as appropriate. appears. Make your configuration changes as appropriate.
* Copy the +$(O)/toolchain/uclibc-VERSION/.config+ file to a different * Copy the +$(O)/toolchain/uClibc-VERSION/.config+ file to a different
place (like +toolchain/uClibc/uClibc-myconfig.config+, or place (e.g. +board/MANUFACTURER/BOARDNAME/uClibc.config+) and adjust
+board/mymanufacturer/myboard/uClibc.config+) and adjust the uClibc the uClibc configuration file option +BR2_UCLIBC_CONFIG+ to refer to this
configuration (configuration option +BR2_UCLIBC_CONFIG+) to use this
configuration instead of the default one. configuration instead of the default one.
* Run the compilation of Buildroot again. * Run the compilation of Buildroot again.
Otherwise, you can simply change +toolchain/uClibc/uClibc.config+, Otherwise, you can simply change +toolchain/uClibc/uClibc-VERSION.config+,
without running the configuration assistant. without running the configuration assistant.
If you want to use an existing config file for uclibc, then see If you want to use an existing config file for uClibc, then see
xref:env-vars[]. xref:env-vars[].

View File

@ -82,7 +82,7 @@ interested in Buildroot for two reasons:
You might wonder why such a tool is needed when you can compile +gcc+, You might wonder why such a tool is needed when you can compile +gcc+,
+binutils+, +uClibc+ and all the other tools by hand. Of course doing +binutils+, +uClibc+ and all the other tools by hand. Of course doing
so is possible but, dealing with all of the configure options and so is possible, but dealing with all of the configure options and
problems of every +gcc+ or +binutils+ version is very time-consuming problems of every +gcc+ or +binutils+ version is very time-consuming
and uninteresting. Buildroot automates this process through the use and uninteresting. Buildroot automates this process through the use
of Makefiles and has a collection of patches for each +gcc+ and of Makefiles and has a collection of patches for each +gcc+ and

View File

@ -26,8 +26,8 @@ Then, you have three solutions to use an external toolchain:
* Use a predefined external toolchain profile, and let Buildroot * Use a predefined external toolchain profile, and let Buildroot
download, extract and install the toolchain. Buildroot already knows download, extract and install the toolchain. Buildroot already knows
about a few CodeSourcery toolchains for ARM, PowerPC, MIPS and about a few CodeSourcery, Linaro, Blackfin and Xilinx toolchains.
SuperH. Just select the toolchain profile in +Toolchain+ through the Just select the toolchain profile in +Toolchain+ from the
available ones. This is definitely the easiest solution. available ones. This is definitely the easiest solution.
* Use a predefined external toolchain profile, but instead of having * Use a predefined external toolchain profile, but instead of having
@ -45,7 +45,8 @@ Then, you have three solutions to use an external toolchain:
toolchain C library+ options. Then, you have to tell Buildroot what toolchain C library+ options. Then, you have to tell Buildroot what
your external toolchain supports. If your external toolchain uses your external toolchain supports. If your external toolchain uses
the 'glibc' library, you only have to tell whether your toolchain the 'glibc' library, you only have to tell whether your toolchain
supports C++ or not. If your external toolchain uses the 'uclibc' supports C\+\+ or not and whether it has built-in RPC support. If
your external toolchain uses the 'uClibc'
library, then you have to tell Buildroot if it supports largefile, library, then you have to tell Buildroot if it supports largefile,
IPv6, RPC, wide-char, locale, program invocation, threads and IPv6, RPC, wide-char, locale, program invocation, threads and
C++. At the beginning of the execution, Buildroot will tell you if C++. At the beginning of the execution, Buildroot will tell you if
@ -53,7 +54,7 @@ Then, you have three solutions to use an external toolchain:
Our external toolchain support has been tested with toolchains from Our external toolchain support has been tested with toolchains from
CodeSourcery, toolchains generated by CodeSourcery and Linaro, toolchains generated by
http://crosstool-ng.org[crosstool-NG], and toolchains generated by http://crosstool-ng.org[crosstool-NG], and toolchains generated by
Buildroot itself. In general, all toolchains that support the Buildroot itself. In general, all toolchains that support the
'sysroot' feature should work. If not, do not hesitate to contact the 'sysroot' feature should work. If not, do not hesitate to contact the

View File

@ -6,7 +6,7 @@ How Buildroot works
As mentioned above, Buildroot is basically a set of Makefiles that As mentioned above, Buildroot is basically a set of Makefiles that
download, configure, and compile software with the correct options. It download, configure, and compile software with the correct options. It
also includes patches for various software packages - mainly the ones also includes patches for various software packages - mainly the ones
involved in the cross-compilation tool chain (+gcc+, +binutils+ and involved in the cross-compilation toolchain (+gcc+, +binutils+ and
+uClibc+). +uClibc+).
There is basically one Makefile per software package, and they are There is basically one Makefile per software package, and they are

View File

@ -17,5 +17,5 @@ processors, MIPS processors, ARM processors, etc.
Buildroot supports numerous processors and their variants; it also Buildroot supports numerous processors and their variants; it also
comes with default configurations for several boards available comes with default configurations for several boards available
off-the-shelf. Besides this, a number of third-party projects are based on, off-the-shelf. Besides this, a number of third-party projects are based on,
or develop their BSP footnote:[BSP: Board Software Package] or or develop their BSP footnote:[BSP: Board Support Package] or
SDK footnote:[SDK: Standard Development Kit] on top of Buildroot. SDK footnote:[SDK: Software Development Kit] on top of Buildroot.

View File

@ -5,13 +5,13 @@
Legal notice and licensing Legal notice and licensing
========================== ==========================
Complying with opensource licenses Complying with open source licenses
---------------------------------- -----------------------------------
All of the end products of Buildroot (toolchain, root filesystem, kernel, All of the end products of Buildroot (toolchain, root filesystem, kernel,
bootloaders) contain opensource software, released under various licenses. bootloaders) contain open source software, released under various licenses.
Using opensource software gives you the freedom to build rich embedded Using open source software gives you the freedom to build rich embedded
systems, choosing from a wide range of packages, but also imposes some systems, choosing from a wide range of packages, but also imposes some
obligations that you must know and honour. obligations that you must know and honour.
Some licenses require you to publish the license text in the documentation of Some licenses require you to publish the license text in the documentation of
@ -46,7 +46,7 @@ There you will find:
* A manifest file listing the configured packages, their version, license and * A manifest file listing the configured packages, their version, license and
related information. related information.
Some of this information might not be defined in Buildroot; such items are Some of this information might not be defined in Buildroot; such items are
clearly marked as "unknown" or similar. marked as "unknown".
* A +licenses/+ subdirectory, which contains the license text of packages. * A +licenses/+ subdirectory, which contains the license text of packages.
If the license file(s) are not defined in Buildroot, the file is not produced If the license file(s) are not defined in Buildroot, the file is not produced
and a warning in the +README+ indicates this. and a warning in the +README+ indicates this.
@ -56,16 +56,20 @@ produce all the material that is somehow relevant for legal compliance with the
package licenses. Buildroot does not try to produce the exact material that package licenses. Buildroot does not try to produce the exact material that
you must somehow make public. Certainly, more material is produced than is you must somehow make public. Certainly, more material is produced than is
needed for a strict legal compliance. For example, it produces the source code needed for a strict legal compliance. For example, it produces the source code
for packages released under BSD-like licenses, that you might not want to for packages released under BSD-like licenses, that you are not required to
redistribute in source form. redistribute in source form.
Moreover, due to technical limitations, Buildroot does not produce some Moreover, due to technical limitations, Buildroot does not produce some
material that you will or may need, such as the toolchain source code and the material that you will or may need, such as the toolchain source code and the
Buildroot source code itself. Buildroot source code itself (including patches to packages for which source
distribution is required).
When you run +make legal-info+, Buildroot produces warnings in the +README+ When you run +make legal-info+, Buildroot produces warnings in the +README+
file to inform you of relevant material that could not be saved. file to inform you of relevant material that could not be saved.
[[legal-info-list-licenses]] [[legal-info-list-licenses]]
License abbreviations
---------------------
Here is a list of the licenses that are most widely used by packages in Here is a list of the licenses that are most widely used by packages in
Buildroot, with the name used in the manifest file: Buildroot, with the name used in the manifest file:
@ -86,6 +90,13 @@ Buildroot, with the name used in the manifest file:
* +GPL+: * +GPL+:
http://www.gnu.org/licenses/gpl.html[ http://www.gnu.org/licenses/gpl.html[
GNU General Public License] (any version); GNU General Public License] (any version);
* +LGPLv2+:
http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html[
GNU Library General Public License, version 2];
* +LGPLv2++:
http://www.gnu.org/licenses/old-licenses/lgpl-2.0.html[
GNU Library General Public License, version 2.1]
or (at your option) any later version;
* +LGPLv2.1+: * +LGPLv2.1+:
http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html[ http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html[
GNU Lesser General Public License, version 2.1]; GNU Lesser General Public License, version 2.1];
@ -112,7 +123,7 @@ Buildroot, with the name used in the manifest file:
Complying with the Buildroot license Complying with the Buildroot license
------------------------------------ ------------------------------------
Buildroot itself is an opensource software, released under the Buildroot itself is an open source software, released under the
http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General Public http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General Public
License, version 2] or (at your option) any later version. License, version 2] or (at your option) any later version.
However, being a build system, it is not normally part of the end product: However, being a build system, it is not normally part of the end product:

View File

@ -4,55 +4,61 @@
'make' tips 'make' tips
----------- -----------
Because Buildroot is a set of Makefiles and patches, there are a few This is a collection of tips that help you make the most of Buildroot.
things that are useful to know, such as:
+make *config+ commands offer a search tool. Read the help message in .Configuration searches:
The +make *config+ commands offer a search tool. Read the help message in
the different frontend menus to know how to use it: the different frontend menus to know how to use it:
* in _menuconfig_, search tool is called by pressing +/+; * in _menuconfig_, the search tool is called by pressing +/+;
* in _xconfig_, search tool is called by pressing +ctrl+ + +f+. * in _xconfig_, the search tool is called by pressing +Ctrl+ + +f+.
The result of the search shows the help message of the matching items. The result of the search shows the help message of the matching items.
Display all commands executed by make: .Display all commands executed by make:
-------------------- --------------------
$ make V=0|1 <target> $ make V=1 <target>
-------------------- --------------------
Display all available targets: .Display all available targets:
-------------------- --------------------
$ make help $ make help
-------------------- --------------------
Note that some settings in the +.config+ file may hide some targets: .Not all targets are always available,
* +busybox-menuconfig+ depends on whether +busybox+ is enabled or not some settings in the +.config+ file may hide some targets:
in the +Package selection+ menu
* +linux-menuconfig+ and +linux-savedefconfig+ depend on whether
+linux+ is enabled or not
* +uclibc-menuconfig+ depends on whether the toolchain uses the
Buildroot internal toolchain backend or not
* +ctng-menuconfig+ depends on whether the toolchain uses the
crosstool-NG backend or not
* +barebox-menuconfig+ and +barebox-savedefconfig+ depend on whether
+barebox+ bootloader is enabled or not
Delete all build products (including build directories, host, staging * +linux-menuconfig+ and +linux-savedefconfig+ only work when
+linux+ is enabled;
* +uclibc-menuconfig+ is only available when the
Buildroot internal toolchain backend is used;
* +ctng-menuconfig+ is only available when the
crosstool-NG backend is used;
* +barebox-menuconfig+ and +barebox-savedefconfig+ only work when the
+barebox+ bootloader is enabled.
.Cleaning:
Explicit cleaning is required when any of the architecture or toolchain
configuration options are changed.
To delete all build products (including build directories, host, staging
and target trees, the images and the toolchain): and target trees, the images and the toolchain):
-------------------- --------------------
$ make clean $ make clean
-------------------- --------------------
Delete all build products as well as the configuration: To delete all build products as well as the configuration:
-------------------- --------------------
$ make distclean $ make distclean
-------------------- --------------------
Note that if +ccache+ is enabled, running +make clean|distclean+ does Note that if +ccache+ is enabled, running +make clean+ or +distclean+ does
not empty the compiler cache used by Buildroot. To delete it, refer not empty the compiler cache used by Buildroot. To delete it, refer
to xref:ccache[]. to xref:ccache[].

View File

@ -20,7 +20,7 @@ It takes the form of a line for each file, with the following layout:
There are a few non-trivial blocks here: There are a few non-trivial blocks here:
- +name+ is the path to the file you want to create/modify - +name+ is the path to the file you want to create/modify
- +type+ is the type of the file, being one of : - +type+ is the type of the file, being one of:
* f: a regular file * f: a regular file
* d: a directory * d: a directory
* c: a character device file * c: a character device file

View File

@ -6,11 +6,12 @@ Patch Policy
------------ ------------
While integrating a new package or updating an existing one, it may be While integrating a new package or updating an existing one, it may be
necessary to patch the source of the software to get it built within necessary to patch the source of the software to get it cross-built within
Buildroot. Buildroot.
Buildroot offers an infrastructure to automatically handle this during Buildroot offers an infrastructure to automatically handle this during
the builds. It supports several ways of applying patch sets: the builds. It supports two ways of applying patch sets: downloaded patches
and patches supplied within buildroot.
Providing patches Providing patches
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~
@ -29,10 +30,10 @@ Within Buildroot
^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^
Most patches are provided within Buildroot, in the package Most patches are provided within Buildroot, in the package
directory; these typically aim to fix cross-compilation, +libc+ support, directory; these typically aim to fix cross-compilation, libc support,
or other such issues. or other such issues.
These patch files should have the extension +*.patch+. These patch files should be named +<packagename>-*.patch+.
A +series+ file, as used by +quilt+, may also be added in the A +series+ file, as used by +quilt+, may also be added in the
package directory. In that case, the +series+ file defines the patch package directory. In that case, the +series+ file defines the patch

View File

@ -23,7 +23,7 @@ Mandatory packages
** +which+ ** +which+
** +sed+ ** +sed+
** +make+ (version 3.82 or any later) ** +make+ (version 3.81 or any later)
** +binutils+ ** +binutils+
** +build-essential+ (only for Debian based systems) ** +build-essential+ (only for Debian based systems)
** +gcc+ (version 2.95 or any later) ** +gcc+ (version 2.95 or any later)

View File

@ -14,7 +14,7 @@ In some cases, a full rebuild is mandatory:
* each time the toolchain properties are changed, this includes: * each time the toolchain properties are changed, this includes:
** after changing some toolchain option under the _Toolchain_ menu (if ** after changing any toolchain option under the _Toolchain_ menu (if
the internal Buildroot backend is used); the internal Buildroot backend is used);
** after running +make ctng-menuconfig+ (if the crosstool-NG backend ** after running +make ctng-menuconfig+ (if the crosstool-NG backend
is used); is used);
@ -25,7 +25,7 @@ In some cases, a full rebuild is mandatory:
In some cases, a full rebuild is recommended: In some cases, a full rebuild is recommended:
* after adding some libraries to the package selection (otherwise, * after adding some libraries to the package selection (otherwise,
some packages that can be optionally linked against those libraries packages that can be optionally linked against those libraries
won't be rebuilt, so they won't support those new available won't be rebuilt, so they won't support those new available
features). features).

View File

@ -31,9 +31,9 @@ to run the Qt or GTK-based configurators.
All of these "make" commands will need to build a configuration All of these "make" commands will need to build a configuration
utility (including the interface), so you may need to install utility (including the interface), so you may need to install
"development" packages for relevant libraries used by the "development" packages for relevant libraries used by the
configuration utilities. Check the xref:requirement[] to know what configuration utilities. Check xref:requirement[] to know what
Buildroot needs, and specifically the xref:requirement-optional[system requirements] Buildroot needs, and specifically the xref:requirement-optional[optional requirements]
to get the dependencies of favorite interface. to get the dependencies of your favorite interface.
For each menu entry in the configuration tool, you can find associated For each menu entry in the configuration tool, you can find associated
help that describes the purpose of the entry. help that describes the purpose of the entry.
@ -52,15 +52,15 @@ You *should never* use +make -jN+ with Buildroot: it does not support
'top-level parallel make'. Instead, use the +BR2_JLEVEL+ option to 'top-level parallel make'. Instead, use the +BR2_JLEVEL+ option to
tell Buildroot to run each package compilation with +make -jN+. tell Buildroot to run each package compilation with +make -jN+.
This command will generally perform the following steps: The `make` command will generally perform the following steps:
* Download source files (as required) * download source files (as required);
* Configure, build and install the cross-compiling toolchain using the * configure, build and install the cross-compiling toolchain using the
appropriate toolchain backend, or simply import an external toolchain appropriate toolchain backend, or simply import an external toolchain;
* Build/install selected target packages * build/install selected target packages;
* Build a kernel image, if selected * build a kernel image, if selected;
* Build a bootloader image, if selected * build a bootloader image, if selected;
* Create a root filesystem in selected formats * create a root filesystem in selected formats.
Buildroot output is stored in a single directory, +output/+. Buildroot output is stored in a single directory, +output/+.
This directory contains several subdirectories: This directory contains several subdirectories:

View File

@ -121,5 +121,5 @@ The documentation
The documentation uses the The documentation uses the
http://www.methods.co.nz/asciidoc/[asciidoc] format. http://www.methods.co.nz/asciidoc/[asciidoc] format.
Further details about the http://www.methods.co.nz/asciidoc/[asciidoc] For further details about the http://www.methods.co.nz/asciidoc/[asciidoc]
syntax: refer to http://www.methods.co.nz/asciidoc/userguide.html[]. syntax, refer to http://www.methods.co.nz/asciidoc/userguide.html[].