[PATCH 6/6] Makefile: Remove old of-platdata files before regenerating

Simon Glass sjg at chromium.org
Wed Mar 24 08:07:14 CET 2021


Which files we generate depends on the setting of OF_PLATDATA_INST in the
build. This might change between builds, but the build directory may be
reused.

Leaving old files around is confusing and switching the OF_PLATDATA_INST
setting does not necessarily regenerate the files, e.g. if the devicetree
has not changed.

Remove all the files before regenerating new ones.

Signed-off-by: Simon Glass <sjg at chromium.org>
---

 scripts/Makefile.spl | 14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)

diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl
index cf04016ff99..f2628026f9f 100644
--- a/scripts/Makefile.spl
+++ b/scripts/Makefile.spl
@@ -121,10 +121,15 @@ u-boot-spl-init := $(head-y)
 u-boot-spl-main := $(libs-y)
 ifdef CONFIG_$(SPL_TPL_)OF_PLATDATA
 platdata-hdr := include/generated/dt-structs-gen.h include/generated/dt-decl.h
+platdata-inst := $(obj)/dts/dt-uclass.o $(obj)/dts/dt-device.o
+platdata-noinst := $(obj)/dts/dt-plat.o
+u-boot-spl-all-platdata := $(platdata-inst) $(platdata-noinst)
+u-boot-spl-all-platdata_c := $(patsubst %.o,%.c,$(u-boot-spl-all-platdata))
+
 ifdef CONFIG_$(SPL_TPL_)OF_PLATDATA_INST
-u-boot-spl-platdata := $(obj)/dts/dt-uclass.o $(obj)/dts/dt-device.o
+u-boot-spl-platdata := $(platdata-inst)
 else
-u-boot-spl-platdata := $(obj)/dts/dt-plat.o
+u-boot-spl-platdata := $(platdata-noinst)
 endif
 u-boot-spl-platdata_c := $(patsubst %.o,%.c,$(u-boot-spl-platdata))
 endif
@@ -334,6 +339,11 @@ $(obj)/dts/dt-%.o: $(obj)/dts/dt-%.c $(platdata-hdr)
 # Don't use dts_dir here, since it forces running this expensive rule every time
 $(platdata-hdr) $(u-boot-spl-platdata_c) &: $(obj)/$(SPL_BIN).dtb
 	@[ -d $(obj)/dts ] || mkdir -p $(obj)/dts
+	@# Remove old files since which ones we generate depends on the setting
+	@# of OF_PLATDATA_INST and this might change between builds. Leaving old
+	@# ones around is confusing and it is possible that switching the
+	@# setting again will use the old one instead of regenerating it.
+	@rm -f $(u-boot-spl-all-platdata_c) $(u-boot-spl-all-platdata)
 	$(call if_changed,dtoc)
 
 ifdef CONFIG_SAMSUNG
-- 
2.31.0.291.g576ba9dcdaf-goog



More information about the U-Boot mailing list