1# We don't automatically set up rules to build packages for both 2# TARGET_ARCH and TARGET_2ND_ARCH. 3# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32". 4 5$(call record-module-type,PACKAGE) 6 7my_prefix := TARGET_ 8include $(BUILD_SYSTEM)/multilib.mk 9 10ifeq ($(TARGET_SUPPORTS_32_BIT_APPS)|$(TARGET_SUPPORTS_64_BIT_APPS),true|true) 11 # packages default to building for either architecture, 12 # the preferred if its supported, otherwise the non-preferred. 13else ifeq ($(TARGET_SUPPORTS_64_BIT_APPS),true) 14 # only 64-bit apps supported 15 ifeq ($(filter $(my_module_multilib),64 both first),$(my_module_multilib)) 16 # if my_module_multilib was 64, both, first, or unset, build for 64-bit 17 my_module_multilib := 64 18 else 19 # otherwise don't build this app 20 my_module_multilib := none 21 endif 22else 23 # only 32-bit apps supported 24 ifeq ($(filter $(my_module_multilib),32 both),$(my_module_multilib)) 25 # if my_module_multilib was 32, both, or unset, build for 32-bit 26 my_module_multilib := 32 27 else ifeq ($(my_module_multilib),first) 28 ifndef TARGET_IS_64_BIT 29 # if my_module_multilib was first and this is a 32-bit build, build for 30 # 32-bit 31 my_module_multilib := 32 32 else 33 # if my_module_multilib was first and this is a 64-bit build, don't build 34 # this app 35 my_module_multilib := none 36 endif 37 else 38 # my_module_mulitlib was 64 or none, don't build this app 39 my_module_multilib := none 40 endif 41endif 42 43LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := true 44 45# if TARGET_PREFER_32_BIT_APPS is set, try to build 32-bit first 46ifdef TARGET_2ND_ARCH 47ifeq ($(TARGET_PREFER_32_BIT_APPS),true) 48LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) 49else 50LOCAL_2ND_ARCH_VAR_PREFIX := 51endif 52endif 53 54# check if preferred arch is supported 55include $(BUILD_SYSTEM)/module_arch_supported.mk 56ifeq ($(my_module_arch_supported),true) 57# first arch is supported 58include $(BUILD_SYSTEM)/package_internal.mk 59else ifneq (,$(TARGET_2ND_ARCH)) 60# check if the non-preferred arch is the primary or secondary 61ifeq ($(TARGET_PREFER_32_BIT_APPS),true) 62LOCAL_2ND_ARCH_VAR_PREFIX := 63else 64LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) 65endif 66 67# check if non-preferred arch is supported 68include $(BUILD_SYSTEM)/module_arch_supported.mk 69ifeq ($(my_module_arch_supported),true) 70# secondary arch is supported 71include $(BUILD_SYSTEM)/package_internal.mk 72endif 73endif # TARGET_2ND_ARCH 74 75LOCAL_2ND_ARCH_VAR_PREFIX := 76LOCAL_NO_2ND_ARCH_MODULE_SUFFIX := 77 78my_module_arch_supported := 79