blob: a5e4a7cbc5b96e353b5eff8b92a9aaf7691c6fd6 [file] [log] [blame]
Colin Cross8e404122014-02-06 14:45:37 -08001###########################################################
2## Determine if a module can be built for an arch
3##
4## Inputs from module makefile:
Ying Wang6feb6d52014-04-17 10:03:35 -07005## my_prefix TARGET_ or HOST_
Colin Crosse6e48f62014-03-21 12:29:32 -07006## my_module_multilib
Ying Wang6feb6d52014-04-17 10:03:35 -07007## 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
Colin Cross8e404122014-02-06 14:45:37 -080011##
12## Inputs from build system:
Ying Wang6feb6d52014-04-17 10:03:35 -070013## $(my_prefix)IS_64_BIT
Colin Cross8e404122014-02-06 14:45:37 -080014## LOCAL_2ND_ARCH_VAR_PREFIX
15##
16## Outputs:
17## my_module_arch_supported := (true|false)
18###########################################################
19
20my_module_arch_supported := true
21
Colin Crosse6e48f62014-03-21 12:29:32 -070022ifeq ($(my_module_multilib),none)
23my_module_arch_supported := false
24endif
25
Colin Cross8e404122014-02-06 14:45:37 -080026ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
Ying Wang6feb6d52014-04-17 10:03:35 -070027ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32)
Colin Cross8e404122014-02-06 14:45:37 -080028my_module_arch_supported := false
Ying Wang6feb6d52014-04-17 10:03:35 -070029else ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),|64)
Colin Crossdc1c95a2014-04-10 11:28:04 -070030my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080031endif
32else # LOCAL_2ND_ARCH_VAR_PREFIX
Colin Crosse6e48f62014-03-21 12:29:32 -070033ifeq ($(my_module_multilib),first)
Colin Cross8e404122014-02-06 14:45:37 -080034my_module_arch_supported := false
Colin Crossdc1c95a2014-04-10 11:28:04 -070035else ifeq ($(my_module_multilib),64)
36my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080037endif
Colin Crosse6e48f62014-03-21 12:29:32 -070038endif # LOCAL_2ND_ARCH_VAR_PREFIX
Colin Cross8e404122014-02-06 14:45:37 -080039
Ying Wang6feb6d52014-04-17 10:03:35 -070040ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH))
41ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH)))
Colin Cross8e404122014-02-06 14:45:37 -080042my_module_arch_supported := false
43endif
44endif
45
Ying Wang6feb6d52014-04-17 10:03:35 -070046ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH_WARN))
47ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH_WARN)))
Colin Cross8e404122014-02-06 14:45:37 -080048my_module_arch_supported := false
Ying Wang6feb6d52014-04-17 10:03:35 -070049$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
Colin Cross8e404122014-02-06 14:45:37 -080050endif
51endif
52
Ying Wang6feb6d52014-04-17 10:03:35 -070053ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH)))
Colin Cross8e404122014-02-06 14:45:37 -080054my_module_arch_supported := false
55endif
56
Ying Wang6feb6d52014-04-17 10:03:35 -070057ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN)))
Colin Cross8e404122014-02-06 14:45:37 -080058my_module_arch_supported := false
Ying Wang6feb6d52014-04-17 10:03:35 -070059$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
Colin Cross8e404122014-02-06 14:45:37 -080060endif