buildroot/docs/manual/package-make-target.adoc
ʎɐH ǝʌǝʇS ca6c896bdd support/scripts/graph-depends allow for forward and reverse depends on same graph
The current implementation of buildroot depe dependency graphing
either does forward- or reverse-dependency traversal.

This patch enables buildroot to graph forward and reverse dependencies
on the graph for the same package: (Diagram Credit: Yann E. MORIN)

    $ make pkg-d-graph-both-depends

    pkg A -.            .-> pkg E
            \          /
    pkg B ----> pkg D ----> pkg F
            /          \
    pkg C -'            '-> pkg G

In the above example a single graph shows pkg {A,B,C} are needed
by pkg D, and pkg D is a dependency of pkg {E,F,G}.

Makefile help and manual are also updated.

Signed-off-by: Steve Hay <me@stevenhay.com>
[Arnout:
 - remove DEPTH and RDEPTH, their functionality is already covered by
   BR2_GRAPH_DEPS_OPTS;
 - remove --rdepth, it was felt to not add sufficient added value;
 - add the new target to the manual;
 - fix flake8 errors.
]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-07-14 21:31:03 +02:00

101 lines
3.1 KiB
Plaintext

// -*- mode:doc; -*-
// vim: set syntax=asciidoc:
[[pkg-build-steps]]
==== Package-specific _make_ targets
Running +make <package>+ builds and installs that particular package
and its dependencies.
For packages relying on the Buildroot infrastructure, there are
numerous special make targets that can be called independently like
this:
----
make <package>-<target>
----
The package build targets are (in the order they are executed):
[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 commands, if any
| +build+ | Run the compilation commands
| +install-staging+ |
*target package:* Run the installation of the package in the
staging directory, if necessary
| +install-target+ |
*target package:* Run the installation of the package in the
target directory, if necessary
| +install+ |
*target package:* Run the 2 previous installation commands
*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 first-order dependencies required to build the
package
| +show-recursive-depends+ | Recursively displays the dependencies
required to build the package
| +show-rdepends+ | Displays the first-order reverse dependencies of
the package (i.e packages that directly depend on it)
| +show-recursive-rdepends+ | Recursively displays the reverse
dependencies of the package (i.e the packages that depend on it,
directly or indirectly)
| +graph-depends+ | Generate a dependency graph of the package, in the
context of the current Buildroot configuration. See
xref:graph-depends[this section] for more details about dependency
graphs.
| +graph-rdepends+ | Generate a graph of this package reverse
dependencies (i.e the packages that depend on it, directly or
indirectly)
| +graph-both-depends+ | Generate a graph of this package in both
directions (i.e the packages that depend on it and on which it
depends, directly or indirectly)
| +dirclean+ | Remove the whole package build directory
| +reinstall+ | Re-run the install commands
| +rebuild+ | Re-run the compilation commands - this only makes
sense when using the +OVERRIDE_SRCDIR+ feature or when you modified a file
directly in the build directory
| +reconfigure+ | Re-run the configure commands, then rebuild - this only
makes sense when using the +OVERRIDE_SRCDIR+ feature or when you modified a
file directly in the build directory
|===================================================