From 2343cfbe3d60994d64ba57fa3c106557dab88e52 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 24 Jan 2014 13:33:39 -0800 Subject: [PATCH 1/3] Set up rules to build packages for TARGET_2ND_ARCH Packages built for the 2nd arch will depend on jni libraries build for the 2nd arch. Change-Id: Ic9594718849b2577920c500c35d46150eb948c8d --- core/package.mk | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/core/package.mk b/core/package.mk index 56f2dab4f6..53192b4738 100644 --- a/core/package.mk +++ b/core/package.mk @@ -25,6 +25,11 @@ ## be set for you. ########################################################### +ifeq ($(TARGET_IS_64_BIT)|$(LOCAL_32BIT_ONLY),true|true) +LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) +else +LOCAL_2ND_ARCH_VAR_PREFIX := +endif # If this makefile is being read from within an inheritance, # use the new values. @@ -306,7 +311,7 @@ endif # full_classes_jar so_suffix := $($(my_prefix)SHLIB_SUFFIX) jni_shared_libraries := \ - $(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ + $(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \ $(addsuffix $(so_suffix), \ $(LOCAL_JNI_SHARED_LIBRARIES))) @@ -325,7 +330,7 @@ $(error LOCAL_SDK_VERSION has to be defined together with LOCAL_NDK_STL_VARIANT, LOCAL_PACKAGE_NAME=$(LOCAL_PACKAGE_NAME)) endif jni_shared_libraries += \ - $(HISTORICAL_NDK_VERSIONS_ROOT)/current/sources/cxx-stl/stlport/libs/$(TARGET_CPU_ABI)/libstlport_shared.so + $(HISTORICAL_NDK_VERSIONS_ROOT)/current/sources/cxx-stl/stlport/libs/$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI)/libstlport_shared.so endif # Set the abi directory used by the local JNI shared libraries. @@ -333,7 +338,7 @@ endif # sets where they are stored in the apk.) ifeq ($(LOCAL_JNI_SHARED_LIBRARIES_ABI),) - jni_shared_libraries_abi := $(TARGET_CPU_ABI) + jni_shared_libraries_abi := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI) else jni_shared_libraries_abi := $(LOCAL_JNI_SHARED_LIBRARIES_ABI) endif @@ -468,3 +473,5 @@ endif # skip_definition # Reset internal variables. all_res_assets := + +LOCAL_2ND_ARCH_VAR_PREFIX := From 0b70c4374c89a0d737282bb1a95a1b470c38a467 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 24 Jan 2014 13:34:51 -0800 Subject: [PATCH 2/3] Set up rules to build prebuilts for TARGET_2ND_ARCH Prebuilts built for the 2nd arch will install into 2nd arch directories. Change-Id: I3d020a3c1fb0f2eb0579933f8a66e410e66fdd44 --- core/prebuilt.mk | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/prebuilt.mk b/core/prebuilt.mk index 13d4de72d2..d5fa4ba2aa 100644 --- a/core/prebuilt.mk +++ b/core/prebuilt.mk @@ -16,6 +16,15 @@ ifneq ($(LOCAL_PREBUILT_JAVA_LIBRARIES),) $(error dont use LOCAL_PREBUILT_JAVA_LIBRARIES anymore LOCAL_PATH=$(LOCAL_PATH)) endif +ifneq ($(TARGET_IS_64_BIT)|$(LOCAL_32BIT_ONLY),true|true) +# Build for TARGET_ARCH +LOCAL_2ND_ARCH_VAR_PREFIX := +else +# Build for TARGET_2ND_ARCH +LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) +endif + + # Not much sense to check build prebuilts LOCAL_DONT_CHECK_MODULE := true @@ -33,7 +42,7 @@ endif ifeq (SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS)) # Put the built targets of all shared libraries in a common directory # to simplify the link line. - OVERRIDE_BUILT_MODULE_PATH := $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES) + OVERRIDE_BUILT_MODULE_PATH := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES) endif ifneq ($(filter STATIC_LIBRARIES SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS)),) @@ -213,3 +222,5 @@ endif # TARGET JAVA_LIBRARIES $(built_module) : $(LOCAL_ADDITIONAL_DEPENDENCIES) my_prebuilt_src_file := + +LOCAL_2ND_ARCH_VAR_PREFIX := From d9574462d8fca342d451cb9ead643011b3c01b0a Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 24 Jan 2014 13:37:07 -0800 Subject: [PATCH 3/3] Add 2nd arch directories for apps Apps built for 2nd arch install in the same directories as when built for the 1st arch. Change-Id: Ib1d950e186eef88212b44d04e6bc6c30a3d56155 --- core/envsetup.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/envsetup.mk b/core/envsetup.mk index fb524a4f49..a348eb7dd6 100644 --- a/core/envsetup.mk +++ b/core/envsetup.mk @@ -239,6 +239,8 @@ $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TA $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATE_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES)/lib $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES := $(TARGET_OUT)/lib $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS := $(TARGET_OUT_APPS) +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_APPS_PRIVILEGED := $(TARGET_OUT_APPS_PRIVILEGED) TARGET_OUT_DATA := $(PRODUCT_OUT)/$(TARGET_COPY_OUT_DATA) TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_EXECUTABLES) @@ -253,6 +255,7 @@ TARGET_OUT_DATA_FAKE := $(TARGET_OUT_DATA)/fake_packages $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_EXECUTABLES := $(TARGET_OUT_DATA_EXECUTABLES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_SHARED_LIBRARIES := $($(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_SHARED_LIBRARIES) +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_DATA_APPS := $(TARGET_OUT_DATA_APPS) TARGET_OUT_CACHE := $(PRODUCT_OUT)/cache @@ -270,6 +273,7 @@ TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_EXECUTABLES := $(TARGET_OUT_VENDOR_EXECUTABLES) $(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib +$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR_APPS) TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin