Loading core/base_rules.mk +5 −1 Original line number Diff line number Diff line Loading @@ -597,7 +597,8 @@ ALL_MODULES.$(my_register_name).BUILT := \ ALL_MODULES.$(my_register_name).INSTALLED := \ $(strip $(ALL_MODULES.$(my_register_name).INSTALLED) $(LOCAL_INSTALLED_MODULE)) ALL_MODULES.$(my_register_name).REQUIRED := \ $(ALL_MODULES.$(my_register_name).REQUIRED) $(LOCAL_REQUIRED_MODULES) $(LOCAL_REQUIRED_MODULES_$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(strip $(ALL_MODULES.$(my_register_name).REQUIRED) $(LOCAL_REQUIRED_MODULES) \ $(LOCAL_REQUIRED_MODULES_$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))) ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS := \ $(ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS) $(event_log_tags) ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \ Loading @@ -608,6 +609,9 @@ ifdef LOCAL_MODULE_OWNER ALL_MODULES.$(my_register_name).OWNER := \ $(sort $(ALL_MODULES.$(my_register_name).OWNER) $(LOCAL_MODULE_OWNER)) endif ifdef LOCAL_2ND_ARCH_VAR_PREFIX ALL_MODULES.$(my_register_name).FOR_2ND_ARCH := true endif INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name) Loading core/executable.mk +6 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,12 @@ # By default, an executable is built for TARGET_ARCH. # To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_32_BIT_ONLY := true". ifeq ($(TARGET_PREFER_32_BIT),true) ifneq ($(LOCAL_NO_2ND_ARCH),true) LOCAL_32_BIT_ONLY := true endif endif ifeq ($(TARGET_IS_64_BIT)|$(LOCAL_32_BIT_ONLY),true|true) LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) else Loading core/main.mk +56 −1 Original line number Diff line number Diff line Loading @@ -571,9 +571,49 @@ CUSTOM_MODULES := \ # APPS:Quake or HOST:SHARED_LIBRARIES:libutils. # BUG: the system image won't know to depend on modules that are # brought in as requirements of other modules. # # Resolve the required module name to 32-bit or 64-bit variant. ifeq ($(TARGET_IS_64_BIT),true) # Get a list of corresponding 32-bit module names, if one exists. define get-32-bit-modules $(strip $(foreach m,$(1),\ $(if $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS),\ $(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX)))) endef # Get a list of corresponding 32-bit module names, if one exists; # otherwise return the original module name define get-32-bit-modules-if-we-can $(strip $(foreach m,$(1),\ $(if $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS),\ $(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX), $(m)))) endef # If a module is built for 32-bit, the required modules must be 32-bit too; # Otherwise if the module is an exectuable or shared library, # the required modules must be 64-bit; # otherwise we require both 64-bit and 32-bit variant, if one exists. $(foreach m,$(ALL_MODULES),\ $(eval r := $(ALL_MODULES.$(m).REQUIRED))\ $(if $(r),\ $(if $(ALL_MODULES.$(m).FOR_2ND_ARCH),\ $(eval r_r := $(call get-32-bit-modules-if-we-can,$(r))),\ $(if $(filter EXECUTABLES SHARED_LIBRARIES,$(ALL_MODULES.$(m).CLASS)),\ $(eval r_r := $(r)),\ $(eval r_r := $(r) $(call get-32-bit-modules,$(r)))\ )\ )\ $(eval ALL_MODULES.$(m).REQUIRED := $(r_r))\ )\ ) r_r := endif define add-required-deps $(1): | $(2) endef $(foreach m,$(ALL_MODULES), \ $(eval r := $(ALL_MODULES.$(m).REQUIRED)) \ $(if $(r), \ Loading Loading @@ -628,11 +668,26 @@ add-required-deps := ifdef FULL_BUILD # The base list of modules to build for this product is specified # by the appropriate product definition file, which was included # by product_config.make. # by product_config.mk. product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) # Filter out the overridden packages before doing expansion product_MODULES := $(filter-out $(foreach p, $(product_MODULES), \ $(PACKAGES.$(p).OVERRIDES)), $(product_MODULES)) # Resolve the :32 :64 module name modules_32 := $(patsubst %:32,%,$(filter %:32, $(product_MODULES))) modules_64 := $(patsubst %:64,%,$(filter %:64, $(product_MODULES))) modules_rest := $(filter-out %:32 %:64,$(product_MODULES)) ifeq ($(TARGET_IS_64_BIT),true) product_MODULES := $(addsuffix $(TARGET_2ND_ARCH_MODULE_SUFFIX),$(modules_32)) product_MODULES += $(modules_64) # For the rest we add both product_MODULES += $(call get-32-bit-modules, $(modules_rest)) product_MODULES += $(modules_rest) else product_MODULES := $(modules_32) $(modules_64) $(modules_rest) endif $(call expand-required-modules,product_MODULES,$(product_MODULES)) product_FILES := $(call module-installed-files, $(product_MODULES)) ifeq (0,1) Loading Loading
core/base_rules.mk +5 −1 Original line number Diff line number Diff line Loading @@ -597,7 +597,8 @@ ALL_MODULES.$(my_register_name).BUILT := \ ALL_MODULES.$(my_register_name).INSTALLED := \ $(strip $(ALL_MODULES.$(my_register_name).INSTALLED) $(LOCAL_INSTALLED_MODULE)) ALL_MODULES.$(my_register_name).REQUIRED := \ $(ALL_MODULES.$(my_register_name).REQUIRED) $(LOCAL_REQUIRED_MODULES) $(LOCAL_REQUIRED_MODULES_$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(strip $(ALL_MODULES.$(my_register_name).REQUIRED) $(LOCAL_REQUIRED_MODULES) \ $(LOCAL_REQUIRED_MODULES_$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH))) ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS := \ $(ALL_MODULES.$(my_register_name).EVENT_LOG_TAGS) $(event_log_tags) ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \ Loading @@ -608,6 +609,9 @@ ifdef LOCAL_MODULE_OWNER ALL_MODULES.$(my_register_name).OWNER := \ $(sort $(ALL_MODULES.$(my_register_name).OWNER) $(LOCAL_MODULE_OWNER)) endif ifdef LOCAL_2ND_ARCH_VAR_PREFIX ALL_MODULES.$(my_register_name).FOR_2ND_ARCH := true endif INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name) Loading
core/executable.mk +6 −0 Original line number Diff line number Diff line Loading @@ -3,6 +3,12 @@ # By default, an executable is built for TARGET_ARCH. # To build it for TARGET_2ND_ARCH in a 64bit product, use "LOCAL_32_BIT_ONLY := true". ifeq ($(TARGET_PREFER_32_BIT),true) ifneq ($(LOCAL_NO_2ND_ARCH),true) LOCAL_32_BIT_ONLY := true endif endif ifeq ($(TARGET_IS_64_BIT)|$(LOCAL_32_BIT_ONLY),true|true) LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX) else Loading
core/main.mk +56 −1 Original line number Diff line number Diff line Loading @@ -571,9 +571,49 @@ CUSTOM_MODULES := \ # APPS:Quake or HOST:SHARED_LIBRARIES:libutils. # BUG: the system image won't know to depend on modules that are # brought in as requirements of other modules. # # Resolve the required module name to 32-bit or 64-bit variant. ifeq ($(TARGET_IS_64_BIT),true) # Get a list of corresponding 32-bit module names, if one exists. define get-32-bit-modules $(strip $(foreach m,$(1),\ $(if $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS),\ $(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX)))) endef # Get a list of corresponding 32-bit module names, if one exists; # otherwise return the original module name define get-32-bit-modules-if-we-can $(strip $(foreach m,$(1),\ $(if $(ALL_MODULES.$(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX).CLASS),\ $(m)$(TARGET_2ND_ARCH_MODULE_SUFFIX), $(m)))) endef # If a module is built for 32-bit, the required modules must be 32-bit too; # Otherwise if the module is an exectuable or shared library, # the required modules must be 64-bit; # otherwise we require both 64-bit and 32-bit variant, if one exists. $(foreach m,$(ALL_MODULES),\ $(eval r := $(ALL_MODULES.$(m).REQUIRED))\ $(if $(r),\ $(if $(ALL_MODULES.$(m).FOR_2ND_ARCH),\ $(eval r_r := $(call get-32-bit-modules-if-we-can,$(r))),\ $(if $(filter EXECUTABLES SHARED_LIBRARIES,$(ALL_MODULES.$(m).CLASS)),\ $(eval r_r := $(r)),\ $(eval r_r := $(r) $(call get-32-bit-modules,$(r)))\ )\ )\ $(eval ALL_MODULES.$(m).REQUIRED := $(r_r))\ )\ ) r_r := endif define add-required-deps $(1): | $(2) endef $(foreach m,$(ALL_MODULES), \ $(eval r := $(ALL_MODULES.$(m).REQUIRED)) \ $(if $(r), \ Loading Loading @@ -628,11 +668,26 @@ add-required-deps := ifdef FULL_BUILD # The base list of modules to build for this product is specified # by the appropriate product definition file, which was included # by product_config.make. # by product_config.mk. product_MODULES := $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_PACKAGES) # Filter out the overridden packages before doing expansion product_MODULES := $(filter-out $(foreach p, $(product_MODULES), \ $(PACKAGES.$(p).OVERRIDES)), $(product_MODULES)) # Resolve the :32 :64 module name modules_32 := $(patsubst %:32,%,$(filter %:32, $(product_MODULES))) modules_64 := $(patsubst %:64,%,$(filter %:64, $(product_MODULES))) modules_rest := $(filter-out %:32 %:64,$(product_MODULES)) ifeq ($(TARGET_IS_64_BIT),true) product_MODULES := $(addsuffix $(TARGET_2ND_ARCH_MODULE_SUFFIX),$(modules_32)) product_MODULES += $(modules_64) # For the rest we add both product_MODULES += $(call get-32-bit-modules, $(modules_rest)) product_MODULES += $(modules_rest) else product_MODULES := $(modules_32) $(modules_64) $(modules_rest) endif $(call expand-required-modules,product_MODULES,$(product_MODULES)) product_FILES := $(call module-installed-files, $(product_MODULES)) ifeq (0,1) Loading