module_arch_supported.mk revision 02e31d240a9044b54ee793902ad958894f84e7a1
1###########################################################
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
25else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
26my_module_arch_supported := false
27endif
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
55