module_arch_supported.mk revision e6e48f67d8fac2b5a29dbfeb1ad40610a451b792
1###########################################################
2## Determine if a module can be built for an arch
3##
4## Inputs from module makefile:
5## my_module_multilib
6## 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
21ifeq ($(my_module_multilib),none)
22my_module_arch_supported := false
23endif
24
25ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
26ifeq ($(TARGET_IS_64_BIT)|$(my_module_multilib),true|32)
27my_module_arch_supported := false
28else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
29my_module_arch_supported := false
30endif
31else # LOCAL_2ND_ARCH_VAR_PREFIX
32ifeq ($(my_module_multilib),first)
33my_module_arch_supported := false
34endif
35endif # LOCAL_2ND_ARCH_VAR_PREFIX
36
37ifneq (,$(LOCAL_MODULE_TARGET_ARCH))
38ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH)))
39my_module_arch_supported := false
40endif
41endif
42
43ifneq (,$(LOCAL_MODULE_TARGET_ARCH_WARN))
44ifeq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_TARGET_ARCH_WARN)))
45my_module_arch_supported := false
46$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
47endif
48endif
49
50ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH)))
51my_module_arch_supported := false
52endif
53
54ifneq (,$(filter $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_TARGET_ARCH_WARN)))
55my_module_arch_supported := false
56$(warning $(LOCAL_MODULE): architecture $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
57endif
58