diff options
author | Ying Wang <wangying@google.com> | 2014-05-16 10:38:43 -0700 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2014-05-16 10:49:57 -0700 |
commit | 34d5f1b27e862bf0653d89b9111d38f7de1f9c95 (patch) | |
tree | c9e85e8fb1e8c46923373dfce4e67163ed84cdce | |
parent | 6374153fbf008f39ef5de03120de2b218d1d0701 (diff) | |
download | build-34d5f1b27e862bf0653d89b9111d38f7de1f9c95.zip build-34d5f1b27e862bf0653d89b9111d38f7de1f9c95.tar.gz build-34d5f1b27e862bf0653d89b9111d38f7de1f9c95.tar.bz2 |
Real "LOCAL_MULTILIB := both" for prebuilts
This uses the fact that unsetting LOCAL_MULTILIB equals "either".
It's useful to build for both 32-bit and 64-bit in the same prebuilt
module definition.
Bug: 13751317
Change-Id: I4f1625a83e13f22f807039afebae73f69ed35918
-rw-r--r-- | core/multilib.mk | 2 | ||||
-rw-r--r-- | core/package.mk | 1 | ||||
-rw-r--r-- | core/prebuilt.mk | 26 | ||||
-rw-r--r-- | core/prebuilt_internal.mk | 8 |
4 files changed, 26 insertions, 11 deletions
diff --git a/core/multilib.mk b/core/multilib.mk index f630c94..a3ced65 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 0861a79..78b65db 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 c280900..33f5dc6 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 089cc63..f63d291 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 |