blob: 854e0093c66156fc36d9b90a866dcebc7e46f530 [file] [log] [blame]
Colin Cross8e404122014-02-06 14:45:37 -08001# We don't automatically set up rules to build packages for both
2# TARGET_ARCH and TARGET_2ND_ARCH.
Colin Crosse6e48f62014-03-21 12:29:32 -07003# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32".
4
Dan Willemsen3bf15e72016-07-25 16:03:53 -07005$(call record-module-type,PACKAGE)
6
Ying Wang6feb6d52014-04-17 10:03:35 -07007my_prefix := TARGET_
Colin Crosse6e48f62014-03-21 12:29:32 -07008include $(BUILD_SYSTEM)/multilib.mk
9
Dan Willemsen2e3c3cf2017-04-20 10:59:06 -070010ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true)
Anton Hansson133fcb22018-06-28 13:31:02 +010011 ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
12 my_module_multilib := first
13 else ifneq ($(my_module_multilib),64)
Dan Willemsen2e3c3cf2017-04-20 10:59:06 -070014 my_module_multilib := first
15 endif
16endif
17
Colin Cross17509442014-04-10 11:29:05 -070018ifeq ($(TARGET_SUPPORTS_32_BIT_APPS)|$(TARGET_SUPPORTS_64_BIT_APPS),true|true)
19 # packages default to building for either architecture,
20 # the preferred if its supported, otherwise the non-preferred.
21else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
22 # only 64-bit apps supported
23 ifeq ($(filter $(my_module_multilib),64 both first),$(my_module_multilib))
24 # if my_module_multilib was 64, both, first, or unset, build for 64-bit
25 my_module_multilib := 64
26 else
27 # otherwise don't build this app
28 my_module_multilib := none
29 endif
30else
31 # only 32-bit apps supported
32 ifeq ($(filter $(my_module_multilib),32 both),$(my_module_multilib))
33 # if my_module_multilib was 32, both, or unset, build for 32-bit
34 my_module_multilib := 32
35 else ifeq ($(my_module_multilib),first)
36 ifndef TARGET_IS_64_BIT
37 # if my_module_multilib was first and this is a 32-bit build, build for
38 # 32-bit
39 my_module_multilib := 32
40 else
41 # if my_module_multilib was first and this is a 64-bit build, don't build
42 # this app
43 my_module_multilib := none
44 endif
45 else
46 # my_module_mulitlib was 64 or none, don't build this app
47 my_module_multilib := none
48 endif
49endif
50
Colin Cross58d879f2014-02-04 11:16:16 -080051LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true
52
Colin Crossa3339e92014-04-30 18:09:13 -070053# if TARGET_PREFER_32_BIT_APPS is set, try to build 32-bit first
Colin Crossd3624d52014-04-10 12:28:56 -070054ifdef TARGET_2ND_ARCH
Colin Crossa3339e92014-04-30 18:09:13 -070055ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
Colin Crossd3624d52014-04-10 12:28:56 -070056LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)
57else
Colin Cross8e404122014-02-06 14:45:37 -080058LOCAL_2ND_ARCH_VAR_PREFIX :=
Colin Crossd3624d52014-04-10 12:28:56 -070059endif
60endif
61
62# check if preferred arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080063include $(BUILD_SYSTEM)/module_arch_supported.mk
64ifeq ($(my_module_arch_supported),true)
Colin Crosse6e48f62014-03-21 12:29:32 -070065# first arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080066include $(BUILD_SYSTEM)/package_internal.mk
67else ifneq (,$(TARGET_2ND_ARCH))
Colin Crossd3624d52014-04-10 12:28:56 -070068# check if the non-preferred arch is the primary or secondary
Colin Crossa3339e92014-04-30 18:09:13 -070069ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
Colin Crossd3624d52014-04-10 12:28:56 -070070LOCAL_2ND_ARCH_VAR_PREFIX :=
71else
Colin Cross8e404122014-02-06 14:45:37 -080072LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)
Colin Crossd3624d52014-04-10 12:28:56 -070073endif
74
75# check if non-preferred arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080076include $(BUILD_SYSTEM)/module_arch_supported.mk
77ifeq ($(my_module_arch_supported),true)
78# secondary arch is supported
79include $(BUILD_SYSTEM)/package_internal.mk
Joe Onorato899e62a2010-02-04 17:37:21 -080080endif
Colin Cross8e404122014-02-06 14:45:37 -080081endif # TARGET_2ND_ARCH
Colin Cross58d879f2014-02-04 11:16:16 -080082
Colin Cross2343cfb2014-01-24 13:33:39 -080083LOCAL_2ND_ARCH_VAR_PREFIX :=
Colin Cross8e404122014-02-06 14:45:37 -080084LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
85
86my_module_arch_supported :=