blob: 62e2643312b076055fd913a6e35f4bc2f32cf159 [file] [log] [blame]
Colin Cross8e404122014-02-06 14:45:37 -08001###########################################################
2## Determine if a module can be built for an arch
3##
4## Inputs from module makefile:
Ying Wang6feb6d52014-04-17 10:03:35 -07005## my_prefix TARGET_ or HOST_
Colin Crosse6e48f62014-03-21 12:29:32 -07006## my_module_multilib
Ying Wang6feb6d52014-04-17 10:03:35 -07007## 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
Dan Willemsen859ac342015-08-14 12:59:06 -070011## LOCAL_IS_HOST_MODULE
12## LOCAL_MODULE_HOST_OS
Colin Cross8e404122014-02-06 14:45:37 -080013##
14## Inputs from build system:
Dan Willemsend6e3b842016-02-09 14:55:13 -080015## $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT
Colin Cross8e404122014-02-06 14:45:37 -080016## LOCAL_2ND_ARCH_VAR_PREFIX
17##
18## Outputs:
19## my_module_arch_supported := (true|false)
20###########################################################
21
22my_module_arch_supported := true
23
Colin Crosse6e48f62014-03-21 12:29:32 -070024ifeq ($(my_module_multilib),none)
25my_module_arch_supported := false
26endif
27
Dan Willemsend6e3b842016-02-09 14:55:13 -080028ifeq ($($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT)|$(my_module_multilib),true|32)
Colin Crossdc1c95a2014-04-10 11:28:04 -070029my_module_arch_supported := false
Colin Cross8e404122014-02-06 14:45:37 -080030endif
Dan Willemsend6e3b842016-02-09 14:55:13 -080031ifeq ($($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT)|$(my_module_multilib),|64)
32my_module_arch_supported := false
33endif
34
35ifneq ($(LOCAL_2ND_ARCH_VAR_PREFIX),)
Colin Crosse6e48f62014-03-21 12:29:32 -070036ifeq ($(my_module_multilib),first)
Colin Cross8e404122014-02-06 14:45:37 -080037my_module_arch_supported := false
38endif
Dan Willemsend6e3b842016-02-09 14:55:13 -080039endif
Colin Cross8e404122014-02-06 14:45:37 -080040
Ying Wang6feb6d52014-04-17 10:03:35 -070041ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH))
42ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH)))
Colin Cross8e404122014-02-06 14:45:37 -080043my_module_arch_supported := false
44endif
45endif
46
Ying Wang6feb6d52014-04-17 10:03:35 -070047ifneq (,$(LOCAL_MODULE_$(my_prefix)ARCH_WARN))
48ifeq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH_WARN)))
Colin Cross8e404122014-02-06 14:45:37 -080049my_module_arch_supported := false
Ying Wang6feb6d52014-04-17 10:03:35 -070050$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) not supported)
Colin Cross8e404122014-02-06 14:45:37 -080051endif
52endif
53
Ying Wang6feb6d52014-04-17 10:03:35 -070054ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH)))
Colin Cross8e404122014-02-06 14:45:37 -080055my_module_arch_supported := false
56endif
57
Ying Wang6feb6d52014-04-17 10:03:35 -070058ifneq (,$(filter $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH),$(LOCAL_MODULE_UNSUPPORTED_$(my_prefix)ARCH_WARN)))
Colin Cross8e404122014-02-06 14:45:37 -080059my_module_arch_supported := false
Ying Wang6feb6d52014-04-17 10:03:35 -070060$(warning $(LOCAL_MODULE): architecture $($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH) unsupported)
Colin Cross8e404122014-02-06 14:45:37 -080061endif
Dan Willemsen859ac342015-08-14 12:59:06 -070062
63ifdef LOCAL_IS_HOST_MODULE
64ifneq (,$(LOCAL_MODULE_HOST_OS))
65 ifeq (,$(filter $($(my_prefix)OS),$(LOCAL_MODULE_HOST_OS)))
66 my_module_arch_supported := false
67 endif
68else ifeq ($($(my_prefix)OS),windows)
69 # If LOCAL_MODULE_HOST_OS is empty, only linux and darwin are supported
70 my_module_arch_supported := false
71endif
72endif