0611045c42
We had several remarks on the mailing list of users that were surprised that patches were not applied for packages whose SITE_METHOD is local. So document this. Note that for OVERRIDE_SRCDIR itself it is already documented: When Buildroot finds that for a given package, an <pkg>_OVERRIDE_SRCDIR has been defined, it will no longer attempt to download, extract and patch the package. Instead, it will directly use the source code available in in the specified directory. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
88 lines
2.9 KiB
Plaintext
88 lines
2.9 KiB
Plaintext
// -*- mode:doc; -*-
|
|
// vim: set syntax=asciidoc:
|
|
|
|
[[hooks]]
|
|
=== Hooks available in the various build steps
|
|
|
|
The generic infrastructure (and as a result also the derived autotools
|
|
and cmake infrastructures) allow packages to specify hooks.
|
|
These define further actions to perform after existing steps.
|
|
Most hooks aren't really useful for generic packages, since the +.mk+
|
|
file already has full control over the actions performed in each step
|
|
of the package construction.
|
|
|
|
The following hook points are available:
|
|
|
|
* +LIBFOO_PRE_DOWNLOAD_HOOKS+
|
|
* +LIBFOO_POST_DOWNLOAD_HOOKS+
|
|
|
|
* +LIBFOO_PRE_EXTRACT_HOOKS+
|
|
* +LIBFOO_POST_EXTRACT_HOOKS+
|
|
|
|
* +LIBFOO_PRE_RSYNC_HOOKS+
|
|
* +LIBFOO_POST_RSYNC_HOOKS+
|
|
|
|
* +LIBFOO_PRE_PATCH_HOOKS+
|
|
* +LIBFOO_POST_PATCH_HOOKS+
|
|
|
|
* +LIBFOO_PRE_CONFIGURE_HOOKS+
|
|
* +LIBFOO_POST_CONFIGURE_HOOKS+
|
|
|
|
* +LIBFOO_PRE_BUILD_HOOKS+
|
|
* +LIBFOO_POST_BUILD_HOOKS+
|
|
|
|
* +LIBFOO_PRE_INSTALL_HOOKS+ (for host packages only)
|
|
* +LIBFOO_POST_INSTALL_HOOKS+ (for host packages only)
|
|
|
|
* +LIBFOO_PRE_INSTALL_STAGING_HOOKS+ (for target packages only)
|
|
* +LIBFOO_POST_INSTALL_STAGING_HOOKS+ (for target packages only)
|
|
|
|
* +LIBFOO_PRE_INSTALL_TARGET_HOOKS+ (for target packages only)
|
|
* +LIBFOO_POST_INSTALL_TARGET_HOOKS+ (for target packages only)
|
|
|
|
* +LIBFOO_PRE_INSTALL_IMAGES_HOOKS+
|
|
* +LIBFOO_POST_INSTALL_IMAGES_HOOKS+
|
|
|
|
* +LIBFOO_PRE_LEGAL_INFO_HOOKS+
|
|
* +LIBFOO_POST_LEGAL_INFO_HOOKS+
|
|
|
|
These variables are 'lists' of variable names containing actions to be
|
|
performed at this hook point. This allows several hooks to be
|
|
registered at a given hook point. Here is an example:
|
|
|
|
----------------------
|
|
define LIBFOO_POST_PATCH_FIXUP
|
|
action1
|
|
action2
|
|
endef
|
|
|
|
LIBFOO_POST_PATCH_HOOKS += LIBFOO_POST_PATCH_FIXUP
|
|
----------------------
|
|
|
|
[[hooks-rsync]]
|
|
==== Using the +POST_RSYNC+ hook
|
|
The +POST_RSYNC+ hook is run only for packages that use a local source,
|
|
either through the +local+ site method or the +OVERRIDE_SRCDIR+
|
|
mechanism. In this case, package sources are copied using +rsync+ from
|
|
the local location into the buildroot build directory. The +rsync+
|
|
command does not copy all files from the source directory, though.
|
|
Files belonging to a version control system, like the directories
|
|
+.git+, +.hg+, etc. are not copied. For most packages this is
|
|
sufficient, but a given package can perform additional actions using
|
|
the +POST_RSYNC+ hook.
|
|
|
|
In principle, the hook can contain any command you want. One specific
|
|
use case, though, is the intentional copying of the version control
|
|
directory using +rsync+. The +rsync+ command you use in the hook can, among
|
|
others, use the following variables:
|
|
|
|
* +$(SRCDIR)+: the path to the overridden source directory
|
|
* +$(@D)+: the path to the build directory
|
|
|
|
==== Target-finalize hook
|
|
|
|
Packages may also register hooks in +LIBFOO_TARGET_FINALIZE_HOOKS+.
|
|
These hooks are run after all packages are built, but before the
|
|
filesystem images are generated. They are seldom used, and your
|
|
package probably do not need them.
|