Sometimes, post-build or post-image scripts need to reinvoke
Buildroot's make, for example to execute "make printvars".
However, so far post-build/image/fakeroot can't trivially run printvars
in a way that worked for both in-tree and out-of-tree builds. Indeed:
* "make printvars" would work for in-tree builds, but not out of tree
builds
* "make -C ${O} printvars" would work for out-of-tree builds, but not
in-tree builds
* "make -C ${BR2_CONFIG%/*} printvars" works in both cases, but it is
a bit cryptic, and two maintainers did not even immediately think of
it
In order to solve this, this commit exposes $(CONFIG_DIR) to
post-build/image/fakeroot scripts, through the EXTRA_ENV variable.
The documentation is updated accordingly.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
[yann.morin.1998@free.fr:
- reference BR2_CONFIG as an exemple
- slightly reword the commit log accordingly
- move the doc for CONFIG_DIR next to that of BR2_CONFIG
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
(cherry picked from commit efdcd651bf
)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
39 lines
1.8 KiB
Plaintext
39 lines
1.8 KiB
Plaintext
// -*- mode:doc; -*-
|
|
// vim: set syntax=asciidoc:
|
|
|
|
=== Customization _after_ the images have been created
|
|
|
|
While post-build scripts (xref:rootfs-custom[]) are run _before_
|
|
building the filesystem image, kernel and bootloader, *post-image
|
|
scripts* can be used to perform some specific actions _after_ all images
|
|
have been created.
|
|
|
|
Post-image scripts can for example be used to automatically extract your
|
|
root filesystem tarball in a location exported by your NFS server, or
|
|
to create a special firmware image that bundles your root filesystem and
|
|
kernel image, or any other custom action required for your project.
|
|
|
|
To enable this feature, specify a space-separated list of post-image
|
|
scripts in config option +BR2_ROOTFS_POST_IMAGE_SCRIPT+ (in the +System
|
|
configuration+ menu). If you specify a relative path, it will be
|
|
relative to the root of the Buildroot tree.
|
|
|
|
Just like post-build scripts, post-image scripts are run with the main
|
|
Buildroot tree as current working directory. The path to the +images+
|
|
output directory is passed as the first argument to each script. If the
|
|
config option +BR2_ROOTFS_POST_SCRIPT_ARGS+ is not empty, these
|
|
arguments will be passed to the script too. All the scripts will be
|
|
passed the exact same set of arguments, it is not possible to pass
|
|
different sets of arguments to each script.
|
|
|
|
Again just like for the post-build scripts, the scripts have access to
|
|
the environment variables +BR2_CONFIG+, +HOST_DIR+, +STAGING_DIR+,
|
|
+TARGET_DIR+, +BUILD_DIR+, +BINARIES_DIR+, +CONFIG_DIR+ and
|
|
+BASE_DIR+.
|
|
|
|
The post-image scripts will be executed as the user that executes
|
|
Buildroot, which should normally _not_ be the root user. Therefore, any
|
|
action requiring root permissions in one of these scripts will require
|
|
special handling (usage of fakeroot or sudo), which is left to the
|
|
script developer.
|