module_arch_supported.mk revision 859ac3406453b157b043e19f49018022346ffb6e
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## LOCAL_IS_HOST_MODULE 12## LOCAL_MODULE_HOST_OS 13## 14## Inputs from build system: 15## $(my_prefix)IS_64_BIT 16## LOCAL_2ND_ARCH_VAR_PREFIX 17## 18## Outputs: 19## my_module_arch_supported := (true|false) 20########################################################### 21 22my_module_arch_supported := true 23 24ifeq ($(my_module_multilib),none) 25my_module_arch_supported := false 26endif 27 28ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),) 29ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32) 30my_module_arch_supported := false 31else ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),|64) 32my_module_arch_supported := false 33endif 34else # LOCAL_2ND_ARCH_VAR_PREFIX 35ifeq ($(my_module_multilib),first) 36my_module_arch_supported := false 37else ifeq ($(my_module_multilib),64) 38my_module_arch_supported := false 39endif 40endif # LOCAL_2ND_ARCH_VAR_PREFIX 41 42ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH)) 43ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH))) 44my_module_arch_supported := false 45endif 46endif 47 48ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH_WARN)) 49ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH_WARN))) 50my_module_arch_supported := false 51$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported) 52endif 53endif 54 55ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH))) 56my_module_arch_supported := false 57endif 58 59ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN))) 60my_module_arch_supported := false 61$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported) 62endif 63 64ifdef LOCAL_IS_HOST_MODULE 65ifneq (,$(LOCAL_MODULE_HOST_OS)) 66 ifeq (,$(filter $($(my_prefix)OS),$(LOCAL_MODULE_HOST_OS))) 67 my_module_arch_supported := false 68 endif 69else ifeq ($($(my_prefix)OS),windows) 70 # If LOCAL_MODULE_HOST_OS is empty, only linux and darwin are supported 71 my_module_arch_supported := false 72endif 73endif 74