Set up rules to build static libraries for TARGET_2ND_ARCH
The rules for the 2nd arch are set up in the second inclusion of static_library_internal.mk. libfoo of the 2nd arch will be built into $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)/libfoo_intermediates/libfoo.a. Bug: 11654773 Change-Id: I1d92733968fc442e9225b4df5bd1b551a81d89f7
This commit is contained in:
parent
e1d44c3b4a
commit
61d499b965
9 changed files with 195 additions and 142 deletions
|
@ -111,7 +111,7 @@ ifeq ($(LOCAL_MODULE_PATH),)
|
|||
partition_tag := $(if $(call should-install-to-system,$(LOCAL_MODULE_TAGS)),,_DATA)
|
||||
endif
|
||||
endif
|
||||
install_path_var := $(my_prefix)OUT$(partition_tag)_$(LOCAL_MODULE_CLASS)
|
||||
install_path_var := $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT$(partition_tag)_$(LOCAL_MODULE_CLASS)
|
||||
ifeq (true,$(LOCAL_PRIVILEGED_MODULE))
|
||||
install_path_var := $(install_path_var)_PRIVILEGED
|
||||
endif
|
||||
|
@ -127,15 +127,19 @@ ifneq ($(strip $(LOCAL_BUILT_MODULE)$(LOCAL_INSTALLED_MODULE)),)
|
|||
$(error $(LOCAL_PATH): LOCAL_BUILT_MODULE and LOCAL_INSTALLED_MODULE must not be defined by component makefiles)
|
||||
endif
|
||||
|
||||
my_register_name := $(LOCAL_MODULE)
|
||||
ifdef LOCAL_2ND_ARCH_VAR_PREFIX
|
||||
my_register_name := $(LOCAL_MODULE)$(TARGET_2ND_ARCH_MODULE_SUFFIX)
|
||||
endif
|
||||
# Make sure that this IS_HOST/CLASS/MODULE combination is unique.
|
||||
module_id := MODULE.$(if \
|
||||
$(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(LOCAL_MODULE)
|
||||
$(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(my_register_name)
|
||||
ifdef $(module_id)
|
||||
$(error $(LOCAL_PATH): $(module_id) already defined by $($(module_id)))
|
||||
endif
|
||||
$(module_id) := $(LOCAL_PATH)
|
||||
|
||||
intermediates := $(call local-intermediates-dir)
|
||||
intermediates := $(call local-intermediates-dir,,$(LOCAL_2ND_ARCH_VAR_PREFIX))
|
||||
intermediates.COMMON := $(call local-intermediates-dir,COMMON)
|
||||
|
||||
###########################################################
|
||||
|
@ -459,8 +463,8 @@ endif # need_compile_java
|
|||
###########################################################
|
||||
## make clean- targets
|
||||
###########################################################
|
||||
cleantarget := clean-$(LOCAL_MODULE)
|
||||
$(cleantarget) : PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
cleantarget := clean-$(my_register_name)
|
||||
$(cleantarget) : PRIVATE_MODULE := $(my_register_name)
|
||||
$(cleantarget) : PRIVATE_CLEAN_FILES := \
|
||||
$(LOCAL_BUILT_MODULE) \
|
||||
$(LOCAL_INSTALLED_MODULE) \
|
||||
|
@ -502,13 +506,13 @@ $(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_HOST:= $(my_host)
|
|||
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_INTERMEDIATES_DIR:= $(intermediates)
|
||||
|
||||
# Tell the module and all of its sub-modules who it is.
|
||||
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_MODULE:= $(LOCAL_MODULE)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS) : PRIVATE_MODULE:= $(my_register_name)
|
||||
|
||||
# Provide a short-hand for building this module.
|
||||
# We name both BUILT and INSTALLED in case
|
||||
# LOCAL_UNINSTALLABLE_MODULE is set.
|
||||
.PHONY: $(LOCAL_MODULE)
|
||||
$(LOCAL_MODULE): $(LOCAL_BUILT_MODULE) $(LOCAL_INSTALLED_MODULE)
|
||||
.PHONY: $(my_register_name)
|
||||
$(my_register_name): $(LOCAL_BUILT_MODULE) $(LOCAL_INSTALLED_MODULE)
|
||||
|
||||
###########################################################
|
||||
## Module installation rule
|
||||
|
@ -558,41 +562,45 @@ endif
|
|||
ifdef LOCAL_DONT_CHECK_MODULE
|
||||
LOCAL_CHECKED_MODULE :=
|
||||
endif
|
||||
# Don't check build the module defined for the 2nd arch
|
||||
ifdef LOCAL_2ND_ARCH_VAR_PREFIX
|
||||
LOCAL_CHECKED_MODULE :=
|
||||
endif
|
||||
|
||||
###########################################################
|
||||
## Register with ALL_MODULES
|
||||
###########################################################
|
||||
|
||||
ALL_MODULES += $(LOCAL_MODULE)
|
||||
ALL_MODULES += $(my_register_name)
|
||||
|
||||
# Don't use += on subvars, or else they'll end up being
|
||||
# recursively expanded.
|
||||
ALL_MODULES.$(LOCAL_MODULE).CLASS := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).CLASS) $(LOCAL_MODULE_CLASS)
|
||||
ALL_MODULES.$(LOCAL_MODULE).PATH := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).PATH) $(LOCAL_PATH)
|
||||
ALL_MODULES.$(LOCAL_MODULE).TAGS := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).TAGS) $(LOCAL_MODULE_TAGS)
|
||||
ALL_MODULES.$(LOCAL_MODULE).CHECKED := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).CHECKED) $(LOCAL_CHECKED_MODULE)
|
||||
ALL_MODULES.$(LOCAL_MODULE).BUILT := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).BUILT) $(LOCAL_BUILT_MODULE)
|
||||
ALL_MODULES.$(LOCAL_MODULE).INSTALLED := \
|
||||
$(strip $(ALL_MODULES.$(LOCAL_MODULE).INSTALLED) $(LOCAL_INSTALLED_MODULE))
|
||||
ALL_MODULES.$(LOCAL_MODULE).REQUIRED := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).REQUIRED) $(LOCAL_REQUIRED_MODULES)
|
||||
ALL_MODULES.$(LOCAL_MODULE).EVENT_LOG_TAGS := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).EVENT_LOG_TAGS) $(event_log_tags)
|
||||
ALL_MODULES.$(LOCAL_MODULE).INTERMEDIATE_SOURCE_DIR := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).INTERMEDIATE_SOURCE_DIR) $(LOCAL_INTERMEDIATE_SOURCE_DIR)
|
||||
ALL_MODULES.$(LOCAL_MODULE).MAKEFILE := \
|
||||
$(ALL_MODULES.$(LOCAL_MODULE).MAKEFILE) $(LOCAL_MODULE_MAKEFILE)
|
||||
ALL_MODULES.$(my_register_name).CLASS := \
|
||||
$(ALL_MODULES.$(my_register_name).CLASS) $(LOCAL_MODULE_CLASS)
|
||||
ALL_MODULES.$(my_register_name).PATH := \
|
||||
$(ALL_MODULES.$(my_register_name).PATH) $(LOCAL_PATH)
|
||||
ALL_MODULES.$(my_register_name).TAGS := \
|
||||
$(ALL_MODULES.$(my_register_name).TAGS) $(LOCAL_MODULE_TAGS)
|
||||
ALL_MODULES.$(my_register_name).CHECKED := \
|
||||
$(ALL_MODULES.$(my_register_name).CHECKED) $(LOCAL_CHECKED_MODULE)
|
||||
ALL_MODULES.$(my_register_name).BUILT := \
|
||||
$(ALL_MODULES.$(my_register_name).BUILT) $(LOCAL_BUILT_MODULE)
|
||||
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)
|
||||
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 := \
|
||||
$(ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR) $(LOCAL_INTERMEDIATE_SOURCE_DIR)
|
||||
ALL_MODULES.$(my_register_name).MAKEFILE := \
|
||||
$(ALL_MODULES.$(my_register_name).MAKEFILE) $(LOCAL_MODULE_MAKEFILE)
|
||||
ifdef LOCAL_MODULE_OWNER
|
||||
ALL_MODULES.$(LOCAL_MODULE).OWNER := \
|
||||
$(sort $(ALL_MODULES.$(LOCAL_MODULE).OWNER) $(LOCAL_MODULE_OWNER))
|
||||
ALL_MODULES.$(my_register_name).OWNER := \
|
||||
$(sort $(ALL_MODULES.$(my_register_name).OWNER) $(LOCAL_MODULE_OWNER))
|
||||
endif
|
||||
|
||||
INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(LOCAL_MODULE)
|
||||
INSTALLABLE_FILES.$(LOCAL_INSTALLED_MODULE).MODULE := $(my_register_name)
|
||||
|
||||
###########################################################
|
||||
## Take care of LOCAL_MODULE_TAGS
|
||||
|
@ -611,7 +619,7 @@ $(foreach tag,$(LOCAL_MODULE_TAGS),\
|
|||
|
||||
# Add this module name to the tag list of each specified tag.
|
||||
$(foreach tag,$(LOCAL_MODULE_TAGS),\
|
||||
$(eval ALL_MODULE_NAME_TAGS.$(tag) += $(LOCAL_MODULE)))
|
||||
$(eval ALL_MODULE_NAME_TAGS.$(tag) += $(my_register_name)))
|
||||
|
||||
###########################################################
|
||||
## umbrella targets used to verify builds
|
||||
|
|
164
core/binary.mk
164
core/binary.mk
|
@ -14,7 +14,7 @@ ifdef LOCAL_SDK_VERSION
|
|||
$(error $(LOCAL_PATH): LOCAL_SDK_VERSION cannot be used in host module)
|
||||
endif
|
||||
my_ndk_source_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/current/sources
|
||||
my_ndk_version_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/current/platforms/android-$(LOCAL_SDK_VERSION)/arch-$(TARGET_ARCH)
|
||||
my_ndk_version_root := $(HISTORICAL_NDK_VERSIONS_ROOT)/current/platforms/android-$(LOCAL_SDK_VERSION)/arch-$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
|
||||
# Set up the NDK stl variant. Starting from NDK-r5 the c++ stl resides in a separate location.
|
||||
# See ndk/docs/CPLUSPLUS-SUPPORT.html
|
||||
|
@ -35,16 +35,16 @@ ifdef LOCAL_SDK_VERSION
|
|||
ifneq (,$(filter stlport_%, $(LOCAL_NDK_STL_VARIANT)))
|
||||
my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/stlport/stlport
|
||||
ifeq (stlport_static,$(LOCAL_NDK_STL_VARIANT))
|
||||
my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_CPU_ABI)/libstlport_static.a
|
||||
my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI)/libstlport_static.a
|
||||
else
|
||||
my_ndk_stl_shared_lib_fullpath := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_CPU_ABI)/libstlport_shared.so
|
||||
my_ndk_stl_shared_lib_fullpath := $(my_ndk_source_root)/cxx-stl/stlport/libs/$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI)/libstlport_shared.so
|
||||
my_ndk_stl_shared_lib := -lstlport_shared
|
||||
endif
|
||||
else
|
||||
# LOCAL_NDK_STL_VARIANT is gnustl_static
|
||||
my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/libs/$(TARGET_CPU_ABI)/include \
|
||||
my_ndk_stl_include_path := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/libs/$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI)/include \
|
||||
$(my_ndk_source_root)/cxx-stl/gnu-libstdc++/include
|
||||
my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/libs/$(TARGET_CPU_ABI)/libgnustl_static.a
|
||||
my_ndk_stl_static_lib := $(my_ndk_source_root)/cxx-stl/gnu-libstdc++/libs/$(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)CPU_ABI)/libgnustl_static.a
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
@ -82,11 +82,27 @@ installed_shared_library_module_names := $(sort $(installed_shared_library_modul
|
|||
include $(BUILD_SYSTEM)/base_rules.mk
|
||||
#######################################
|
||||
|
||||
# The following LOCAL_ variables will be modified in this file.
|
||||
# Because the same LOCAL_ variables may be used to define modules for both 1st arch and 2nd arch,
|
||||
# we can't modify them in place.
|
||||
my_static_libraries := $(LOCAL_STATIC_LIBRARIES)
|
||||
my_shared_libraries := $(LOCAL_SHARED_LIBRARIES)
|
||||
my_cflags := $(LOCAL_CFLAGS)
|
||||
my_cppflags := $(LOCAL_CPPFLAGS)
|
||||
my_ldflags := $(LOCAL_LDFLAGS)
|
||||
my_asflags := $(LOCAL_ASFLAGS)
|
||||
my_cc := $(LOCAL_CC)
|
||||
my_cxx := $(LOCAL_CXX)
|
||||
my_c_includes := $(LOCAL_C_INCLUDES)
|
||||
my_generated_sources := $(LOCAL_GENERATED_SOURCES)
|
||||
|
||||
|
||||
# The real dependency will be added after all Android.mks are loaded and the install paths
|
||||
# of the shared libraries are determined.
|
||||
ifdef LOCAL_INSTALLED_MODULE
|
||||
ifdef installed_shared_library_module_names
|
||||
$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += $(LOCAL_MODULE):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(installed_shared_library_module_names))
|
||||
$(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \
|
||||
$(LOCAL_MODULE):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(installed_shared_library_module_names))
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -94,17 +110,17 @@ endif
|
|||
ifdef LOCAL_HAL_STATIC_LIBRARIES
|
||||
$(foreach lib, $(LOCAL_HAL_STATIC_LIBRARIES), \
|
||||
$(eval b_lib := $(filter $(lib).%,$(BOARD_HAL_STATIC_LIBRARIES)))\
|
||||
$(if $(b_lib), $(eval LOCAL_STATIC_LIBRARIES += $(b_lib)),\
|
||||
$(eval LOCAL_STATIC_LIBRARIES += $(lib).default)))
|
||||
$(if $(b_lib), $(eval my_static_libraries += $(b_lib)),\
|
||||
$(eval my_static_libraries += $(lib).default)))
|
||||
b_lib :=
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LOCAL_ADDRESS_SANITIZER)),true)
|
||||
LOCAL_CLANG := true
|
||||
LOCAL_CFLAGS += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
|
||||
LOCAL_LDFLAGS += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
|
||||
LOCAL_SHARED_LIBRARIES += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES)
|
||||
LOCAL_STATIC_LIBRARIES += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
|
||||
my_cflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_CFLAGS)
|
||||
my_ldflags += $(ADDRESS_SANITIZER_CONFIG_EXTRA_LDFLAGS)
|
||||
my_shared_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_SHARED_LIBRARIES)
|
||||
my_static_libraries += $(ADDRESS_SANITIZER_CONFIG_EXTRA_STATIC_LIBRARIES)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(WITHOUT_CLANG)),true)
|
||||
|
@ -113,7 +129,7 @@ endif
|
|||
|
||||
# Add in libcompiler_rt for all regular device builds
|
||||
ifeq (,$(LOCAL_SDK_VERSION)$(LOCAL_IS_HOST_MODULE)$(WITHOUT_LIBCOMPILER_RT))
|
||||
LOCAL_STATIC_LIBRARIES += $(COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES)
|
||||
my_static_libraries += $(COMPILER_RT_CONFIG_EXTRA_STATIC_LIBRARIES)
|
||||
endif
|
||||
|
||||
my_compiler_dependencies :=
|
||||
|
@ -126,9 +142,9 @@ endif
|
|||
####################################################
|
||||
ifneq ($(strip $(LOCAL_FDO_SUPPORT)),)
|
||||
ifeq ($(strip $(LOCAL_IS_HOST_MODULE)),)
|
||||
LOCAL_CFLAGS += $(TARGET_FDO_CFLAGS)
|
||||
LOCAL_CPPFLAGS += $(TARGET_FDO_CFLAGS)
|
||||
LOCAL_LDFLAGS += $(TARGET_FDO_CFLAGS)
|
||||
my_cflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||
my_cppflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_FDO_CFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -136,7 +152,7 @@ endif
|
|||
## Explicitly declare assembly-only __ASSEMBLY__ macro for
|
||||
## assembly source
|
||||
###########################################################
|
||||
LOCAL_ASFLAGS += -D__ASSEMBLY__
|
||||
my_asflags += -D__ASSEMBLY__
|
||||
|
||||
###########################################################
|
||||
## Define PRIVATE_ variables from global vars
|
||||
|
@ -146,8 +162,8 @@ ifdef LOCAL_SDK_VERSION
|
|||
my_target_project_includes :=
|
||||
my_target_c_includes := $(my_ndk_stl_include_path) $(my_ndk_version_root)/usr/include
|
||||
else
|
||||
my_target_project_includes := $(TARGET_PROJECT_INCLUDES)
|
||||
my_target_c_includes := $(TARGET_C_INCLUDES)
|
||||
my_target_project_includes := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_PROJECT_INCLUDES)
|
||||
my_target_c_includes := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_C_INCLUDES)
|
||||
endif # LOCAL_SDK_VERSION
|
||||
|
||||
ifeq ($(LOCAL_CLANG),true)
|
||||
|
@ -156,9 +172,9 @@ my_target_global_cppflags := $(CLANG_TARGET_GLOBAL_CPPFLAGS)
|
|||
my_target_global_ldflags := $(CLANG_TARGET_GLOBAL_LDFLAGS)
|
||||
my_target_c_includes += $(CLANG_CONFIG_EXTRA_TARGET_C_INCLUDES)
|
||||
else
|
||||
my_target_global_cflags := $(TARGET_GLOBAL_CFLAGS)
|
||||
my_target_global_cppflags := $(TARGET_GLOBAL_CPPFLAGS)
|
||||
my_target_global_ldflags := $(TARGET_GLOBAL_LDFLAGS)
|
||||
my_target_global_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_CFLAGS)
|
||||
my_target_global_cppflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_CPPFLAGS)
|
||||
my_target_global_ldflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_LDFLAGS)
|
||||
endif # LOCAL_CLANG
|
||||
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_TARGET_PROJECT_INCLUDES := $(my_target_project_includes)
|
||||
|
@ -204,40 +220,40 @@ endif
|
|||
ifneq ($(strip $(LOCAL_IS_HOST_MODULE)),)
|
||||
my_syntax_arch := host
|
||||
else
|
||||
my_syntax_arch := $(TARGET_ARCH)
|
||||
my_syntax_arch := $(TARGET_$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LOCAL_CC)),)
|
||||
ifeq ($(strip $(my_cc)),)
|
||||
ifeq ($(strip $(LOCAL_CLANG)),true)
|
||||
LOCAL_CC := $(CLANG)
|
||||
my_cc := $(CLANG)
|
||||
else
|
||||
LOCAL_CC := $($(my_prefix)CC)
|
||||
my_cc := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)CC)
|
||||
endif
|
||||
endif
|
||||
ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
|
||||
LOCAL_CC := $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer $(my_syntax_arch) "$(LOCAL_CC)"
|
||||
my_cc := $(SYNTAX_TOOLS_PREFIX)/ccc-analyzer $(my_syntax_arch) "$(my_cc)"
|
||||
else
|
||||
ifneq ($(LOCAL_NO_SYNTAX_CHECK),true)
|
||||
LOCAL_CC := $(SYNTAX_TOOLS_PREFIX)/ccc-syntax $(my_syntax_arch) "$(LOCAL_CC)"
|
||||
my_cc := $(SYNTAX_TOOLS_PREFIX)/ccc-syntax $(my_syntax_arch) "$(my_cc)"
|
||||
endif
|
||||
endif
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(LOCAL_CC)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CC := $(my_cc)
|
||||
|
||||
ifeq ($(strip $(LOCAL_CXX)),)
|
||||
ifeq ($(strip $(my_cxx)),)
|
||||
ifeq ($(strip $(LOCAL_CLANG)),true)
|
||||
LOCAL_CXX := $(CLANG_CXX)
|
||||
my_cxx := $(CLANG_CXX)
|
||||
else
|
||||
LOCAL_CXX := $($(my_prefix)CXX)
|
||||
my_cxx := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)CXX)
|
||||
endif
|
||||
endif
|
||||
ifneq ($(LOCAL_NO_STATIC_ANALYZER),true)
|
||||
LOCAL_CXX := $(SYNTAX_TOOLS_PREFIX)/cxx-analyzer $(my_syntax_arch) "$(LOCAL_CXX)"
|
||||
my_cxx := $(SYNTAX_TOOLS_PREFIX)/cxx-analyzer $(my_syntax_arch) "$(my_cxx)"
|
||||
else
|
||||
ifneq ($(LOCAL_NO_SYNTAX_CHECK),true)
|
||||
LOCAL_CXX := $(SYNTAX_TOOLS_PREFIX)/cxx-syntax $(my_syntax_arch) "$(LOCAL_CXX)"
|
||||
my_cxx := $(SYNTAX_TOOLS_PREFIX)/cxx-syntax $(my_syntax_arch) "$(my_cxx)"
|
||||
endif
|
||||
endif
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(LOCAL_CXX)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CXX := $(my_cxx)
|
||||
|
||||
# TODO: support a mix of standard extensions so that this isn't necessary
|
||||
LOCAL_CPP_EXTENSION := $(strip $(LOCAL_CPP_EXTENSION))
|
||||
|
@ -250,7 +266,7 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CPP_EXTENSION := $(LOCAL_CPP_EXTENSION)
|
|||
# up if --no-undefined is passed to the linker.
|
||||
ifeq ($(strip $(LOCAL_NO_DEFAULT_COMPILER_FLAGS)),)
|
||||
ifeq ($(strip $(LOCAL_ALLOW_UNDEFINED_SYMBOLS)),)
|
||||
LOCAL_LDFLAGS := $(LOCAL_LDFLAGS) $($(my_prefix)NO_UNDEFINED_LDFLAGS)
|
||||
my_ldflags += $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)NO_UNDEFINED_LDFLAGS)
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -271,8 +287,8 @@ normal_objects_mode := $(if $(LOCAL_ARM_MODE),$(LOCAL_ARM_MODE),thumb)
|
|||
# Read the values from something like TARGET_arm_CFLAGS or
|
||||
# TARGET_thumb_CFLAGS. HOST_(arm|thumb)_CFLAGS values aren't
|
||||
# actually used (although they are usually empty).
|
||||
arm_objects_cflags := $($(my_prefix)$(arm_objects_mode)_CFLAGS)
|
||||
normal_objects_cflags := $($(my_prefix)$(normal_objects_mode)_CFLAGS)
|
||||
arm_objects_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)$(arm_objects_mode)_CFLAGS)
|
||||
normal_objects_cflags := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)$(normal_objects_mode)_CFLAGS)
|
||||
ifeq ($(strip $(LOCAL_CLANG)),true)
|
||||
arm_objects_cflags := $(call convert-to-$(my_host)clang-flags,$(arm_objects_cflags))
|
||||
normal_objects_cflags := $(call convert-to-$(my_host)clang-flags,$(normal_objects_cflags))
|
||||
|
@ -319,16 +335,16 @@ endif
|
|||
renderscript_flags := -Wall -Werror
|
||||
renderscript_flags += $(LOCAL_RENDERSCRIPT_FLAGS)
|
||||
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := \
|
||||
renderscript_includes := \
|
||||
$(TOPDIR)external/clang/lib/Headers \
|
||||
$(TOPDIR)frameworks/rs/scriptc \
|
||||
$(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
|
||||
ifneq ($(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE),)
|
||||
LOCAL_RENDERSCRIPT_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE)
|
||||
renderscript_includes := $(LOCAL_RENDERSCRIPT_INCLUDES_OVERRIDE)
|
||||
endif
|
||||
|
||||
$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(LOCAL_RENDERSCRIPT_INCLUDES)
|
||||
$(RenderScript_file_stamp): PRIVATE_RS_INCLUDES := $(renderscript_includes)
|
||||
$(RenderScript_file_stamp): PRIVATE_RS_CC := $(LOCAL_RENDERSCRIPT_CC)
|
||||
$(RenderScript_file_stamp): PRIVATE_RS_FLAGS := $(renderscript_flags)
|
||||
$(RenderScript_file_stamp): PRIVATE_RS_SOURCE_FILES := $(renderscript_sources_fullpath)
|
||||
|
@ -349,8 +365,8 @@ rs_generated_cpps := $(addprefix \
|
|||
|
||||
$(rs_generated_cpps) : $(RenderScript_file_stamp)
|
||||
|
||||
LOCAL_C_INCLUDES += $(renderscript_intermediate)
|
||||
LOCAL_GENERATED_SOURCES += $(rs_generated_cpps)
|
||||
my_c_includes += $(renderscript_intermediate)
|
||||
my_generated_sources += $(rs_generated_cpps)
|
||||
|
||||
endif
|
||||
|
||||
|
@ -358,9 +374,9 @@ endif
|
|||
###########################################################
|
||||
## Stuff source generated from one-off tools
|
||||
###########################################################
|
||||
$(LOCAL_GENERATED_SOURCES): PRIVATE_MODULE := $(LOCAL_MODULE)
|
||||
$(my_generated_sources): PRIVATE_MODULE := $(my_register_name)
|
||||
|
||||
ALL_GENERATED_SOURCES += $(LOCAL_GENERATED_SOURCES)
|
||||
ALL_GENERATED_SOURCES += $(my_generated_sources)
|
||||
|
||||
|
||||
###########################################################
|
||||
|
@ -391,12 +407,12 @@ $(proto_generated_objects): $(proto_generated_cc_sources_dir)/%.o: $(proto_gener
|
|||
$(transform-$(PRIVATE_HOST)cpp-to-o)
|
||||
-include $(proto_generated_objects:%.o=%.P)
|
||||
|
||||
LOCAL_C_INCLUDES += external/protobuf/src $(proto_generated_cc_sources_dir)
|
||||
LOCAL_CFLAGS += -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
my_c_includes += external/protobuf/src $(proto_generated_cc_sources_dir)
|
||||
my_cflags += -DGOOGLE_PROTOBUF_NO_RTTI
|
||||
ifeq ($(LOCAL_PROTOC_OPTIMIZE_TYPE),full)
|
||||
LOCAL_STATIC_LIBRARIES += libprotobuf-cpp-2.3.0-full
|
||||
my_static_libraries += libprotobuf-cpp-2.3.0-full
|
||||
else
|
||||
LOCAL_STATIC_LIBRARIES += libprotobuf-cpp-2.3.0-lite
|
||||
my_static_libraries += libprotobuf-cpp-2.3.0-lite
|
||||
endif
|
||||
endif
|
||||
|
||||
|
@ -625,9 +641,9 @@ asm_objects := $(asm_objects_S) $(asm_objects_s)
|
|||
import_includes := $(intermediates)/import_includes
|
||||
import_includes_deps := $(strip \
|
||||
$(foreach l, $(installed_shared_library_module_names), \
|
||||
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE))/export_includes) \
|
||||
$(foreach l, $(LOCAL_STATIC_LIBRARIES) $(LOCAL_WHOLE_STATIC_LIBRARIES), \
|
||||
$(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE))/export_includes))
|
||||
$(call intermediates-dir-for,SHARED_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX))/export_includes) \
|
||||
$(foreach l, $(my_static_libraries) $(LOCAL_WHOLE_STATIC_LIBRARIES), \
|
||||
$(call intermediates-dir-for,STATIC_LIBRARIES,$(l),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX))/export_includes))
|
||||
$(import_includes) : $(import_includes_deps)
|
||||
@echo Import includes file: $@
|
||||
$(hide) mkdir -p $(dir $@) && rm -f $@
|
||||
|
@ -660,10 +676,10 @@ normal_objects := \
|
|||
|
||||
all_objects := $(normal_objects) $(gen_o_objects)
|
||||
|
||||
LOCAL_C_INCLUDES += $(TOPDIR)$(LOCAL_PATH) $(intermediates)
|
||||
my_c_includes += $(TOPDIR)$(LOCAL_PATH) $(intermediates)
|
||||
|
||||
ifndef LOCAL_SDK_VERSION
|
||||
LOCAL_C_INCLUDES += $(JNI_H_INCLUDE)
|
||||
my_c_includes += $(JNI_H_INCLUDE)
|
||||
endif
|
||||
|
||||
# all_objects includes gen_o_objects which were part of LOCAL_GENERATED_SOURCES;
|
||||
|
@ -677,7 +693,9 @@ ALL_C_CPP_ETC_OBJECTS += $(all_objects)
|
|||
###########################################################
|
||||
## Copy headers to the install tree
|
||||
###########################################################
|
||||
ifndef LOCAL_2ND_ARCH_VAR_PREFIX
|
||||
include $(BUILD_COPY_HEADERS)
|
||||
endif
|
||||
|
||||
###########################################################
|
||||
# Standard library handling.
|
||||
|
@ -714,9 +732,9 @@ a_suffix := $($(my_prefix)STATIC_LIB_SUFFIX)
|
|||
|
||||
ifdef LOCAL_SDK_VERSION
|
||||
built_shared_libraries := \
|
||||
$(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
|
||||
$(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
|
||||
$(addsuffix $(so_suffix), \
|
||||
$(LOCAL_SHARED_LIBRARIES)))
|
||||
$(my_shared_libraries)))
|
||||
|
||||
my_system_shared_libraries_fullpath := \
|
||||
$(my_ndk_stl_shared_lib_fullpath) \
|
||||
|
@ -724,19 +742,19 @@ my_system_shared_libraries_fullpath := \
|
|||
$(addsuffix $(so_suffix), $(LOCAL_SYSTEM_SHARED_LIBRARIES)))
|
||||
|
||||
built_shared_libraries += $(my_system_shared_libraries_fullpath)
|
||||
LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES)
|
||||
my_shared_libraries += $(LOCAL_SYSTEM_SHARED_LIBRARIES)
|
||||
else
|
||||
LOCAL_SHARED_LIBRARIES += $(LOCAL_SYSTEM_SHARED_LIBRARIES)
|
||||
my_shared_libraries += $(LOCAL_SYSTEM_SHARED_LIBRARIES)
|
||||
built_shared_libraries := \
|
||||
$(addprefix $($(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
|
||||
$(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
|
||||
$(addsuffix $(so_suffix), \
|
||||
$(LOCAL_SHARED_LIBRARIES)))
|
||||
$(my_shared_libraries)))
|
||||
endif
|
||||
|
||||
built_static_libraries := \
|
||||
$(foreach lib,$(LOCAL_STATIC_LIBRARIES), \
|
||||
$(foreach lib,$(my_static_libraries), \
|
||||
$(call intermediates-dir-for, \
|
||||
STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE))/$(lib)$(a_suffix))
|
||||
STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX))/$(lib)$(a_suffix))
|
||||
|
||||
ifdef LOCAL_SDK_VERSION
|
||||
built_static_libraries += $(my_ndk_stl_static_lib)
|
||||
|
@ -745,7 +763,7 @@ endif
|
|||
built_whole_libraries := \
|
||||
$(foreach lib,$(LOCAL_WHOLE_STATIC_LIBRARIES), \
|
||||
$(call intermediates-dir-for, \
|
||||
STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE))/$(lib)$(a_suffix))
|
||||
STATIC_LIBRARIES,$(lib),$(LOCAL_IS_HOST_MODULE),,$(LOCAL_2ND_ARCH_VAR_PREFIX))/$(lib)$(a_suffix))
|
||||
|
||||
# We don't care about installed static libraries, since the
|
||||
# libraries have already been linked into the module at that point.
|
||||
|
@ -753,7 +771,7 @@ built_whole_libraries := \
|
|||
# libraries that we use. (see notice_files.mk)
|
||||
|
||||
installed_static_library_notice_file_targets := \
|
||||
$(foreach lib,$(LOCAL_STATIC_LIBRARIES) $(LOCAL_WHOLE_STATIC_LIBRARIES), \
|
||||
$(foreach lib,$(my_static_libraries) $(LOCAL_WHOLE_STATIC_LIBRARIES), \
|
||||
NOTICE-$(if $(LOCAL_IS_HOST_MODULE),HOST,TARGET)-STATIC_LIBRARIES-$(lib))
|
||||
|
||||
# Default is -fno-rtti.
|
||||
|
@ -766,22 +784,22 @@ endif
|
|||
###########################################################
|
||||
|
||||
ifeq ($(LOCAL_CLANG),true)
|
||||
LOCAL_CFLAGS := $(call convert-to-$(my_host)clang-flags,$(LOCAL_CFLAGS))
|
||||
LOCAL_CPPFLAGS := $(call convert-to-$(my_host)clang-flags,$(LOCAL_CPPFLAGS))
|
||||
LOCAL_ASFLAGS := $(call convert-to-$(my_host)clang-flags,$(LOCAL_ASFLAGS))
|
||||
LOCAL_LDFLAGS := $(call convert-to-$(my_host)clang-flags,$(LOCAL_LDFLAGS))
|
||||
my_cflags := $(call convert-to-$(my_host)clang-flags,$(my_cflags))
|
||||
my_cppflags := $(call convert-to-$(my_host)clang-flags,$(my_cppflags))
|
||||
my_asflags := $(call convert-to-$(my_host)clang-flags,$(my_asflags))
|
||||
my_ldflags := $(call convert-to-$(my_host)clang-flags,$(my_ldflags))
|
||||
endif
|
||||
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_YACCFLAGS := $(LOCAL_YACCFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(LOCAL_ASFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_ASFLAGS := $(my_asflags)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CONLYFLAGS := $(LOCAL_CONLYFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CFLAGS := $(LOCAL_CFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CPPFLAGS := $(LOCAL_CPPFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CFLAGS := $(my_cflags)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_CPPFLAGS := $(my_cppflags)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_RTTI_FLAG := $(LOCAL_RTTI_FLAG)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_DEBUG_CFLAGS := $(debug_cflags)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_C_INCLUDES := $(LOCAL_C_INCLUDES)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_C_INCLUDES := $(my_c_includes)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_IMPORT_INCLUDES := $(import_includes)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDFLAGS := $(LOCAL_LDFLAGS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDFLAGS := $(my_ldflags)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_LDLIBS := $(LOCAL_LDLIBS)
|
||||
$(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_NO_CRT := $(LOCAL_NO_CRT)
|
||||
|
||||
|
|
|
@ -143,6 +143,7 @@ LOCAL_HAL_STATIC_LIBRARIES:=
|
|||
LOCAL_RMTYPEDEFS:=
|
||||
LOCAL_NO_SYNTAX_CHECK:=
|
||||
LOCAL_NO_STATIC_ANALYZER:=
|
||||
LOCAL_2ND_ARCH_VAR_PREFIX:=
|
||||
|
||||
# Trim MAKEFILE_LIST so that $(call my-dir) doesn't need to
|
||||
# iterate over thousands of entries every time.
|
||||
|
|
|
@ -180,7 +180,7 @@ ifneq ($(strip $(BUILD_FDO_INSTRUMENT)),)
|
|||
else
|
||||
# If BUILD_FDO_INSTRUMENT is turned off, then consider doing the FDO optimizations.
|
||||
# Set TARGET_FDO_PROFILE_PATH to set a custom profile directory for your build.
|
||||
ifeq ($(strip $(TARGET_FDO_PROFILE_PATH)),)
|
||||
ifeq ($(strip $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH)),)
|
||||
$(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH := fdo/profiles/$(TARGET_$(combo_2nd_arch_prefix)ARCH)/$(TARGET_$(combo_2nd_arch_prefix)ARCH_VARIANT)
|
||||
else
|
||||
ifeq ($(strip $(wildcard $($(combo_2nd_arch_prefix)TARGET_FDO_PROFILE_PATH))),)
|
||||
|
|
|
@ -426,6 +426,7 @@ endef
|
|||
# $(2): target name, like "NotePad"
|
||||
# $(3): if non-empty, this is a HOST target.
|
||||
# $(4): if non-empty, force the intermediates to be COMMON
|
||||
# $(5): if non-empty, force the intermedistes to be for the 2nd arch
|
||||
define intermediates-dir-for
|
||||
$(strip \
|
||||
$(eval _idfClass := $(strip $(1))) \
|
||||
|
@ -435,10 +436,11 @@ $(strip \
|
|||
$(if $(_idfName),, \
|
||||
$(error $(LOCAL_PATH): Name not defined in call to intermediates-dir-for)) \
|
||||
$(eval _idfPrefix := $(if $(strip $(3)),HOST,TARGET)) \
|
||||
$(eval _idf2ndArchPrefix := $(if $(strip $(5)),$(TARGET_2ND_ARCH_VAR_PREFIX))) \
|
||||
$(if $(filter $(_idfPrefix)-$(_idfClass),$(COMMON_MODULE_CLASSES))$(4), \
|
||||
$(eval _idfIntBase := $($(_idfPrefix)_OUT_COMMON_INTERMEDIATES)) \
|
||||
, \
|
||||
$(eval _idfIntBase := $($(_idfPrefix)_OUT_INTERMEDIATES)) \
|
||||
$(eval _idfIntBase := $($(_idf2ndArchPrefix)$(_idfPrefix)_OUT_INTERMEDIATES)) \
|
||||
) \
|
||||
$(_idfIntBase)/$(_idfClass)/$(_idfName)_intermediates \
|
||||
)
|
||||
|
@ -448,13 +450,14 @@ endef
|
|||
# to determine the intermediates directory.
|
||||
#
|
||||
# $(1): if non-empty, force the intermediates to be COMMON
|
||||
# $(2): if non-empty, force the intermediates to be for the 2nd arch
|
||||
define local-intermediates-dir
|
||||
$(strip \
|
||||
$(if $(strip $(LOCAL_MODULE_CLASS)),, \
|
||||
$(error $(LOCAL_PATH): LOCAL_MODULE_CLASS not defined before call to local-intermediates-dir)) \
|
||||
$(if $(strip $(LOCAL_MODULE)),, \
|
||||
$(error $(LOCAL_PATH): LOCAL_MODULE not defined before call to local-intermediates-dir)) \
|
||||
$(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),$(LOCAL_IS_HOST_MODULE),$(1)) \
|
||||
$(call intermediates-dir-for,$(LOCAL_MODULE_CLASS),$(LOCAL_MODULE),$(LOCAL_IS_HOST_MODULE),$(1),$(2)) \
|
||||
)
|
||||
endef
|
||||
|
||||
|
@ -1135,10 +1138,11 @@ $(hide) ldir=$(PRIVATE_INTERMEDIATES_DIR)/WHOLE/$(basename $(notdir $(1)))_objs;
|
|||
mkdir -p $$ldir; \
|
||||
filelist=; \
|
||||
for f in `$(TARGET_AR) t $(1)`; do \
|
||||
$(TARGET_AR) p $(1) $$f > $$ldir/$$f; \
|
||||
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) p $(1) $$f > $$ldir/$$f; \
|
||||
filelist="$$filelist $$ldir/$$f"; \
|
||||
done ; \
|
||||
$(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@ $$filelist
|
||||
$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \
|
||||
$(PRIVATE_ARFLAGS) $@ $$filelist
|
||||
|
||||
endef
|
||||
|
||||
|
@ -1154,7 +1158,8 @@ define transform-o-to-static-lib
|
|||
@rm -f $@
|
||||
$(extract-and-include-target-whole-static-libs)
|
||||
@echo "target StaticLib: $(PRIVATE_MODULE) ($@)"
|
||||
$(call split-long-arguments,$(TARGET_AR) $(TARGET_GLOBAL_ARFLAGS) $(PRIVATE_ARFLAGS) $@,$(filter %.o, $^))
|
||||
$(call split-long-arguments,$($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_AR) $($(PRIVATE_2ND_ARCH_VAR_PREFIX)TARGET_GLOBAL_ARFLAGS) \
|
||||
$(PRIVATE_ARFLAGS) $@,$(filter %.o, $^))
|
||||
endef
|
||||
|
||||
###########################################################
|
||||
|
|
|
@ -235,6 +235,7 @@ TARGET_OUT_FAKE := $(PRODUCT_OUT)/fake_packages
|
|||
|
||||
# Out for TARGET_2ND_ARCH
|
||||
TARGET_2ND_ARCH_VAR_PREFIX := 2ND_
|
||||
TARGET_2ND_ARCH_MODULE_SUFFIX := _32
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_INTERMEDIATES := $(PRODUCT_OUT)/obj_$(TARGET_2ND_ARCH)
|
||||
$(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
|
||||
|
@ -264,6 +265,8 @@ TARGET_OUT_VENDOR_JAVA_LIBRARIES := $(TARGET_OUT_VENDOR)/framework
|
|||
TARGET_OUT_VENDOR_APPS := $(TARGET_OUT_VENDOR)/app
|
||||
TARGET_OUT_VENDOR_ETC := $(TARGET_OUT_VENDOR)/etc
|
||||
|
||||
$(TARGET_2ND_ARCH_VAR_PREFIX)TARGET_OUT_VENDOR_SHARED_LIBRARIES := $(TARGET_OUT_VENDOR)/lib
|
||||
|
||||
TARGET_OUT_UNSTRIPPED := $(PRODUCT_OUT)/symbols
|
||||
TARGET_OUT_EXECUTABLES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/bin
|
||||
TARGET_OUT_SHARED_LIBRARIES_UNSTRIPPED := $(TARGET_OUT_UNSTRIPPED)/system/lib
|
||||
|
|
|
@ -35,7 +35,7 @@ else
|
|||
# We can't use xxx_OUT_STATIC_LIBRARIES because it points into
|
||||
# device-obj or host-obj.
|
||||
module_installed_filename := \
|
||||
$(patsubst $(PRODUCT_OUT)%,%,$($(my_prefix)OUT_SHARED_LIBRARIES))/$(notdir $(LOCAL_BUILT_MODULE))
|
||||
$(patsubst $(PRODUCT_OUT)%,%,$($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_SHARED_LIBRARIES))/$(notdir $(LOCAL_BUILT_MODULE))
|
||||
else
|
||||
ifeq ($(LOCAL_MODULE_CLASS),JAVA_LIBRARIES)
|
||||
# Stick the static java libraries with the regular java libraries.
|
||||
|
|
|
@ -1,33 +1,17 @@
|
|||
###########################################################
|
||||
## Standard rules for building a static library.
|
||||
##
|
||||
## Additional inputs from base_rules.make:
|
||||
## None.
|
||||
##
|
||||
## LOCAL_MODULE_SUFFIX will be set for you.
|
||||
###########################################################
|
||||
include $(BUILD_SYSTEM)/static_library_internal.mk
|
||||
|
||||
ifeq ($(strip $(LOCAL_MODULE_CLASS)),)
|
||||
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),)
|
||||
LOCAL_MODULE_SUFFIX := .a
|
||||
endif
|
||||
LOCAL_UNINSTALLABLE_MODULE := true
|
||||
ifneq ($(strip $(LOCAL_MODULE_STEM)$(LOCAL_BUILT_MODULE_STEM)),)
|
||||
$(error $(LOCAL_PATH): Cannot set module stem for a library)
|
||||
endif
|
||||
ifdef TARGET_2ND_ARCH
|
||||
|
||||
include $(BUILD_SYSTEM)/binary.mk
|
||||
OVERRIDE_BUILT_MODULE_PATH :=
|
||||
LOCAL_BUILT_MODULE :=
|
||||
LOCAL_INSTALLED_MODULE :=
|
||||
LOCAL_MODULE_STEM :=
|
||||
LOCAL_BUILT_MODULE_STEM :=
|
||||
LOCAL_INSTALLED_MODULE_STEM :=
|
||||
LOCAL_INTERMEDIATE_TARGETS :=
|
||||
|
||||
LOCAL_2ND_ARCH_VAR_PREFIX := $(TARGET_2ND_ARCH_VAR_PREFIX)
|
||||
include $(BUILD_SYSTEM)/static_library_internal.mk
|
||||
LOCAL_2ND_ARCH_VAR_PREFIX :=
|
||||
|
||||
ifeq ($(LOCAL_RAW_STATIC_LIBRARY),true)
|
||||
LOCAL_RAW_STATIC_LIBRARY:=
|
||||
$(all_objects) : PRIVATE_TARGET_PROJECT_INCLUDES :=
|
||||
$(all_objects) : PRIVATE_TARGET_C_INCLUDES :=
|
||||
$(all_objects) : PRIVATE_TARGET_GLOBAL_CFLAGS :=
|
||||
$(all_objects) : PRIVATE_TARGET_GLOBAL_CPPFLAGS :=
|
||||
endif
|
||||
|
||||
$(LOCAL_BUILT_MODULE): $(built_whole_libraries)
|
||||
$(LOCAL_BUILT_MODULE): $(all_objects)
|
||||
$(transform-o-to-static-lib)
|
||||
|
|
34
core/static_library_internal.mk
Normal file
34
core/static_library_internal.mk
Normal file
|
@ -0,0 +1,34 @@
|
|||
###########################################################
|
||||
## Standard rules for building a static library.
|
||||
##
|
||||
## Additional inputs from base_rules.make:
|
||||
## None.
|
||||
##
|
||||
## LOCAL_MODULE_SUFFIX will be set for you.
|
||||
###########################################################
|
||||
|
||||
ifeq ($(strip $(LOCAL_MODULE_CLASS)),)
|
||||
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
|
||||
endif
|
||||
ifeq ($(strip $(LOCAL_MODULE_SUFFIX)),)
|
||||
LOCAL_MODULE_SUFFIX := .a
|
||||
endif
|
||||
LOCAL_UNINSTALLABLE_MODULE := true
|
||||
ifneq ($(strip $(LOCAL_MODULE_STEM)$(LOCAL_BUILT_MODULE_STEM)),)
|
||||
$(error $(LOCAL_PATH): Cannot set module stem for a library)
|
||||
endif
|
||||
|
||||
include $(BUILD_SYSTEM)/binary.mk
|
||||
|
||||
ifeq ($(LOCAL_RAW_STATIC_LIBRARY),true)
|
||||
LOCAL_RAW_STATIC_LIBRARY:=
|
||||
$(all_objects) : PRIVATE_TARGET_PROJECT_INCLUDES :=
|
||||
$(all_objects) : PRIVATE_TARGET_C_INCLUDES :=
|
||||
$(all_objects) : PRIVATE_TARGET_GLOBAL_CFLAGS :=
|
||||
$(all_objects) : PRIVATE_TARGET_GLOBAL_CPPFLAGS :=
|
||||
endif
|
||||
|
||||
$(LOCAL_BUILT_MODULE): PRIVATE_2ND_ARCH_VAR_PREFIX := $(LOCAL_2ND_ARCH_VAR_PREFIX)
|
||||
$(LOCAL_BUILT_MODULE) : $(built_whole_libraries)
|
||||
$(LOCAL_BUILT_MODULE) : $(all_objects)
|
||||
$(transform-o-to-static-lib)
|
Loading…
Reference in a new issue