12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- // -*- 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.
|