blob: 753a29ec42b4564ab445dc36030bb49a2675d7ac [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:
Colin Crosse6e48f62014-03-21 12:29:32 -07005## my_module_multilib
Colin Cross8e404122014-02-06 14:45:37 -08006## LOCAL_MODULE_TARGET_ARCH
7## LOCAL_MODULE_TARGET_ARCH_WARN
8## LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH
9## LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN
10##
11## Inputs from build system:
12## TARGET_IS_64_BIT
13## LOCAL_2ND_ARCH_VAR_PREFIX
14##
15## Outputs:
16## my_module_arch_supported := (true|false)
17###########################################################
18
19my_module_arch_supported := true
20
Colin Crosse6e48f62014-03-21 12:29:32 -070021ifeq ($(my_module_multilib),none)
22my_module_arch_supported := false
23endif
24
Colin Cross8e404122014-02-06 14:45:37 -080025ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
Colin Crosse6e48f62014-03-21 12:29:32 -070026ifeq ($(TARGET_IS_64_BIT)|$(my_module_multilib),true|32)
Colin Cross8e404122014-02-06 14:45:37 -080027my_module_arch_supported := false
Colin Crossdc1c95a2014-04-10 11:28:04 -070028else ifeq ($(TARGET_IS_64_BIT)|$(my_module_multilib),|64)
29my_module_arch_supported := false
Colin Cross02e31d22014-01-24 13:38:08 -080030else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
31my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080032endif
33else # LOCAL_2ND_ARCH_VAR_PREFIX
Colin Crosse6e48f62014-03-21 12:29:32 -070034ifeq ($(my_module_multilib),first)
Colin Cross8e404122014-02-06 14:45:37 -080035my_module_arch_supported := false
Colin Crossdc1c95a2014-04-10 11:28:04 -070036else ifeq ($(my_module_multilib),64)
37my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080038endif
Colin Crosse6e48f62014-03-21 12:29:32 -070039endif # LOCAL_2ND_ARCH_VAR_PREFIX
Colin Cross8e404122014-02-06 14:45:37 -080040
41ifneq (,$(LOCAL_MODULE_TARGET_ARCH))
42ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH)))
43my_module_arch_supported := false
44endif
45endif
46
47ifneq (,$(LOCAL_MODULE_TARGET_ARCH_WARN))
48ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH_WARN)))
49my_module_arch_supported := false
50$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
51endif
52endif
53
54ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH)))
55my_module_arch_supported := false
56endif
57
58ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN)))
59my_module_arch_supported := false
60$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
61endif