summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMasahiro Yamada <yamada.masahiro@socionext.com>2018-03-23 22:04:34 +0900
committerMasahiro Yamada <yamada.masahiro@socionext.com>2018-04-07 19:04:02 +0900
commita7f924190924783d3e291624c4f0c3f51481ae2c (patch)
treee696224fb9f3081f3f3b37d228817505a76dfd18
parentb23d1a241f4eb44ae55785c9b65274717c8e2c1e (diff)
downloadlwn-a7f924190924783d3e291624c4f0c3f51481ae2c.tar.gz
lwn-a7f924190924783d3e291624c4f0c3f51481ae2c.zip
kbuild: add %.dtb.S and %.dtb to 'targets' automatically
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. Support it in the core Makefile. $(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>
-rw-r--r--drivers/of/unittest-data/Makefile2
-rw-r--r--scripts/Makefile.build4
-rw-r--r--scripts/Makefile.lib4
3 files changed, 5 insertions, 5 deletions
diff --git a/drivers/of/unittest-data/Makefile b/drivers/of/unittest-data/Makefile
index 8fd0ea4b92b0..87a65ca38583 100644
--- a/drivers/of/unittest-data/Makefile
+++ b/drivers/of/unittest-data/Makefile
@@ -21,8 +21,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 36f7990c5701..15b3bbb3248b 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 b1d938fab73b..7f5bca0c3b7b 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -279,8 +279,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}) ; \