// -*- 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

|===================================================
