Re: [PATCH v2] kbuild: add dtbs_prepare target
From: Masahiro Yamada
Date: Sat Jul 30 2022 - 13:22:00 EST
On Sun, Jul 24, 2022 at 7:01 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote:
>
> Factor out the common prerequisites for DT compilation into the new
> target, dtbs_prepare.
>
> Add comments to explain why include/config/kernel.release is the
> prerequisite. Our policy is that installation targets must not rebuild
> anything in the tree. If 'make modules_install' is executed as root,
> include/config/kernel.release may be owned by root.
>
> Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx>
> ---
>
Applied to linux-kbuild.
> Changes for v2:
> - rephase the comment more concise
>
> Makefile | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index dee707c98bbe..a2a030f41e65 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1370,16 +1370,21 @@ endif
>
> ifneq ($(dtstree),)
>
> -%.dtb: include/config/kernel.release scripts_dtc
> +%.dtb: dtbs_prepare
> $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
>
> -%.dtbo: include/config/kernel.release scripts_dtc
> +%.dtbo: dtbs_prepare
> $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
>
> -PHONY += dtbs dtbs_install dtbs_check
> -dtbs: include/config/kernel.release scripts_dtc
> +PHONY += dtbs dtbs_prepare dtbs_install dtbs_check
> +dtbs: dtbs_prepare
> $(Q)$(MAKE) $(build)=$(dtstree)
>
> +# include/config/kernel.release is actually needed when installing DTBs because
> +# INSTALL_DTBS_PATH contains $(KERNELRELEASE). However, we do not want to make
> +# dtbs_install depend on it as dtbs_install may run as root.
> +dtbs_prepare: include/config/kernel.release scripts_dtc
> +
> ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
> export CHECK_DTBS=y
> dtbs: dt_binding_check
> --
> 2.34.1
>
--
Best Regards
Masahiro Yamada