OSDN Git Service

am b0580df3: Merge "template changes for new sdk download pages; remove tools/ page...
[android-x86/build.git] / core / module_arch_supported.mk
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
20 my_module_arch_supported := true
21
22 ifeq ($(my_module_multilib),none)
23 my_module_arch_supported := false
24 endif
25
26 ifeq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
27 ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32)
28 my_module_arch_supported := false
29 else ifeq ($($(my_prefix)IS_64_BIT)|$(my_module_multilib),|64)
30 my_module_arch_supported := false
31 else ifeq ($(call directory_is_64_bit_blacklisted,$(LOCAL_PATH)),true)
32 my_module_arch_supported := false
33 endif
34 else # LOCAL_2ND_ARCH_VAR_PREFIX
35 ifeq ($(my_module_multilib),first)
36 my_module_arch_supported := false
37 else ifeq ($(my_module_multilib),64)
38 my_module_arch_supported := false
39 endif
40 endif # LOCAL_2ND_ARCH_VAR_PREFIX
41
42 ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH))
43 ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH)))
44 my_module_arch_supported := false
45 endif
46 endif
47
48 ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH_WARN))
49 ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH_WARN)))
50 my_module_arch_supported := false
51 $(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
52 endif
53 endif
54
55 ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH)))
56 my_module_arch_supported := false
57 endif
58
59 ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN)))
60 my_module_arch_supported := false
61 $(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
62 endif