Makefile: Avoid running dtoc every time
authorSimon Glass <sjg@chromium.org>
Wed, 24 Mar 2021 17:40:49 +0000 (06:40 +1300)
committerSimon Glass <sjg@chromium.org>
Fri, 26 Mar 2021 04:03:08 +0000 (17:03 +1300)
Since the dst_dir rule always runs, it causes a rebuild of the of-platdata
files even if not needed.

Create the directory inside the rule instead.

Signed-off-by: Simon Glass <sjg@chromium.org>
scripts/Makefile.spl

index 849e9c7..4f5876d 100644 (file)
@@ -330,12 +330,10 @@ $(obj)/dts/dt-%.o: $(obj)/dts/dt-%.c \
                include/generated/dt-structs-gen.h prepare FORCE
        $(call if_changed,plat)
 
-PHONY += dts_dir
-dts_dir:
-       $(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts)
-
+# Don't use dts_dir here, since it forces running this expensive rule every time
 include/generated/dt-structs-gen.h $(u-boot-spl-platdata_c) &: \
-               $(obj)/$(SPL_BIN).dtb dts_dir FORCE
+               $(obj)/$(SPL_BIN).dtb
+       @[ -d $(obj)/dts ] || mkdir -p $(obj)/dts
        $(call if_changed,dtoc)
 
 ifdef CONFIG_SAMSUNG
@@ -476,6 +474,10 @@ FORCE:
 $(obj)/dts/dt-$(SPL_NAME).dtb: dts/dt.dtb
        $(Q)$(MAKE) $(build)=$(obj)/dts spl_dtbs
 
+PHONY += dts_dir
+dts_dir:
+       $(shell [ -d $(obj)/dts ] || mkdir -p $(obj)/dts)
+
 # Declare the contents of the .PHONY variable as phony.  We keep that
 # information in a variable so we can use it in if_changed and friends.
 .PHONY: $(PHONY)