[Buildroot] [PATCH 14/24 v2] core/pkg-generic: allow packages to declare target-finalize hooks
Romain Naour
romain.naour at gmail.com
Sun Jul 3 09:53:10 UTC 2016
Hi Yann,
Le 22/06/2016 à 21:07, Yann E. MORIN a écrit :
> Currently, our skeleton declares target-finalize hooks, and does so
> unconditionally.
>
> That's fine since we have a single skeleton package, and thus the hooks
> it declares need not be conditional.
>
> However, we're going to be adding more skeleton packages, one for the
> custom skeleton, one for the sysv-like init systems and, eventually, one
> for the systemd init system.
>
> In that case, we will not want the sysv-like target-finalize hooks to be
> applied when the init system is systemd. And the other way around, of
> course. And so on for each type of skeleton...
>
> The only solution we have so far is to enclose all target-finalize hooks
> declarations between an ifeq-block to check that the package is enabled.
> This is cumbersome to do, even more so when the hooks are themselves
> conditional.
>
> Add support in the core infra for packages to register such hooks, like
> is done to register users, device tables and whatnots.
>
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
Reviewed-by: Romain Naour <romain.naour at gmail.com>
Best regards,
Romain
> ---
> docs/manual/adding-packages-hooks.txt | 7 +++++++
> package/pkg-generic.mk | 2 ++
> 2 files changed, 9 insertions(+)
>
> diff --git a/docs/manual/adding-packages-hooks.txt b/docs/manual/adding-packages-hooks.txt
> index 5b5bf6a..d25092a 100644
> --- a/docs/manual/adding-packages-hooks.txt
> +++ b/docs/manual/adding-packages-hooks.txt
> @@ -77,3 +77,10 @@ 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.
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 3281374..4415342 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -558,6 +558,7 @@ $(2)_PRE_INSTALL_IMAGES_HOOKS ?=
> $(2)_POST_INSTALL_IMAGES_HOOKS ?=
> $(2)_PRE_LEGAL_INFO_HOOKS ?=
> $(2)_POST_LEGAL_INFO_HOOKS ?=
> +$(2)_TARGET_FINALIZE_HOOKS ?=
>
> # human-friendly targets and target sequencing
> $(1): $(1)-install
> @@ -858,6 +859,7 @@ endif
> ifneq ($$($(2)_USERS),)
> PACKAGES_USERS += $$($(2)_USERS)$$(sep)
> endif
> +TARGET_FINALIZE_HOOKS += $$($(2)_TARGET_FINALIZE_HOOKS)
>
> ifeq ($$($(2)_SITE_METHOD),svn)
> DL_TOOLS_DEPENDENCIES += svn
>
More information about the buildroot
mailing list