Re: [RFC-PATCH] Makefile: dts: include directory makefile for DTC_FLAGS

From: Masahiro Yamada
Date: Thu Sep 08 2022 - 03:09:07 EST


On Thu, Sep 8, 2022 at 8:03 AM Daniel Walker <danielwa@xxxxxxxxx> wrote:
>
> The current Makefile will drop the DTC_FLAGS depending on how you
> build. For example,
>
> make dtbs
>
> includes correct DTC_FLAGS. However if you run,
>
> make nvidia/tegra210-p2371-2180.dtb
>
> The DTC_FLAGS are dropped. This appears to be caused by the top level
> Makefile not including the Makefile from the directory where the dts lives.
>
> This normally doesn't matter because most dts files have nothing added
> from the Makefile. This changes when you have overlays, and the
> DTC_FLAGS modifier is mandatory for the dtb to work correctly.


I recently fixed another issue of single target builds.
https://patchwork.kernel.org/project/linux-kbuild/patch/20220906061313.1445810-2-masahiroy@xxxxxxxxxx/


It fixed your issue as well.






>
> This change adds a -f argument which includes the Makefile from the
> directory where the dts file reside. This change is also required for
> dtbo files.
>
> Cc: xe-linux-external@xxxxxxxxx
> Signed-off-by: Daniel Walker <danielwa@xxxxxxxxx>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index ac16bd92b156..bc245e2dc8d1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1460,10 +1460,10 @@ endif
> ifneq ($(dtstree),)
>
> %.dtb: dtbs_prepare
> - $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
> + $(Q)$(MAKE) -f $(srctree)/$(dtstree)/$(dir $@)Makefile $(build)=$(dtstree) $(dtstree)/$@
>
> %.dtbo: dtbs_prepare
> - $(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
> + $(Q)$(MAKE) -f $(srctree)/$(dtstree)/$(dir $@)Makefile $(build)=$(dtstree) $(dtstree)/$@
>
> PHONY += dtbs dtbs_prepare dtbs_install dtbs_check
> dtbs: dtbs_prepare
> --
> 2.25.1
>


--
Best Regards
Masahiro Yamada