blob: 0861a79bc71818aa92985019f4f31cc7d44f55e4 [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.
3# By default, an package is built for TARGET_ARCH.
Colin Crosse6e48f62014-03-21 12:29:32 -07004# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32".
5
Ying Wang6feb6d52014-04-17 10:03:35 -07006my_prefix := TARGET_
Colin Crosse6e48f62014-03-21 12:29:32 -07007include $(BUILD_SYSTEM)/multilib.mk
8
Colin Cross17509442014-04-10 11:29:05 -07009ifeq ($(TARGET_SUPPORTS_32_BIT_APPS)|$(TARGET_SUPPORTS_64_BIT_APPS),true|true)
10 # packages default to building for either architecture,
11 # the preferred if its supported, otherwise the non-preferred.
12else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true)
13 # only 64-bit apps supported
14 ifeq ($(filter $(my_module_multilib),64 both first),$(my_module_multilib))
15 # if my_module_multilib was 64, both, first, or unset, build for 64-bit
16 my_module_multilib := 64
17 else
18 # otherwise don't build this app
19 my_module_multilib := none
20 endif
21else
22 # only 32-bit apps supported
23 ifeq ($(filter $(my_module_multilib),32 both),$(my_module_multilib))
24 # if my_module_multilib was 32, both, or unset, build for 32-bit
25 my_module_multilib := 32
26 else ifeq ($(my_module_multilib),first)
27 ifndef TARGET_IS_64_BIT
28 # if my_module_multilib was first and this is a 32-bit build, build for
29 # 32-bit
30 my_module_multilib := 32
31 else
32 # if my_module_multilib was first and this is a 64-bit build, don't build
33 # this app
34 my_module_multilib := none
35 endif
36 else
37 # my_module_mulitlib was 64 or none, don't build this app
38 my_module_multilib := none
39 endif
40endif
41
Colin Cross58d879f2014-02-04 11:16:16 -080042LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true
43
Colin Crossa3339e92014-04-30 18:09:13 -070044# if TARGET_PREFER_32_BIT_APPS is set, try to build 32-bit first
Colin Crossd3624d52014-04-10 12:28:56 -070045ifdef TARGET_2ND_ARCH
Colin Crossa3339e92014-04-30 18:09:13 -070046ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
Colin Crossd3624d52014-04-10 12:28:56 -070047LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)
48else
Colin Cross8e404122014-02-06 14:45:37 -080049LOCAL_2ND_ARCH_VAR_PREFIX :=
Colin Crossd3624d52014-04-10 12:28:56 -070050endif
51endif
52
53# check if preferred arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080054include $(BUILD_SYSTEM)/module_arch_supported.mk
55ifeq ($(my_module_arch_supported),true)
Colin Crosse6e48f62014-03-21 12:29:32 -070056# first arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080057include $(BUILD_SYSTEM)/package_internal.mk
58else ifneq (,$(TARGET_2ND_ARCH))
Colin Crossd3624d52014-04-10 12:28:56 -070059# check if the non-preferred arch is the primary or secondary
Colin Crossa3339e92014-04-30 18:09:13 -070060ifeq ($(TARGET_PREFER_32_BIT_APPS),true)
Colin Crossd3624d52014-04-10 12:28:56 -070061LOCAL_2ND_ARCH_VAR_PREFIX :=
62else
Colin Cross8e404122014-02-06 14:45:37 -080063LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)
Colin Crossd3624d52014-04-10 12:28:56 -070064endif
65
66# check if non-preferred arch is supported
Colin Cross8e404122014-02-06 14:45:37 -080067include $(BUILD_SYSTEM)/module_arch_supported.mk
68ifeq ($(my_module_arch_supported),true)
69# secondary arch is supported
70include $(BUILD_SYSTEM)/package_internal.mk
Joe Onorato899e62a2010-02-04 17:37:21 -080071endif
Colin Cross8e404122014-02-06 14:45:37 -080072endif # TARGET_2ND_ARCH
Colin Cross58d879f2014-02-04 11:16:16 -080073
Colin Cross2343cfb2014-01-24 13:33:39 -080074LOCAL_2ND_ARCH_VAR_PREFIX :=
Colin Cross8e404122014-02-06 14:45:37 -080075LOCAL_NO_2ND_ARCH_MODULE_SUFFIX :=
76
77my_module_arch_supported :=