summaryrefslogtreecommitdiffstats
path: root/docs/manual/package-make-target.txt
blob: e8d5f530cb5033a47c4f9125b26b682de5d7ecb7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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+     | Re-run the configure command, then rebuild
only necessary binaries, and lastly install them again

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