Ignore:
Timestamp:
Aug 2, 2011, 9:44:43 PM (14 years ago)
Author:
bird
Message:

Quick implementation of PRE_[FILE|SYMLINK|DIRECTORY_CMDS on installs. Fixes #104.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/kBuild/footer.kmk

    r2523 r2537  
    209209
    210210
    211 
     211##
     212# Function for getting the first defined propert value.
     213#
     214# @param   1            The property name.
     215# @param   2            The default property name, empty if none.
     216# @param   3            What to return if all variables are empty. (optional)
     217# @note    Implicit parameters: target, bld_trg, bld_trg_arch, bld_trg_cpu, bld_type.
     218# @returns Expanded property value.
     219#
     220define def_fn_prop_get_first_defined
     221local .RETURN := $(firstdefined \
     222    $(target)_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type) \
     223    $(target)_$(1).$(bld_trg).$(bld_trg_arch) \
     224    $(target)_$(1).$(bld_trg).$(bld_type) \
     225    $(target)_$(1).$(bld_trg_cpu) \
     226    $(target)_$(1).$(bld_trg_arch) \
     227    $(target)_$(1).$(bld_trg) \
     228    $(target)_$(1).$(bld_type) \
     229    $(target)_$(1) \
     230)
     231ifeq ($(.RETURN),)
     232 ifneq ($(2),)
     233  local .RETURN := $(firstdefined \
     234    $(2).$(bld_trg).$(bld_trg_arch).$(bld_type) \
     235    $(2).$(bld_trg).$(bld_trg_arch) \
     236    $(2).$(bld_trg).$(bld_type) \
     237    $(2).$(bld_trg_cpu) \
     238    $(2).$(bld_trg_arch) \
     239    $(2).$(bld_trg) \
     240    $(2).$(bld_type) \
     241    $(2) \
     242    3 \
     243  )
     244 else
     245  local .RETURN := $(firstdefined \
     246    kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type) \
     247    kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch) \
     248    kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_type) \
     249    kBuildGlobalDefaults_$(1).$(bld_trg_cpu) \
     250    kBuildGlobalDefaults_$(1).$(bld_trg_arch) \
     251    kBuildGlobalDefaults_$(1).$(bld_trg) \
     252    kBuildGlobalDefaults_$(1).$(bld_type) \
     253    kBuildGlobalDefaults_$(1) \
     254    3 \
     255  )
     256 endif
     257endif
     258local .RETURN := $(strip $($(.RETURN)))
     259endef # def_fn_prop_get_first_defined
     260
     261##
     262# Function for getting the first property value (ignoring empty defines).
     263#
     264# @param   1            The property name.
     265# @param   2            The default property name, empty if none.
     266# @param   3            What to return if all variables are empty. (optional)
     267# @note    Implicit parameters: target, bld_trg, bld_trg_arch, bld_trg_cpu, bld_type.
     268# @returns First word.
     269#
     270define def_fn_prop_get_first_word
     271local .RETURN := $(firstword \
     272    $($(target)_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
     273    $($(target)_$(1).$(bld_trg).$(bld_trg_arch)) \
     274    $($(target)_$(1).$(bld_trg).$(bld_type)) \
     275    $($(target)_$(1).$(bld_trg_cpu)) \
     276    $($(target)_$(1).$(bld_trg_arch)) \
     277    $($(target)_$(1).$(bld_trg)) \
     278    $($(target)_$(1).$(bld_type)) \
     279    $($(target)_$(1)) \
     280)
     281ifeq ($(.RETURN),)
     282 ifneq ($(2),)
     283  local .RETURN := $(firstword \
     284    $($(2).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
     285    $($(2).$(bld_trg).$(bld_trg_arch)) \
     286    $($(2).$(bld_trg).$(bld_type)) \
     287    $($(2).$(bld_trg_cpu)) \
     288    $($(2).$(bld_trg_arch)) \
     289    $($(2).$(bld_trg)) \
     290    $($(2).$(bld_type)) \
     291    $($(2)) \
     292    $(3) \
     293  )
     294 else
     295  local .RETURN := $(firstword \
     296    $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch).$(bld_type)) \
     297    $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_trg_arch)) \
     298    $(kBuildGlobalDefaults_$(1).$(bld_trg).$(bld_type)) \
     299    $(kBuildGlobalDefaults_$(1).$(bld_trg_cpu)) \
     300    $(kBuildGlobalDefaults_$(1).$(bld_trg_arch)) \
     301    $(kBuildGlobalDefaults_$(1).$(bld_trg)) \
     302    $(kBuildGlobalDefaults_$(1).$(bld_type)) \
     303    $(kBuildGlobalDefaults_$(1)) \
     304    $(3) \
     305  )
     306 endif
     307endif
     308endef # def_fn_prop_get_first_word
     309
     310
     311#
     312# The main body.
     313#
    212314include $(KBUILD_PATH)/footer-inherit-uses-tools.kmk
    213315include $(KBUILD_PATH)/footer-pass1.kmk
     
    218320include $(KBUILD_PATH)/footer-misc.kmk
    219321include $(KBUILD_PATH)/footer-passes.kmk
     322
    220323
    221324#
Note: See TracChangeset for help on using the changeset viewer.