manual: add package-make-target.txt

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
This commit is contained in:
Samuel Martin 2012-11-11 03:14:54 +00:00 committed by Peter Korsgaard
parent a79a54a0e7
commit 0e886fc3f6
3 changed files with 94 additions and 0 deletions

View File

@ -10,3 +10,5 @@ include::external-toolchain.txt[]
include::ccache-support.txt[]
include::download-location.txt[]
include::package-make-target.txt[]

View File

@ -0,0 +1,88 @@
// -*- mode:doc; -*-
[[pkg-build-steps]]
Package make targets
~~~~~~~~~~~~~~~~~~~~
A +make <package>+ call achieves several _make targets_ with, as a
result, this particular package and its dependencies built, installed
in their destination directory (target, staging or host directory).
For packages based on the Buildroot infrastructures (+generic-package+,
+autotools-package+ or +cmake-package+), each of those
actions/steps/commands. For packages relying on other build system,
then there is no other choice than looking at the +.mk+ file (see also
the xref:rebuild-pkg[]).
For packages relying on the Buildroot infrastructures, there are
numerous special make targets that can be called independently like
this:
------------
make <package>-<target>
------------
In order, the package build commands are:
[width="90%",cols="^1,4",options="header"]
|===================================================
| command/target | Description
| +source+ | Fetch the source (download the tarball, clone
the source repository, etc)
| +depends+ | Build and install all dependencies required to
build the package
| +extract+ | Put the source in the package build directory
(extract the tarball, copy the source, etc)
| +patch+ | Apply the patches if any
| +configure+ | Run the configure command
| +build+ | Compile the source
| +install-staging+ |
*target package:* Run the installation of the package in the
staging directory
*host package:* Does nothing
| +install-target+ |
*target package:* Run the installation of the package in the
staging directory
*host package:* Does nothing
| +install+ |
*target package:* Run the 2 previous installation commands for the
target packages
*host package:* Run the installation of the package in the host
directory
|===================================================
Additionally, there are some other useful make targets:
[width="90%",cols="^1,4",options="header"]
|===================================================
| command/target | Description
| +show-depends+ | Displays the dependencies required to build the
package
| +clean+ | Clean the package build directory, also
uninstall the package from both the target and the staging directory
| +dirclean+ | Remove the whole package build directory
| +rebuild+ | Rebuild only necessary binaries and install them
again
| +reconfigure+ | Run again the configure command, then rebuild
only necessary binaries, and lastly install them again
|===================================================

View File

@ -83,3 +83,7 @@ Buildroot infrastructures.
use any Buildroot infrastructure).
- Most packages and toolchain packages, if not all, will progressively
be ported over to the generic, autotools or CMake infrastructure,
making it much easier to rebuild individual packages.
Further details about package special make target at the
xref:pkg-build-steps[].