Skip automatic dtsi selection if ARCH is not defined and introduce
u_boot_dtsi_search for use with foreach method to implement the automatic
dtsi inclusion. Increase code re-use and detail for debug output.

Detailed dtsi automatic selection debug output when DEVICE_TREE_DEBUG=1
  - Indicate when key is undefined and skip undefined search pattern
  - Indicate when search pattern is found or not found, and the pattern
  - Show values of defined keys

Signed-off-by: E Shattow <e...@freeshell.de>
---
 scripts/Makefile.lib | 34 +++++++++++++++++++++++-----------
 1 file changed, 23 insertions(+), 11 deletions(-)

diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib
index 5db2fbc418a..0d70868a339 100644
--- a/scripts/Makefile.lib
+++ b/scripts/Makefile.lib
@@ -195,21 +195,33 @@ cpp_flags      = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) 
$(UBOOTINCLUDE)     \
 ld_flags       = $(KBUILD_LDFLAGS) $(ldflags-y) $(LDFLAGS_$(@F))
 
 # Try these files in order to find the U-Boot-specific .dtsi include file
+ifneq ($(strip $(ARCH)),)
+
 u_boot_dtsi_loc = $(srctree)/arch/$(ARCH)/dts/
 
-u_boot_dtsi_options = $(strip $(wildcard $(u_boot_dtsi_loc)$(basename $(notdir 
$<))-u-boot.dtsi) \
-       $(wildcard $(u_boot_dtsi_loc)$(subst 
$\",,$(CONFIG_SYS_SOC))-u-boot.dtsi) \
-       $(wildcard $(u_boot_dtsi_loc)$(subst 
$\",,$(CONFIG_SYS_CPU))-u-boot.dtsi) \
-       $(wildcard $(u_boot_dtsi_loc)$(subst 
$\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi) \
+u_boot_dtsi_search = $(<) \
+       $(CONFIG_SYS_SOC) $(CONFIG_SYS_CPU) $(CONFIG_SYS_VENDOR)
+
+u_boot_dtsi_pattern = $(eval x=$$(patsubst "%",%,$(i)))$(strip \
+       $(and $(x),$(wildcard \
+       $(u_boot_dtsi_loc)$(basename $(notdir $(x)))-u-boot.dtsi)))
+
+u_boot_dtsi_options = $(strip \
+       $(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern)) \
        $(wildcard $(u_boot_dtsi_loc)u-boot.dtsi))
 
-u_boot_dtsi_options_raw = $(warning Automatic .dtsi inclusion: options: \
-       $(u_boot_dtsi_loc)$(basename $(notdir $<))-u-boot.dtsi \
-       $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_SOC))-u-boot.dtsi \
-       $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_CPU))-u-boot.dtsi \
-       $(u_boot_dtsi_loc)$(subst $\",,$(CONFIG_SYS_VENDOR))-u-boot.dtsi \
-       $(u_boot_dtsi_loc)u-boot.dtsi ... \
-       found: $(if $(u_boot_dtsi_options),"$(u_boot_dtsi_options)",nothing!))
+u_boot_dtsi_pattern_raw = $(eval x=$$(patsubst "%",%,$(i))) \
+       $(i)=$(if $(x),$(and $(x),$(x) $(if $(u_boot_dtsi_pattern),,not) \
+       found @ $(u_boot_dtsi_loc)$(basename $(notdir 
$(x)))-u-boot.dtsi),(undefined)) ||
+
+u_boot_dtsi_options_raw = $(strip \
+       Automatic inclusion \
+       $(or $(u_boot_dtsi_options),(undefined)) from search: \
+       $(foreach i,$(value u_boot_dtsi_search),$(u_boot_dtsi_pattern_raw)) \
+       u-boot.dtsi $(if $(wildcard $(u_boot_dtsi_loc)u-boot.dtsi),,not) \
+       found @ $(u_boot_dtsi_loc)u-boot.dtsi)
+
+endif
 
 # Uncomment for debugging
 # This shows all the files that were considered and the one that we chose.

base-commit: e4c8b32d03d7ecffd586b7d33336603ad639d7c0
-- 
2.50.0

Reply via email to