Home | History | Annotate | Download | only in core
      1 ###########################################################
      2 ## Determine if a module can be built for an arch
      3 ##
      4 ## Inputs from module makefile:
      5 ## my_prefix   TARGET_ or HOST_
      6 ## my_module_multilib
      7 ## LOCAL_MODULE_$(my_prefix)ARCH
      8 ## LOCAL_MODULE_$(my_prefix)ARCH_WARN
      9 ## LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH
     10 ## LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN
     11 ##
     12 ## Inputs from build system:
     13 ## $(my_prefix)IS_64_BIT
     14 ## LOCAL_2ND_ARCH_VAR_PREFIX
     15 ##
     16 ## Outputs:
     17 ## my_module_arch_supported := (true|false)
     18 ###########################################################
     19 
     20 my_module_arch_supported := true
     21 
     22 ifeq ($(my_module_multilib),none)
     23 my_module_arch_supported := false
     24 endif
     25 
     26 ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
     27 ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32)
     28 my_module_arch_supported := false
     29 else ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),|64)
     30 my_module_arch_supported := false
     31 endif
     32 else # LOCAL_2ND_ARCH_VAR_PREFIX
     33 ifeq ($(my_module_multilib),first)
     34 my_module_arch_supported := false
     35 else ifeq ($(my_module_multilib),64)
     36 my_module_arch_supported := false
     37 endif
     38 endif # LOCAL_2ND_ARCH_VAR_PREFIX
     39 
     40 ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH))
     41 ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH)))
     42 my_module_arch_supported := false
     43 endif
     44 endif
     45 
     46 ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH_WARN))
     47 ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH_WARN)))
     48 my_module_arch_supported := false
     49 $(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
     50 endif
     51 endif
     52 
     53 ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH)))
     54 my_module_arch_supported := false
     55 endif
     56 
     57 ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN)))
     58 my_module_arch_supported := false
     59 $(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
     60 endif
     61