All architectures that use cmd_dtc do so in almost the same way. Create a central build rule to avoid duplication. The one difference is that most current uses of dtc build $(obj)/%.dtb from $(src)/dts/%.dts rather than building the .dtb in the same directory as the .dts file. This difference will be eliminated arch-by-arch in future patches. MIPS is the exception here; it already uses the exact same rule as the new common rule, so the duplicate is removed in this patch to avoid any conflict. arch/mips changes courtesy of Ralf Baechle. Update Documentation/kbuild to remove the explicit call to cmd_dtc from the example, now that the rule exists in a centralized location.
Unified · Split
| @@ -1175,15 +1175,16 @@ When kbuild executes, the following steps are followed (roughly): · 1174 unmodified lines | ||
| 1175 | 1175 | in an init section in the image. Platform code *must* copy the |
| 1176 | 1176 | blob to non-init memory prior to calling unflatten_device_tree(). |
| 1177 | 1177 | |
| 1178 | − Example: | |
| 1179 | − #arch/x86/platform/ce4100/Makefile | |
| 1180 | − clean-files := *dtb.S | |
| 1178 | + To use this command, simply add *.dtb into obj-y or targets, or make | |
| 1179 | + some other target depend on %.dtb | |
| 1181 | 1180 | |
| 1182 | − DTC_FLAGS := -p 1024 | |
| 1183 | − obj-y += foo.dtb.o | |
| 1181 | + A central rule exists to create $(obj)/%.dtb from $(src)/%.dts; | |
| 1182 | + architecture Makefiles do no need to explicitly write out that rule. | |
| 1184 | 1183 | |
| 1185 | − $(obj)/%.dtb: $(src)/%.dts | |
| 1186 | − $(call cmd,dtc) | |
| 1184 | + Example: | |
| 1185 | + targets += $(dtb-y) | |
| 1186 | + clean-files += *.dtb | |
| 1187 | + DTC_FLAGS ?= -p 1024 | |
| 1187 | 1188 | |
| 1188 | 1189 | --- 6.8 Custom kbuild commands |
| 1189 | 1190 | |
| @@ -24,9 +24,6 @@ DTB_FILES = $(patsubst %.dts, %.dtb, $(DTS_FILES)) · 23 unmodified lines | ||
| 24 | 24 | |
| 25 | 25 | obj-y += $(patsubst %.dts, %.dtb.o, $(DTS_FILES)) |
| 26 | 26 | |
| 27 | −$(obj)/%.dtb: $(src)/%.dts FORCE | |
| 28 | − $(call if_changed_dep,dtc) | |
| 29 | − | |
| 30 | 27 | # Let's keep the .dtb files around in case we want to look at them. |
| 31 | 28 | .SECONDARY: $(addprefix $(obj)/, $(DTB_FILES)) |
| 32 | 29 | |
| @@ -1,4 +1 @@ | ||
| 1 | 1 | obj-$(CONFIG_DT_EASY50712) := easy50712.dtb.o |
| 2 | − | |
| 3 | −$(obj)/%.dtb: $(obj)/%.dts | |
| 4 | − $(call if_changed,dtc) | |
| @@ -1,4 +1 @@ | ||
| 1 | 1 | obj-$(CONFIG_DT_XLP_EVP) := xlp_evp.dtb.o |
| 2 | − | |
| 3 | −$(obj)/%.dtb: $(obj)/%.dts | |
| 4 | − $(call if_changed,dtc) | |
| @@ -266,6 +266,9 @@ $(obj)/%.dtb.S: $(obj)/%.dtb · 265 unmodified lines | ||
| 266 | 266 | quiet_cmd_dtc = DTC $@ |
| 267 | 267 | cmd_dtc = $(objtree)/scripts/dtc/dtc -O dtb -o $@ -b 0 $(DTC_FLAGS) -d $(depfile) $< |
| 268 | 268 | |
| 269 | +$(obj)/%.dtb: $(src)/%.dts FORCE | |
| 270 | + $(call if_changed_dep,dtc) | |
| 271 | + | |
| 269 | 272 | # Bzip2 |
| 270 | 273 | # --------------------------------------------------------------------------- |
| 271 | 274 | |