Revert "Add soong_cc_prebuilt.mk"

This reverts commit 1bb943b97c.

Reason for revert: broke mac builds
Bug: 113936524

Change-Id: I5b3d8eb1314eb322a5f9c578623ac89e2ad25706
This commit is contained in:
Colin Cross 2018-09-10 21:35:55 +00:00
parent 1bb943b97c
commit 635733b816
6 changed files with 89 additions and 251 deletions

View File

@ -328,11 +328,7 @@ LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE)
# As .KATI_RESTAT is specified to .toc files and commit-change-for-toc is used, # As .KATI_RESTAT is specified to .toc files and commit-change-for-toc is used,
# dependent binaries of a .toc file will be rebuilt only when the content of # dependent binaries of a .toc file will be rebuilt only when the content of
# the .toc file is changed. # the .toc file is changed.
#
# Don't create .toc files for Soong shared libraries, that is handled in
# Soong and soong_cc_prebuilt.mk
########################################################### ###########################################################
ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES)
LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc LOCAL_INTERMEDIATE_TARGETS += $(LOCAL_BUILT_MODULE).toc
$(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE) $(LOCAL_BUILT_MODULE).toc: $(LOCAL_BUILT_MODULE)
@ -349,7 +345,6 @@ $(eval $(call copy-one-file,$(LOCAL_BUILT_MODULE).toc,$(OVERRIDE_BUILT_MODULE_PA
$(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem).toc: $(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem) $(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem).toc: $(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem)
endif endif
endif endif
endif
########################################################### ###########################################################
## logtags: Add .logtags files to global list ## logtags: Add .logtags files to global list

View File

@ -372,7 +372,10 @@ my_static_libraries := $(LOCAL_STATIC_LIBRARIES_$($(my_prefix)$(LOCAL_2ND_ARCH_V
my_whole_static_libraries := $(LOCAL_WHOLE_STATIC_LIBRARIES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(LOCAL_WHOLE_STATIC_LIBRARIES_$(my_32_64_bit_suffix)) $(my_whole_static_libraries) my_whole_static_libraries := $(LOCAL_WHOLE_STATIC_LIBRARIES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(LOCAL_WHOLE_STATIC_LIBRARIES_$(my_32_64_bit_suffix)) $(my_whole_static_libraries)
my_header_libraries := $(LOCAL_HEADER_LIBRARIES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(LOCAL_HEADER_LIBRARIES_$(my_32_64_bit_suffix)) $(my_header_libraries) my_header_libraries := $(LOCAL_HEADER_LIBRARIES_$($(my_prefix)$(LOCAL_2ND_ARCH_VAR_PREFIX)ARCH)) $(LOCAL_HEADER_LIBRARIES_$(my_32_64_bit_suffix)) $(my_header_libraries)
# soong defined modules already have done through this
ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
include $(BUILD_SYSTEM)/cxx_stl_setup.mk include $(BUILD_SYSTEM)/cxx_stl_setup.mk
endif
# Add static HAL libraries # Add static HAL libraries
ifdef LOCAL_HAL_STATIC_LIBRARIES ifdef LOCAL_HAL_STATIC_LIBRARIES
@ -389,6 +392,8 @@ else
my_linker := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LINKER) my_linker := $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)LINKER)
endif endif
# Modules from soong do not need this since the dependencies are already handled there.
ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
include $(BUILD_SYSTEM)/config_sanitizers.mk include $(BUILD_SYSTEM)/config_sanitizers.mk
ifneq ($(LOCAL_NO_LIBCOMPILER_RT),true) ifneq ($(LOCAL_NO_LIBCOMPILER_RT),true)
@ -402,6 +407,7 @@ endif
ifeq ($($(my_prefix)OS),windows) ifeq ($($(my_prefix)OS),windows)
my_static_libraries += libwinpthread my_static_libraries += libwinpthread
endif endif
endif # this module is not from soong
ifneq ($(filter ../%,$(my_src_files)),) ifneq ($(filter ../%,$(my_src_files)),)
my_soong_problems += dotdot_srcs my_soong_problems += dotdot_srcs
@ -1264,23 +1270,29 @@ ifneq ($(LOCAL_USE_VNDK),)
## switch all soong libraries over to the /vendor ## switch all soong libraries over to the /vendor
## variant. ## variant.
#################################################### ####################################################
my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\ ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
$(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) # We don't do this renaming for soong-defined modules since they already have correct
my_static_libraries := $(foreach l,$(my_static_libraries),\ # names (with .vendor suffix when necessary) in their LOCAL_*_LIBRARIES.
$(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l))) my_whole_static_libraries := $(foreach l,$(my_whole_static_libraries),\
my_shared_libraries := $(foreach l,$(my_shared_libraries),\ $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l)))
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) my_static_libraries := $(foreach l,$(my_static_libraries),\
my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\ $(if $(SPLIT_VENDOR.STATIC_LIBRARIES.$(l)),$(l).vendor,$(l)))
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) my_shared_libraries := $(foreach l,$(my_shared_libraries),\
my_header_libraries := $(foreach l,$(my_header_libraries),\ $(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
$(if $(SPLIT_VENDOR.HEADER_LIBRARIES.$(l)),$(l).vendor,$(l))) my_system_shared_libraries := $(foreach l,$(my_system_shared_libraries),\
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
my_header_libraries := $(foreach l,$(my_header_libraries),\
$(if $(SPLIT_VENDOR.HEADER_LIBRARIES.$(l)),$(l).vendor,$(l)))
endif
endif endif
# Platform can use vendor public libraries. If a required shared lib is one of # Platform can use vendor public libraries. If a required shared lib is one of
# the vendor public libraries, the lib is switched to the stub version of the lib. # the vendor public libraries, the lib is switched to the stub version of the lib.
ifeq ($(LOCAL_USE_VNDK),) ifeq ($(LOCAL_USE_VNDK),)
my_shared_libraries := $(foreach l,$(my_shared_libraries),\ ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
$(if $(filter $(l),$(VENDOR_PUBLIC_LIBRARIES)),$(l).vendorpublic,$(l))) my_shared_libraries := $(foreach l,$(my_shared_libraries),\
$(if $(filter $(l),$(VENDOR_PUBLIC_LIBRARIES)),$(l).vendorpublic,$(l)))
endif
endif endif
########################################################## ##########################################################
@ -1601,23 +1613,26 @@ ifeq ($(my_strict),true)
endif endif
# Check if -Werror or -Wno-error is used in C compiler flags. # Check if -Werror or -Wno-error is used in C compiler flags.
# Header libraries do not need cflags. # Modules defined in $(SOONG_ANDROID_MK) are checked in soong's cc.go.
ifneq (HEADER_LIBRARIES,$(LOCAL_MODULE_CLASS)) ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
# Prebuilt modules do not need cflags. # Header libraries do not need cflags.
ifeq (,$(LOCAL_PREBUILT_MODULE_FILE)) ifneq (HEADER_LIBRARIES,$(LOCAL_MODULE_CLASS))
my_all_cflags := $(my_cflags) $(my_cppflags) $(my_cflags_no_override) # Prebuilt modules do not need cflags.
# Issue warning if -Wno-error is used. ifeq (,$(LOCAL_PREBUILT_MODULE_FILE))
ifneq (,$(filter -Wno-error,$(my_all_cflags))) my_all_cflags := $(my_cflags) $(my_cppflags) $(my_cflags_no_override)
$(eval MODULES_USING_WNO_ERROR := $(MODULES_USING_WNO_ERROR) $(LOCAL_MODULE_MAKEFILE):$(LOCAL_MODULE)) # Issue warning if -Wno-error is used.
else ifneq (,$(filter -Wno-error,$(my_all_cflags)))
# Issue warning if -Werror is not used. Add it. $(eval MODULES_USING_WNO_ERROR := $(MODULES_USING_WNO_ERROR) $(LOCAL_MODULE_MAKEFILE):$(LOCAL_MODULE))
ifeq (,$(filter -Werror,$(my_all_cflags))) else
# Add -Wall -Werror unless the project is in the WARNING_ALLOWED project list. # Issue warning if -Werror is not used. Add it.
ifeq (,$(strip $(call find_warning_allowed_projects,$(LOCAL_PATH)))) ifeq (,$(filter -Werror,$(my_all_cflags)))
my_cflags := -Wall -Werror $(my_cflags) # Add -Wall -Werror unless the project is in the WARNING_ALLOWED project list.
else ifeq (,$(strip $(call find_warning_allowed_projects,$(LOCAL_PATH))))
$(eval MODULES_ADDED_WALL := $(MODULES_ADDED_WALL) $(LOCAL_MODULE_MAKEFILE):$(LOCAL_MODULE)) my_cflags := -Wall -Werror $(my_cflags)
my_cflags := -Wall $(my_cflags) else
$(eval MODULES_ADDED_WALL := $(MODULES_ADDED_WALL) $(LOCAL_MODULE_MAKEFILE):$(LOCAL_MODULE))
my_cflags := -Wall $(my_cflags)
endif
endif endif
endif endif
endif endif
@ -1749,6 +1764,12 @@ all_libraries := \
########################################################### ###########################################################
export_includes := $(intermediates)/export_includes export_includes := $(intermediates)/export_includes
export_cflags := $(foreach d,$(my_export_c_include_dirs),-I $(d)) export_cflags := $(foreach d,$(my_export_c_include_dirs),-I $(d))
# Soong exports cflags instead of include dirs, so that -isystem can be included.
ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
export_cflags += $(LOCAL_EXPORT_CFLAGS)
else ifdef LOCAL_EXPORT_CFLAGS
$(call pretty-error,LOCAL_EXPORT_CFLAGS can only be used by Soong, use LOCAL_EXPORT_C_INCLUDE_DIRS instead)
endif
$(export_includes): PRIVATE_EXPORT_CFLAGS := $(export_cflags) $(export_includes): PRIVATE_EXPORT_CFLAGS := $(export_cflags)
# Headers exported by whole static libraries are also exported by this library. # Headers exported by whole static libraries are also exported by this library.
export_include_deps := $(strip \ export_include_deps := $(strip \
@ -1793,6 +1814,7 @@ export_cflags :=
# Make sure export_includes gets generated when you are running mm/mmm # Make sure export_includes gets generated when you are running mm/mmm
$(LOCAL_BUILT_MODULE) : | $(export_includes) $(LOCAL_BUILT_MODULE) : | $(export_includes)
ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
ifneq (,$(filter-out $(LOCAL_PATH)/%,$(my_export_c_include_dirs))) ifneq (,$(filter-out $(LOCAL_PATH)/%,$(my_export_c_include_dirs)))
my_soong_problems += non_local__export_c_include_dirs my_soong_problems += non_local__export_c_include_dirs
endif endif
@ -1808,6 +1830,7 @@ SOONG_CONV.$(LOCAL_MODULE).DEPS := \
$(my_system_shared_libraries)) $(my_system_shared_libraries))
SOONG_CONV.$(LOCAL_MODULE).TYPE := native SOONG_CONV.$(LOCAL_MODULE).TYPE := native
SOONG_CONV := $(SOONG_CONV) $(LOCAL_MODULE) SOONG_CONV := $(SOONG_CONV) $(LOCAL_MODULE)
endif
########################################################### ###########################################################
# Coverage packaging. # Coverage packaging.

View File

@ -3,7 +3,6 @@
########################################################### ###########################################################
# '',true # '',true
LOCAL_2ND_ARCH_VAR_PREFIX:=
LOCAL_32_BIT_ONLY:= LOCAL_32_BIT_ONLY:=
LOCAL_AAPT2_ONLY:= LOCAL_AAPT2_ONLY:=
LOCAL_AAPT_FLAGS:= LOCAL_AAPT_FLAGS:=
@ -67,16 +66,13 @@ LOCAL_DONT_DELETE_JAR_META_INF:=
LOCAL_DONT_MERGE_MANIFESTS:= LOCAL_DONT_MERGE_MANIFESTS:=
LOCAL_DPI_FILE_STEM:= LOCAL_DPI_FILE_STEM:=
LOCAL_DPI_VARIANTS:= LOCAL_DPI_VARIANTS:=
LOCAL_DROIDDOC_ANNOTATIONS_ZIP :=
LOCAL_DROIDDOC_ASSET_DIR:= LOCAL_DROIDDOC_ASSET_DIR:=
LOCAL_DROIDDOC_CUSTOM_ASSET_DIR:= LOCAL_DROIDDOC_CUSTOM_ASSET_DIR:=
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:= LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=
LOCAL_DROIDDOC_DOC_ZIP :=
LOCAL_DROIDDOC_HTML_DIR:= LOCAL_DROIDDOC_HTML_DIR:=
LOCAL_DROIDDOC_OPTIONS:= LOCAL_DROIDDOC_OPTIONS:=
LOCAL_DROIDDOC_SOURCE_PATH:= LOCAL_DROIDDOC_SOURCE_PATH:=
LOCAL_DROIDDOC_STUB_OUT_DIR:= LOCAL_DROIDDOC_STUB_OUT_DIR:=
LOCAL_DROIDDOC_STUBS_SRCJAR :=
LOCAL_DROIDDOC_TEMPLATE_DIR:= LOCAL_DROIDDOC_TEMPLATE_DIR:=
LOCAL_DROIDDOC_USE_STANDARD_DOCLET:= LOCAL_DROIDDOC_USE_STANDARD_DOCLET:=
LOCAL_DX_FLAGS:= LOCAL_DX_FLAGS:=
@ -111,7 +107,6 @@ LOCAL_GROUP_STATIC_LIBRARIES:=
LOCAL_GTEST:=true LOCAL_GTEST:=true
LOCAL_HAL_STATIC_LIBRARIES:= LOCAL_HAL_STATIC_LIBRARIES:=
LOCAL_HEADER_LIBRARIES:= LOCAL_HEADER_LIBRARIES:=
LOCAL_HOST_PREFIX:=
LOCAL_HOST_REQUIRED_MODULES:= LOCAL_HOST_REQUIRED_MODULES:=
LOCAL_INIT_RC:= LOCAL_INIT_RC:=
LOCAL_INSTALLED_MODULE:= LOCAL_INSTALLED_MODULE:=
@ -257,13 +252,13 @@ LOCAL_SOONG_DEX_JAR :=
LOCAL_SOONG_EXPORT_PROGUARD_FLAGS := LOCAL_SOONG_EXPORT_PROGUARD_FLAGS :=
LOCAL_SOONG_HEADER_JAR := LOCAL_SOONG_HEADER_JAR :=
LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR := LOCAL_SOONG_JACOCO_REPORT_CLASSES_JAR :=
LOCAL_SOONG_LINK_TYPE :=
LOCAL_SOONG_PROGUARD_DICT := LOCAL_SOONG_PROGUARD_DICT :=
LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE := LOCAL_SOONG_RESOURCE_EXPORT_PACKAGE :=
LOCAL_SOONG_RRO_DIRS := LOCAL_SOONG_RRO_DIRS :=
LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES := LOCAL_SOONG_STATIC_LIBRARY_EXTRA_PACKAGES :=
LOCAL_SOONG_TOC := LOCAL_DROIDDOC_STUBS_SRCJAR :=
LOCAL_SOONG_UNSTRIPPED_BINARY := LOCAL_DROIDDOC_DOC_ZIP :=
LOCAL_DROIDDOC_ANNOTATIONS_ZIP :=
# '',true # '',true
LOCAL_SOURCE_FILES_ALL_GENERATED:= LOCAL_SOURCE_FILES_ALL_GENERATED:=
LOCAL_SRC_FILES:= LOCAL_SRC_FILES:=

View File

@ -11,6 +11,16 @@ ifneq ($(strip $(LOCAL_MODULE_STEM)$(LOCAL_BUILT_MODULE_STEM)),)
$(error $(LOCAL_PATH): Cannot set module stem for a library) $(error $(LOCAL_PATH): Cannot set module stem for a library)
endif endif
ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
ifdef LOCAL_USE_VNDK
name_without_suffix := $(patsubst %.vendor,%,$(LOCAL_MODULE))
ifneq ($(name_without_suffix),$(LOCAL_MODULE))
SPLIT_VENDOR.$(LOCAL_MODULE_CLASS).$(name_without_suffix) := 1
endif
name_without_suffix :=
endif
endif
include $(BUILD_SYSTEM)/binary.mk include $(BUILD_SYSTEM)/binary.mk
ifneq ($(strip $(all_objects)),) ifneq ($(strip $(all_objects)),)

View File

@ -68,6 +68,20 @@ else
prebuilt_module_is_a_library := prebuilt_module_is_a_library :=
endif endif
ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
ifeq ($(prebuilt_module_is_a_library),true)
SOONG_ALREADY_CONV := $(SOONG_ALREADY_CONV) $(LOCAL_MODULE)
endif
ifdef LOCAL_USE_VNDK
name_without_suffix := $(patsubst %.vendor,%,$(LOCAL_MODULE))
ifneq ($(name_without_suffix),$(LOCAL_MODULE)
SPLIT_VENDOR.$(LOCAL_MODULE_CLASS).$(name_without_suffix) := 1
endif
name_without_suffix :=
endif
endif
# Don't install static libraries by default. # Don't install static libraries by default.
ifndef LOCAL_UNINSTALLABLE_MODULE ifndef LOCAL_UNINSTALLABLE_MODULE
ifeq (STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS)) ifeq (STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS))
@ -142,6 +156,12 @@ else # my_strip_module not true
ifdef prebuilt_module_is_a_library ifdef prebuilt_module_is_a_library
export_includes := $(intermediates)/export_includes export_includes := $(intermediates)/export_includes
export_cflags := $(foreach d,$(LOCAL_EXPORT_C_INCLUDE_DIRS),-I $(d)) export_cflags := $(foreach d,$(LOCAL_EXPORT_C_INCLUDE_DIRS),-I $(d))
# Soong exports cflags instead of include dirs, so that -isystem can be included.
ifeq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
export_cflags += $(LOCAL_EXPORT_CFLAGS)
else ifdef LOCAL_EXPORT_CFLAGS
$(call pretty-error,LOCAL_EXPORT_CFLAGS can only be used by Soong, use LOCAL_EXPORT_C_INCLUDE_DIRS instead)
endif
$(export_includes): PRIVATE_EXPORT_CFLAGS := $(export_cflags) $(export_includes): PRIVATE_EXPORT_CFLAGS := $(export_cflags)
$(export_includes): $(LOCAL_EXPORT_C_INCLUDE_DEPS) $(export_includes): $(LOCAL_EXPORT_C_INCLUDE_DEPS)
@echo Export includes file: $< -- $@ @echo Export includes file: $< -- $@
@ -190,8 +210,10 @@ my_shared_libraries := $(LOCAL_SHARED_LIBRARIES)
# Extra shared libraries introduced by LOCAL_CXX_STL. # Extra shared libraries introduced by LOCAL_CXX_STL.
include $(BUILD_SYSTEM)/cxx_stl_setup.mk include $(BUILD_SYSTEM)/cxx_stl_setup.mk
ifdef LOCAL_USE_VNDK ifdef LOCAL_USE_VNDK
my_shared_libraries := $(foreach l,$(my_shared_libraries),\ ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l))) my_shared_libraries := $(foreach l,$(my_shared_libraries),\
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
endif
endif endif
$(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \ $(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \
$(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(my_shared_libraries)) $(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(my_shared_libraries))

View File

@ -1,207 +0,0 @@
# Native prebuilt coming from Soong.
# Extra inputs:
# LOCAL_SOONG_LINK_TYPE
# LOCAL_SOONG_TOC
# LOCAL_SOONG_UNSTRIPPED_BINARY
ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK))
$(call pretty-error,soong_cc_prebuilt.mk may only be used from Soong)
endif
skip_module :=
ifdef LOCAL_IS_HOST_MODULE
ifneq ($(HOST_OS),$(LOCAL_MODULE_HOST_OS))
my_prefix := HOST_CROSS_
LOCAL_HOST_PREFIX := $(my_prefix)
else
my_prefix := HOST_
LOCAL_HOST_PREFIX :=
endif
else
my_prefix := TARGET_
endif
ifeq ($($(my_prefix)ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH))
# primary arch
LOCAL_2ND_ARCH_VAR_PREFIX :=
else ifeq ($($(my_prefix)2ND_ARCH),$(LOCAL_MODULE_$(my_prefix)ARCH))
# secondary arch
LOCAL_2ND_ARCH_VAR_PREFIX := $($(my_prefix)2ND_ARCH_VAR_PREFIX)
else
$(call pretty-error,Unsupported LOCAL_MODULE_$(my_prefix)ARCH=$(LOCAL_MODULE_$(my_prefix)ARCH))
endif
ifeq ($(TARGET_TRANSLATE_2ND_ARCH),true)
ifndef LOCAL_IS_HOST_MODULE
ifdef LOCAL_2ND_ARCH_VAR_PREFIX
# Only support shared and static libraries and tests for translated arch
ifeq ($(filter SHARED_LIBRARIES STATIC_LIBRARIES HEADER_LIBRARIES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),)
skip_module := true
endif
endif
endif
endif
ifndef skip_module
# Don't install static libraries by default.
ifndef LOCAL_UNINSTALLABLE_MODULE
ifeq (STATIC_LIBRARIES,$(LOCAL_MODULE_CLASS))
LOCAL_UNINSTALLABLE_MODULE := true
endif
endif
ifeq (SHARED_LIBRARIES,$(LOCAL_MODULE_CLASS))
# LOCAL_COPY_TO_INTERMEDIATE_LIBRARIES indicates that this prebuilt should be
# installed to the common directory of libraries. This is needed for the NDK
# shared libraries built by soong, as we build many different versions of each
# library (one for each API level). Since they all have the same basename,
# they'd clobber each other (as well as any platform libraries by the same
# name).
ifneq ($(LOCAL_COPY_TO_INTERMEDIATE_LIBRARIES),false)
# Put the built targets of all shared libraries in a common directory
# to simplify the link line.
OVERRIDE_BUILT_MODULE_PATH := \
$($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)
endif
endif
#######################################
include $(BUILD_SYSTEM)/base_rules.mk
#######################################
ifneq ($(filter STATIC_LIBRARIES SHARED_LIBRARIES HEADER_LIBRARIES,$(LOCAL_MODULE_CLASS)),)
# Soong module is a static or shared library
export_includes := $(intermediates)/export_includes
$(export_includes): PRIVATE_EXPORT_CFLAGS := $(LOCAL_EXPORT_CFLAGS)
$(export_includes): $(LOCAL_EXPORT_C_INCLUDE_DEPS)
@echo Export includes file: $< -- $@
$(hide) mkdir -p $(dir $@) && rm -f $@
ifdef LOCAL_EXPORT_CFLAGS
$(hide) echo "$(PRIVATE_EXPORT_CFLAGS)" >$@
else
$(hide) touch $@
endif
ifdef LOCAL_SOONG_TOC
$(eval $(call copy-one-file,$(LOCAL_SOONG_TOC),$(LOCAL_BUILT_MODULE).toc))
$(call add-dependency,$(LOCAL_BUILT_MODULE).toc,$(LOCAL_BUILT_MODULE))
$(my_all_targets): $(LOCAL_BUILT_MODULE).toc
ifdef OVERRIDE_BUILT_MODULE_PATH
$(eval $(call copy-one-file,$(LOCAL_BUILT_MODULE).toc,$(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem).toc))
$(call add-dependency,$(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem).toc,$(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem))
$(my_all_targets): $(OVERRIDE_BUILT_MODULE_PATH)/$(my_built_module_stem).toc
endif
endif
SOONG_ALREADY_CONV := $(SOONG_ALREADY_CONV) $(LOCAL_MODULE)
my_link_type := $(LOCAL_SOONG_LINK_TYPE)
my_warn_types :=
my_allowed_types :=
my_link_deps :=
my_2nd_arch_prefix := $(LOCAL_2ND_ARCH_VAR_PREFIX)
my_common :=
include $(BUILD_SYSTEM)/link_type.mk
endif
ifdef LOCAL_USE_VNDK
name_without_suffix := $(patsubst %.vendor,%,$(LOCAL_MODULE))
ifneq ($(name_without_suffix),$(LOCAL_MODULE)
SPLIT_VENDOR.$(LOCAL_MODULE_CLASS).$(name_without_suffix) := 1
endif
name_without_suffix :=
endif
# 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 LOCAL_SHARED_LIBRARIES
my_shared_libraries := $(LOCAL_SHARED_LIBRARIES)
ifdef LOCAL_USE_VNDK
my_shared_libraries := $(foreach l,$(my_shared_libraries),\
$(if $(SPLIT_VENDOR.SHARED_LIBRARIES.$(l)),$(l).vendor,$(l)))
endif
$(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)DEPENDENCIES_ON_SHARED_LIBRARIES += \
$(my_register_name):$(LOCAL_INSTALLED_MODULE):$(subst $(space),$(comma),$(my_shared_libraries))
# We also need the LOCAL_BUILT_MODULE dependency,
# since we use -rpath-link which points to the built module's path.
my_built_shared_libraries := \
$(addprefix $($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_INTERMEDIATE_LIBRARIES)/, \
$(addsuffix $($(my_prefix)SHLIB_SUFFIX), \
$(my_shared_libraries)))
$(LOCAL_BUILT_MODULE) : $(my_built_shared_libraries)
endif
endif
$(LOCAL_BUILT_MODULE): $(LOCAL_PREBUILT_MODULE_FILE)
$(transform-prebuilt-to-target)
ifneq ($(filter EXECUTABLES NATIVE_TESTS,$(LOCAL_MODULE_CLASS)),)
$(hide) chmod +x $@
endif
ifdef LOCAL_SOONG_UNSTRIPPED_BINARY
# Store a copy with symbols for symbolic debugging
my_unstripped_path := $(TARGET_OUT_UNSTRIPPED)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path))
symbolic_output := $(my_unstripped_path)/$(my_installed_module_stem)
$(eval $(call copy-one-file,$(LOCAL_SOONG_UNSTRIPPED_BINARY),$(symbolic_output)))
$(call add-dependency,$(LOCAL_BUILT_MODULE),$(symbolic_output))
ifeq ($(BREAKPAD_GENERATE_SYMBOLS),true)
my_breakpad_path := $(TARGET_OUT_BREAKPAD)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path))
breakpad_output := $(my_breakpad_path)/$(my_installed_module_stem).sym
$(breakpad_output) : $(LOCAL_SOONG_UNSTRIPPED_BINARY) | $(BREAKPAD_DUMP_SYMS) $(PRIVATE_READELF)
@echo "target breakpad: $(PRIVATE_MODULE) ($@)"
@mkdir -p $(dir $@)
$(hide) if $(PRIVATE_READELF) -S $< > /dev/null 2>&1 ; then \
$(BREAKPAD_DUMP_SYMS) -c $< > $@ ; \
else \
echo "skipped for non-elf file."; \
touch $@; \
fi
$(call add-dependency,$(LOCAL_BUILT_MODULE),$(breakpad_output))
endif
endif
ifeq ($(NATIVE_COVERAGE),true)
ifneq (,$(strip $(LOCAL_PREBUILT_COVERAGE_ARCHIVE)))
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_COVERAGE_ARCHIVE),$(intermediates)/$(LOCAL_MODULE).gcnodir))
ifneq ($(LOCAL_UNINSTALLABLE_MODULE),true)
ifdef LOCAL_IS_HOST_MODULE
my_coverage_path := $($(my_prefix)OUT_COVERAGE)/$(patsubst $($(my_prefix)OUT)/%,%,$(my_module_path))
else
my_coverage_path := $(TARGET_OUT_COVERAGE)/$(patsubst $(PRODUCT_OUT)/%,%,$(my_module_path))
endif
my_coverage_path := $(my_coverage_path)/$(patsubst %.so,%,$(my_installed_module_stem)).gcnodir
$(eval $(call copy-one-file,$(LOCAL_PREBUILT_COVERAGE_ARCHIVE),$(my_coverage_path)))
$(LOCAL_BUILT_MODULE): $(my_coverage_path)
endif
else
# Coverage information is needed when static lib is a dependency of another
# coverage-enabled module.
ifeq (STATIC_LIBRARIES, $(LOCAL_MODULE_CLASS))
GCNO_ARCHIVE := $(LOCAL_MODULE).gcnodir
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_OBJECTS :=
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_ALL_WHOLE_STATIC_LIBRARIES :=
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_PREFIX := $(my_prefix)
$(intermediates)/$(GCNO_ARCHIVE) : PRIVATE_2ND_ARCH_VAR_PREFIX := $(LOCAL_2ND_ARCH_VAR_PREFIX)
$(intermediates)/$(GCNO_ARCHIVE) :
$(transform-o-to-static-lib)
endif
endif
endif
# A product may be configured to strip everything in some build variants.
# We do the stripping as a post-install command so that LOCAL_BUILT_MODULE
# is still with the symbols and we don't need to clean it (and relink) when
# you switch build variant.
ifneq ($(filter $(STRIP_EVERYTHING_BUILD_VARIANTS),$(TARGET_BUILD_VARIANT)),)
$(LOCAL_INSTALLED_MODULE): PRIVATE_POST_INSTALL_CMD := \
$($(LOCAL_2ND_ARCH_VAR_PREFIX)TARGET_STRIP) --strip-all $(LOCAL_INSTALLED_MODULE)
endif
endif # !skip_module
skip_module :=