module_arch_supported.mk revision 6feb6d5607ce86a446645564212043964628f540
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##
12## Inputs from build system:
13## $(my_prefix)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 ($(my_module_multilib),none)
23my_module_arch_supported := false
24endif
25
26ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
27ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32)
28my_module_arch_supported := false
29else ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),|64)
30my_module_arch_supported := false
31else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
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