Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 34d5f1b2 authored by Ying Wang's avatar Ying Wang
Browse files

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
parent 6374153f
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
# 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
# and check LOCAL_MULTILIB is a valid value.  Returns module's multilib
# setting in my_module_multilib, or empty if not set.
# setting in my_module_multilib, or empty if not set.


+0 −1
Original line number Original line Diff line number Diff line
# We don't automatically set up rules to build packages for both
# We don't automatically set up rules to build packages for both
# TARGET_ARCH and TARGET_2ND_ARCH.
# 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".
# To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_MULTILIB := 32".


my_prefix := TARGET_
my_prefix := TARGET_
+18 −8
Original line number Original line Diff line number Diff line
@@ -14,26 +14,36 @@ endif


include $(BUILD_SYSTEM)/multilib.mk
include $(BUILD_SYSTEM)/multilib.mk


ifndef my_module_multilib
my_skip_non_preferred_arch :=
# prebuilts default to building for either architecture,
# the first if its supported, otherwise the second.
my_module_multilib := both
endif


# check if first arch is supported
# check if first arch is supported
include $(BUILD_SYSTEM)/module_arch_supported.mk
include $(BUILD_SYSTEM)/module_arch_supported.mk
ifeq ($(my_module_arch_supported),true)
ifeq ($(my_module_arch_supported),true)
# first arch is supported
# first arch is supported
include $(BUILD_SYSTEM)/prebuilt_internal.mk
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
# check if secondary arch is supported
LOCAL_2ND_ARCH_VAR_PREFIX := $($(my_prefix)2ND_ARCH_VAR_PREFIX)
LOCAL_2ND_ARCH_VAR_PREFIX := $($(my_prefix)2ND_ARCH_VAR_PREFIX)
include $(BUILD_SYSTEM)/module_arch_supported.mk
include $(BUILD_SYSTEM)/module_arch_supported.mk
ifeq ($(my_module_arch_supported),true)
ifeq ($(my_module_arch_supported),true)
# secondary arch is supported
# 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
include $(BUILD_SYSTEM)/prebuilt_internal.mk
endif
endif # $(my_module_arch_supported)
endif # $(my_prefix)2ND_ARCH
endif # $($(my_prefix)2ND_ARCH)
endif # $(my_skip_non_preferred_arch) not true


LOCAL_2ND_ARCH_VAR_PREFIX :=
LOCAL_2ND_ARCH_VAR_PREFIX :=


+7 −1
Original line number Original line Diff line number Diff line
@@ -19,15 +19,21 @@ endif
# Not much sense to check build prebuilts
# Not much sense to check build prebuilts
LOCAL_DONT_CHECK_MODULE := true
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
ifdef LOCAL_PREBUILT_MODULE_FILE
  my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE)
  my_prebuilt_src_file := $(LOCAL_PREBUILT_MODULE_FILE)
else
else
  ifdef LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
  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))
    my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))
  else
    ifdef LOCAL_SRC_FILES_$(my_32_64_bit_suffix)
      my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES_$(my_32_64_bit_suffix))
    else
    else
      my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
      my_prebuilt_src_file := $(LOCAL_PATH)/$(LOCAL_SRC_FILES)
    endif
    endif
  endif
  endif
endif


ifeq (SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS))
ifeq (SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS))
  # Put the built targets of all shared libraries in a common directory
  # Put the built targets of all shared libraries in a common directory