module_arch_supported.mk revision 8e4041271dcee2aff001ac1f98527c5057415183
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
25endif
26else # LOCAL_2ND_ARCH_VAR_PREFIX
27ifeq ($(LOCAL_NO_2ND_ARCH),true)
28my_module_arch_supported := false
29endif
30endif # !LOCAL_2ND_ARCH_VAR_PREFIX
31
32ifneq (,$(LOCAL_MODULE_TARGET_ARCH))
33ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH)))
34my_module_arch_supported := false
35endif
36endif
37
38ifneq (,$(LOCAL_MODULE_TARGET_ARCH_WARN))
39ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH_WARN)))
40my_module_arch_supported := false
41$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
42endif
43endif
44
45ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH)))
46my_module_arch_supported := false
47endif
48
49ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN)))
50my_module_arch_supported := false
51$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
52endif
53