Changeset 2007 for trunk


Ignore:
Timestamp:
Oct 31, 2008, 4:28:31 AM (17 years ago)
Author:
bird
Message:

footer.kmk,tests: Convert simple variables into recursive ones by means of a helper variable during inheritance. This fixes the problem with forward references in a template when the target defined the property(.keyword) using a simple assignmnet. Fixes #51.

Location:
trunk
Files:
3 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/footer.kmk

    r1936 r2007  
    165165
    166166
     167## Converts a variable from simple to recursive flavor.
     168# This is used by def_inherit_template_one_accumulate_l and def_inherit_template_one_accumulate_r.
     169# @param    $1              The variable name.
     170define def_simple_2_recursive
     171$1_DEFERRED := $$($1)
     172$1 = $$($1_DEFERRED)
     173endef
     174
     175
    167176## Inherit one keyword in a non-accumulative manner.
    168177# @param    $(trg)          Target object.
     
    277286define def_inherit_one_keyword_prepending_deferred_l
    278287ifdef $(trg)_$(prop).$(src_key)
     288 ifeq ($$(flavor $(trg)_$(prop).$(trg_key)),simple)
     289  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop).$(trg_key))
     290 endif
    279291 $(trg)_$(prop).$(trg_key) <= $$($(trg)_$(prop).$(src_key))
    280292endif
     
    284296define def_inherit_one_keyword_prepending_deferred_r
    285297ifdef $(trg)_$(prop).$(src_key)
    286   $(trg)_$(prop).$(trg_key) += $$($(trg)_$(prop).$(src_key))
     298 ifeq ($$(flavor $(trg)_$(prop).$(trg_key)),simple)
     299  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop).$(trg_key))
     300 endif
     301 $(trg)_$(prop).$(trg_key) += $$($(trg)_$(prop).$(src_key))
    287302endif
    288303endef
     
    330345define def_inherit_one_keyword_appending_deferred_l
    331346ifdef $(trg)_$(prop).$(src_key)
     347 ifeq ($$(flavor $(trg)_$(prop).$(trg_key)),simple)
     348  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop).$(trg_key))
     349 endif
    332350 $(trg)_$(prop).$(trg_key) += $$($(trg)_$(prop).$(src_key))
    333351endif
     
    337355define def_inherit_one_keyword_appending_deferred_r
    338356ifdef $(trg)_$(prop).$(src_key)
    339   $(trg)_$(prop).$(trg_key) <= $$($(trg)_$(prop).$(src_key))
     357 ifeq ($$(flavor $(trg)_$(prop).$(trg_key)),simple)
     358  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop).$(trg_key))
     359 endif
     360 $(trg)_$(prop).$(trg_key) <= $$($(trg)_$(prop).$(src_key))
    340361endif
    341362endef
     
    475496define def_inherit_one_prepending_deferred_l
    476497ifdef $(src)_$(prop)
     498 ifeq ($$(flavor $(trg)_$(prop)),simple)
     499  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop))
     500 endif
    477501 $(trg)_$(prop) <= $$($(src)_$(prop))
    478502endif
     
    482506define def_inherit_one_prepending_deferred_r
    483507ifdef $(src)_$(prop)
    484   $(trg)_$(prop) += $$($(src)_$(prop))
     508 ifeq ($$(flavor $(trg)_$(prop)),simple)
     509  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop))
     510 endif
     511 $(trg)_$(prop) += $$($(src)_$(prop))
    485512endif
    486513endef
     
    525552define def_inherit_one_appending_deferred_l
    526553ifdef $(src)_$(prop)
     554 ifeq ($$(flavor $(trg)_$(prop)),simple)
     555  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop))
     556 endif
    527557 $(trg)_$(prop) += $$($(src)_$(prop))
    528558endif
     
    532562define def_inherit_one_appending_deferred_r
    533563ifdef $(src)_$(prop)
    534   $(trg)_$(prop) <= $$($(src)_$(prop))
     564 ifeq ($$(flavor $(trg)_$(prop)),simple)
     565  $$(evalcall2 def_simple_2_recursive,$(trg)_$(prop))
     566 endif
     567 $(trg)_$(prop) <= $$($(src)_$(prop))
    535568endif
    536569endef
     
    10231056define def_inherit_template_one_accumulate_l
    10241057ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop)
     1058 ifeq ($$(flavor $(target)_$(prop)),simple)
     1059 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop))
     1060 endif
    10251061$(target)_$(prop) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop))
    10261062endif
    10271063ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(KBUILD_TYPE)
     1064 ifeq ($$(flavor $(target)_$(prop).$(KBUILD_TYPE)),simple)
     1065 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(KBUILD_TYPE))
     1066 endif
    10281067$(target)_$(prop).$(KBUILD_TYPE) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(KBUILD_TYPE))
    10291068endif
    10301069ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg)
     1070 ifeq ($$(flavor $(target)_$(prop).$(bld_trg)),simple)
     1071 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg))
     1072 endif
    10311073$(target)_$(prop).$(bld_trg) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg))
    10321074endif
    10331075ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg).$(bld_trg_arch)
     1076 ifeq ($$(flavor $(target)_$(prop).$(bld_trg).$(bld_trg_arch)),simple)
     1077 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg).$(bld_trg_arch))
     1078 endif
    10341079$(target)_$(prop).$(bld_trg).$(bld_trg_arch) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg).$(bld_trg_arch))
    10351080endif
    10361081ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_cpu)
     1082 ifeq ($$(flavor $(target)_$(prop).$(bld_trg_cpu)),simple)
     1083 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg_cpu))
     1084 endif
    10371085$(target)_$(prop).$(bld_trg_cpu) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_cpu))
    10381086endif
    10391087ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_arch)
     1088 ifeq ($$(flavor $(target)_$(prop).$(bld_trg_arch)),simple)
     1089 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg_arch))
     1090 endif
    10401091$(target)_$(prop).$(bld_trg_arch) += $$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_arch))
    10411092endif
     
    10471098define def_inherit_template_one_accumulate_r
    10481099ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop)
     1100 ifeq ($$(flavor $(target)_$(prop)),simple)
     1101 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop))
     1102 endif
    10491103$(target)_$(prop) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop))
    10501104endif
    10511105ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(KBUILD_TYPE)
     1106 ifeq ($$(flavor $(target)_$(prop).$(KBUILD_TYPE)),simple)
     1107 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(KBUILD_TYPE))
     1108 endif
    10521109$(target)_$(prop).$(KBUILD_TYPE) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(KBUILD_TYPE))
    10531110endif
    10541111ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg)
     1112 ifeq ($$(flavor $(target)_$(prop).$(bld_trg)),simple)
     1113 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg))
     1114 endif
    10551115$(target)_$(prop).$(bld_trg) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg))
    10561116endif
    10571117ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg).$(bld_trg_arch)
     1118 ifeq ($$(flavor $(target)_$(prop).$(bld_trg).$(bld_trg_arch)),simple)
     1119 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg).$(bld_trg_arch))
     1120 endif
    10581121$(target)_$(prop).$(bld_trg).$(bld_trg_arch) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg).$(bld_trg_arch))
    10591122endif
    10601123ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_cpu)
     1124 ifeq ($$(flavor $(target)_$(prop).$(bld_trg_cpu)),simple)
     1125 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg_cpu))
     1126 endif
    10611127$(target)_$(prop).$(bld_trg_cpu) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_cpu))
    10621128endif
    10631129ifdef TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_arch)
     1130 ifeq ($$(flavor $(target)_$(prop).$(bld_trg_arch)),simple)
     1131 $$(evalcall2 def_simple_2_recursive,$(target)_$(prop).$(bld_trg_arch))
     1132 endif
    10641133$(target)_$(prop).$(bld_trg_arch) <=$$(TEMPLATE_$($(target)_TEMPLATE)_$(prop).$(bld_trg_arch))
    10651134endif
  • trunk/tests/Makefile.kmk

    r1509 r2007  
    3131        inherit-target \
    3232        inherit-bld \
     33        inherit-misc \
    3334
    3435include $(FILE_KBUILD_FOOTER)
Note: See TracChangeset for help on using the changeset viewer.