Re: [PATCH 05/10] kbuild: add %.dtb.S and %.dtb to 'targets' automatically

From: Frank Rowand
Date: Fri Mar 23 2018 - 21:24:23 EST


On 03/23/18 06:04, Masahiro Yamada wrote:
> Another common pattern that consists of chained commands is to compile
> a DTB as binary data into the kernel image or a module. It is used in
> several places in the source tree. Let's support it in the build core.
>
> $(call if_changed,dt_S_dtb) is more suitable than $(call cmd,dt_S_dtb)
> in case cmd_dt_S_dtb is changed in the future.
>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>

Acked-by: Frank Rowand <frowand.list@xxxxxxxxx>

-Frank

> ---
>
> drivers/of/unittest-data/Makefile | 2 --
> scripts/Makefile.build | 4 +++-
> scripts/Makefile.lib | 4 ++--
> 3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile
> index df69797..333bc4c 100644
> --- a/drivers/of/unittest-data/Makefile
> +++ b/drivers/of/unittest-data/Makefile
> @@ -7,8 +7,6 @@ obj-$(CONFIG_OF_OVERLAY) += overlay.dtb.o \
> overlay_bad_symbol.dtb.o \
> overlay_base.dtb.o
>
> -targets += $(foreach suffix, dtb dtb.S, $(patsubst %.dtb.o,%.$(suffix),$(obj-y)))
> -
> # enable creation of __symbols__ node
> DTC_FLAGS_overlay := -@
> DTC_FLAGS_overlay_bad_phandle := -@
> diff --git a/scripts/Makefile.build b/scripts/Makefile.build
> index 36f7990..15b3bbb 100644
> --- a/scripts/Makefile.build
> +++ b/scripts/Makefile.build
> @@ -544,9 +544,11 @@ targets := $(filter-out $(PHONY), $(targets))
> intermediate_targets = $(foreach sfx, $(2), \
> $(patsubst %$(strip $(1)),%$(sfx), \
> $(filter %$(strip $(1)), $(targets))))
> +# %.dtb.o <- %.dtb.S <- %.dtb <- %.dts
> # %.lex.o <- %.lex.c <- %.l
> # %.tab.o <- %.tab.[ch] <- %.y
> -targets += $(call intermediate_targets, .lex.o, .lex.c) \
> +targets += $(call intermediate_targets, .dtb.o, .dtb.S .dtb) \
> + $(call intermediate_targets, .lex.o, .lex.c) \
> $(call intermediate_targets, .tab.o, .tab.c .tab.h)
>
> # Descending
> diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
> index b7d2c97..7a1fa92 100644
> --- a/scripts/Makefile.lib
> +++ b/scripts/Makefile.lib
> @@ -278,8 +278,8 @@ cmd_dt_S_dtb= \
> echo '.balign STRUCT_ALIGNMENT'; \
> ) > $@
>
> -$(obj)/%.dtb.S: $(obj)/%.dtb
> - $(call cmd,dt_S_dtb)
> +$(obj)/%.dtb.S: $(obj)/%.dtb FORCE
> + $(call if_changed,dt_S_dtb)
>
> quiet_cmd_dtc = DTC $@
> cmd_dtc = mkdir -p $(dir ${dtc-tmp}) ; \
>