blob: ddfd67dfd14b86d46f92cde6313425f377969aac [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:
5## LOCAL_32_BIT_ONLY
6## LOCAL_NO_2ND_ARCH
7## LOCAL_MODULE_TARGET_ARCH
8## LOCAL_MODULE_TARGET_ARCH_WARN
9## LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH
10## LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN
11##
12## Inputs from build system:
13## TARGET_IS_64_BIT
14## LOCAL_2ND_ARCH_VAR_PREFIX
15##
16## Outputs:
17## my_module_arch_supported := (true|false)
18###########################################################
19
20my_module_arch_supported := true
21
22ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
23ifeq ($(TARGET_IS_64_BIT)|$(LOCAL_32_BIT_ONLY),true|true)
24my_module_arch_supported := false
Colin Cross02e31d22014-01-24 13:38:08 -080025else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
26my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080027endif
28else # LOCAL_2ND_ARCH_VAR_PREFIX
29ifeq ($(LOCAL_NO_2ND_ARCH),true)
30my_module_arch_supported := false
31endif
32endif # !LOCAL_2ND_ARCH_VAR_PREFIX
33
34ifneq (,$(LOCAL_MODULE_TARGET_ARCH))
35ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH)))
36my_module_arch_supported := false
37endif
38endif
39
40ifneq (,$(LOCAL_MODULE_TARGET_ARCH_WARN))
41ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH_WARN)))
42my_module_arch_supported := false
43$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
44endif
45endif
46
47ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH)))
48my_module_arch_supported := false
49endif
50
51ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN)))
52my_module_arch_supported := false
53$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
54endif