fix makefile inheritance system
The variable inheritance system can leave extra spaces in a variable
when multiple levels of inheritance are used. It can expand:
"@inherit:foo @inherit:bar @inherit:baz"
to
"value @inherit:bar @inherit:baz"
and then
"value @inherit:baz" (if bar has no value for the variable)
and then
"value " (if baz also has no value).
Call strip to remove excess spaces between words after each
replacement pass.
Change-Id: Ic4cfc6fed1865066a6353a522e4bdcb68ec875d3
diff --git a/core/node_fns.mk b/core/node_fns.mk
index 31b8543..38ecea7 100644
--- a/core/node_fns.mk
+++ b/core/node_fns.mk
@@ -162,8 +162,9 @@
$(call uniq-word,$($(_eiv_tv)),$(INHERIT_TAG)$(i))) \
$(eval ### "Expand the inherit tag") \
$(eval $(_eiv_tv) := \
- $(patsubst $(INHERIT_TAG)$(i),$($(1).$(i).$(v)), \
- $($(_eiv_tv)))) \
+ $(strip \
+ $(patsubst $(INHERIT_TAG)$(i),$($(1).$(i).$(v)), \
+ $($(_eiv_tv))))) \
$(eval ### "Clear the child so DAGs don't create duplicate entries" ) \
$(eval $(1).$(i).$(v) :=) \
$(eval ### "If we just inherited ourselves, it's a cycle.") \