efdcd651bf
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>
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.
|