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
This commit is contained in:
Doug Zongker 2010-02-18 11:43:04 -08:00
parent 84c253286f
commit 1d89773c1d
1 changed files with 3 additions and 2 deletions

View File

@ -162,8 +162,9 @@ define _expand-inherited-values
$(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.") \