Ignore:
Timestamp:
Jan 5, 2019, 2:40:31 AM (7 years ago)
Author:
bird
Message:

footer-pass2-compiling-targets.kmk,units: Added a dedicated pass 2 variable for units to put their intermediates in so as to not mess with inheritance or for us to do silly things wrt expansion for every property variant. Only the new variable is now always listed as an order-only dependency for each source compilation rule.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/footer-pass2-compiling-targets.kmk

    r3280 r3284  
    9292 define def_target_source_rule_v3plus_objcache
    9393_OUT_FILES += $(outbase).koc
    94 $(outbase).koc +| $(obj) $(kbsrc_output) $(kbsrc_output_maybe) : $(kbsrc_depend) | $(kbsrc_depord) $(target_intermediate_vars)
     94$$(outbase).koc +| $$(obj) $$(kbsrc_output) $$(kbsrc_output_maybe) : $$(kbsrc_depend) | $$(kbsrc_depord) $(target_intermediate_vars)
    9595        %$$(call MSG_COMPILE,$(target),$(source),$$@,$(type))
    9696
     
    546546othersrc          :=
    547547$(target)_2_OBJS  :=
     548$(target)_2_INTERMEDIATES =
    548549
    549550# kObjCache.
     
    556557local use_objcache :=
    557558endif
    558 
    559 # target level intermediates
    560 local target_intermediate_vars := $(foreach var, \
    561         $(target)_INTERMEDIATES \
    562         $(target)_INTERMEDIATES.$(bld_trg) \
    563         $(target)_INTERMEDIATES.$(bld_trg).$(bld_trg_arch) \
    564         $(target)_INTERMEDIATES.$(bld_trg_arch) \
    565         $(target)_INTERMEDIATES.$(bld_trg_cpu) \
    566         $(target)_INTERMEDIATES.$(bld_type) \
    567         ,$(if-expr defined($(var)),$$$$($(var)),))
    568 #$(info target_intermediate_vars=$(target_intermediate_vars))
    569559
    570560# Do units pre source callouts.
     
    577567$(foreach unit,$(units),$(evalvalctx def_unit_$(unit)_target_pre))
    578568$(foreach unit,$(units),$(evalvalctx def_unit_$(unit)_target_pre_2))
     569
     570# target level intermediates
     571local target_intermediate_vars := $$$$($(target)_2_INTERMEDIATES) $(foreach var, \
     572        $(target)_INTERMEDIATES \
     573        $(target)_INTERMEDIATES.$(bld_trg) \
     574        $(target)_INTERMEDIATES.$(bld_trg).$(bld_trg_arch) \
     575        $(target)_INTERMEDIATES.$(bld_trg_arch) \
     576        $(target)_INTERMEDIATES.$(bld_trg_cpu) \
     577        $(target)_INTERMEDIATES.$(bld_type) \
     578        ,$(if-expr defined($(var)),$$$$($(var)),))
    579579
    580580# source -> object
     
    772772othersrc          :=
    773773$(target)_2_OBJS  :=
     774$(target)_2_INTERMEDIATES =
    774775
    775776# kObjCache.
     
    782783local use_objcache :=
    783784endif
    784 
    785 # target level intermediates
    786 local target_intermediate_vars := $(foreach var, \
    787         $(target)_INTERMEDIATES \
    788         $(target)_INTERMEDIATES.$(bld_trg) \
    789         $(target)_INTERMEDIATES.$(bld_trg).$(bld_trg_arch) \
    790         $(target)_INTERMEDIATES.$(bld_trg_arch) \
    791         $(target)_INTERMEDIATES.$(bld_trg_cpu) \
    792         $(target)_INTERMEDIATES.$(bld_type) \
    793         ,$(if-expr defined($(var)),$$$$($(var)),))
    794 #$(info target_intermediate_vars=$(target_intermediate_vars))
    795785
    796786# Do units pre source callouts.
     
    803793$(foreach unit,$(units),$(evalvalctx def_unit_$(unit)_target_pre))
    804794$(foreach unit,$(units),$(evalvalctx def_unit_$(unit)_target_pre_2))
     795
     796# target level intermediates
     797local target_intermediate_vars := $$$$($(target)_2_INTERMEDIATES) $(foreach var, \
     798        $(target)_INTERMEDIATES \
     799        $(target)_INTERMEDIATES.$(bld_trg) \
     800        $(target)_INTERMEDIATES.$(bld_trg).$(bld_trg_arch) \
     801        $(target)_INTERMEDIATES.$(bld_trg_arch) \
     802        $(target)_INTERMEDIATES.$(bld_trg_cpu) \
     803        $(target)_INTERMEDIATES.$(bld_type) \
     804        ,$(if-expr defined($(var)),$$$$($(var)),))
    805805
    806806# source -> object
Note: See TracChangeset for help on using the changeset viewer.