diff mbox series

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

Message ID 1521810279-6282-5-git-send-email-yamada.masahiro@socionext.com
State Accepted
Commit a7f924190924783d3e291624c4f0c3f51481ae2c
Headers show
Series [01/10] .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore | expand

Commit Message

Masahiro Yamada March 23, 2018, 1:04 p.m. UTC
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@socionext.com>

---

 drivers/of/unittest-data/Makefile | 2 --
 scripts/Makefile.build            | 4 +++-
 scripts/Makefile.lib              | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

-- 
2.7.4

Comments

Frank Rowand March 24, 2018, 1:24 a.m. UTC | #1
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@socionext.com>


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


-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}) ; \

>
diff mbox series

Patch

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}) ; \