From 579668b122d88b9c810238412ab003192bf15d2b Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 14 Aug 2018 13:13:47 -0700 Subject: [PATCH] Track more static dependencies for notice files Track transitive static dependencies of native binaries, and and direct and transitive static dependencies of java and app modules. Bug: 112331930 Test: m checkbuild Change-Id: I0e19971033d6254bfbb6555f0e68fd5e529569c6 --- core/binary.mk | 8 +++----- core/java_common.mk | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/core/binary.mk b/core/binary.mk index 73d420cfc0..4a65c6ea7b 100644 --- a/core/binary.mk +++ b/core/binary.mk @@ -1608,6 +1608,9 @@ else installed_static_library_notice_file_targets := endif +$(notice_target): | $(installed_static_library_notice_file_targets) +$(LOCAL_INSTALLED_MODULE): | $(notice_target) + # Default is -fno-rtti. ifeq ($(strip $(LOCAL_RTTI_FLAG)),) LOCAL_RTTI_FLAG := -fno-rtti @@ -1813,11 +1816,6 @@ all_libraries := \ $(built_static_libraries) \ $(built_whole_libraries) -# Also depend on the notice files for any static libraries that -# are linked into this module. This will force them to be installed -# when this module is. -$(LOCAL_INSTALLED_MODULE): | $(installed_static_library_notice_file_targets) - ########################################################### # Export includes ########################################################### diff --git a/core/java_common.mk b/core/java_common.mk index d63c15fae7..9c4fa89c8b 100644 --- a/core/java_common.mk +++ b/core/java_common.mk @@ -487,6 +487,21 @@ $(LOCAL_INTERMEDIATE_TARGETS): PRIVATE_SHARED_JAVA_HEADER_LIBRARIES := $(full_sh ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR := \ $(ALL_MODULES.$(my_register_name).INTERMEDIATE_SOURCE_DIR) $(LOCAL_INTERMEDIATE_SOURCE_DIR) + +########################################################## +# Copy NOTICE files of transitive static dependencies +# Don't do this in mm, since many of the targets won't exist. +ifeq ($(ONE_SHOT_MAKEFILE),) +installed_static_library_notice_file_targets := \ + $(foreach lib,$(LOCAL_STATIC_JAVA_LIBRARIES), \ + NOTICE-$(if $(LOCAL_IS_HOST_MODULE),HOST,TARGET)-JAVA_LIBRARIES-$(lib)) +else +installed_static_library_notice_file_targets := +endif + +$(notice_target): | $(installed_static_library_notice_file_targets) +$(LOCAL_INSTALLED_MODULE): | $(notice_target) + ########################################################### # Verify that all libraries are safe to use ###########################################################