OSDN Git Service

kbuild: add %.dtb.S and %.dtb to 'targets' automatically
authorMasahiro Yamada <yamada.masahiro@socionext.com>
Fri, 23 Mar 2018 13:04:34 +0000 (22:04 +0900)
committerMasahiro Yamada <yamada.masahiro@socionext.com>
Sat, 7 Apr 2018 10:04:02 +0000 (19:04 +0900)
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>
drivers/of/unittest-data/Makefile
scripts/Makefile.build
scripts/Makefile.lib

index 8fd0ea4..87a65ca 100644 (file)
@@ -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 += -@
index 36f7990..15b3bbb 100644 (file)
@@ -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
index b1d938f..7f5bca0 100644 (file)
@@ -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}) ; \