mirror of
https://git.busybox.net/buildroot.git
synced 2024-11-24 14:03:29 +08:00
ac93fabb66
Add PRE_*_HOOKS to all the different steps through which a package may go. This will help avoid using POST_*_HOOKS to do tasks that should be done in the PRE_*_HOOKS of the next step. Otherwise, when the user would do a make foo-re<step>, this would not do what was really intented, the POST_*_HOOK of the preceding step not being executed. Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> [ThomasDS: rebase, add images hooks to manual] Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
80 lines
2.6 KiB
Plaintext
80 lines
2.6 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
|
|
----------------------
|
|
|
|
==== 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
|