aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYing Wang <wangying@google.com>2014-05-17 03:03:43 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2014-05-17 03:03:44 +0000
commit4636abe5899272e1e9051e2c98516409107c4e8c (patch)
treededdb8c379c5cd2945218d69b37a380f552f7741
parent5ee3f0960dbc6a14333e3b98252d59f5d8d18a7d (diff)
parent34d5f1b27e862bf0653d89b9111d38f7de1f9c95 (diff)
downloadbuild-4636abe5899272e1e9051e2c98516409107c4e8c.tar.gz
Merge "Real "LOCAL_MULTILIB := both" for prebuilts"
-rw-r--r--core/multilib.mk2
-rw-r--r--core/package.mk1
-rw-r--r--core/prebuilt.mk26
-rw-r--r--core/prebuilt_internal.mk8
4 files changed, 26 insertions, 11 deletions
diff --git a/core/multilib.mk b/core/multilib.mk
index f630c94430..a3ced65d2c 100644
--- a/core/multilib.mk
+++ b/core/multilib.mk
@@ -1,4 +1,4 @@
-# Translate LOCAL_32_BIT_ONLY and LOCAL_NO_2ND_ARCH to LOCAL_MULTILIB,
+# Translate LOCAL_32_BIT_ONLY to LOCAL_MULTILIB,
# and check LOCAL_MULTILIB is a valid value. Returns module's multilib
# setting in my_module_multilib, or empty if not set.
diff --git a/core/package.mk b/core/package.mk
index 0861a79bc7..78b65db107 100644
--- a/core/package.mk
+++ b/core/package.mk
@@ -1,6 +1,5 @@
# We don't automatically set up rules to build packages for both
# TARGET_ARCH and TARGET_2ND_ARCH.
-# By default, an package is built for TARGET_ARCH.
# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32".
my_prefix := TARGET_
diff --git a/core/prebuilt.mk b/core/prebuilt.mk
index c280900af6..33f5dc6c2f 100644
--- a/core/prebuilt.mk
+++ b/core/prebuilt.mk
@@ -14,26 +14,36 @@ endif
include $(BUILD_SYSTEM)/multilib.mk
-ifndef my_module_multilib
-# prebuilts default to building for either architecture,
-# the first if its supported, otherwise the second.
-my_module_multilib := both
-endif
+my_skip_non_preferred_arch :=
# check if first arch is supported
include $(BUILD_SYSTEM)/module_arch_supported.mk
ifeq ($(my_module_arch_supported),true)
# first arch is supported
include $(BUILD_SYSTEM)/prebuilt_internal.mk
-else ifneq (,$($(my_prefix)2ND_ARCH))
+ifneq ($(my_module_multilib),both)
+my_skip_non_preferred_arch := true
+endif # $(my_module_multilib)
+endif # $(my_module_arch_supported)
+
+ifndef my_skip_non_preferred_arch
+ifneq (,$($(my_prefix)2ND_ARCH))
# check if secondary arch is supported
LOCAL_2ND_ARCH_VAR_PREFIX := $($(my_prefix)2ND_ARCH_VAR_PREFIX)
include $(BUILD_SYSTEM)/module_arch_supported.mk
ifeq ($(my_module_arch_supported),true)
# secondary arch is supported
+OVERRIDE_BUILT_MODULE_PATH :=
+LOCAL_BUILT_MODULE :=
+LOCAL_INSTALLED_MODULE :=
+LOCAL_MODULE_STEM :=
+LOCAL_BUILT_MODULE_STEM :=
+LOCAL_INSTALLED_MODULE_STEM :=
+LOCAL_INTERMEDIATE_TARGETS :=
include $(BUILD_SYSTEM)/prebuilt_internal.mk
-endif
-endif # $(my_prefix)2ND_ARCH
+endif # $(my_module_arch_supported)
+endif # $($(my_prefix)2ND_ARCH)
+endif # $(my_skip_non_preferred_arch) not true
LOCAL_2ND_ARCH_VAR_PREFIX :=
diff --git a/core/prebuilt_internal.mk b/core/prebuilt_internal.mk
index 089cc6300f..f63d29184c 100644
--- a/core/prebuilt_internal.mk
+++ b/core/prebuilt_internal.mk
@@ -19,13 +19,19 @@ endif
# Not much sense to check build prebuilts
LOCAL_DONT_CHECK_MODULE := true
+my_32_64_bit_suffix := $(if $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)IS_64_BIT),64,32)
+
ifdef LOCAL_PREBUILT_MODULE_FILE
my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE)
else
ifdef LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))
else
- my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
+ ifdef LOCAL_SRC_FILES_$(my_32_64_bit_suffix)
+ my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$(my_32_64_bit_suffix))
+ else
+ my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
+ endif
endif
endif