From 6259a09b7aeb9c1598b0538cef709b1212282eb9 Mon Sep 17 00:00:00 2001 From: Bob Badour Date: Wed, 23 Mar 2022 23:28:40 -0700 Subject: [PATCH] Remove unused combine-notice-files macro. Bug: 151177513 Bug: 213388645 Bug: 210912771 Test: m cts reportmissinglicenses Test: m droid reportmissinglicenses Change-Id: I4cddf9a381a1258bdc2b1b42be72c447df10d234 --- core/Makefile | 43 +------------------ core/definitions.mk | 25 ++--------- core/notice_files.mk | 98 -------------------------------------------- 3 files changed, 4 insertions(+), 162 deletions(-) diff --git a/core/Makefile b/core/Makefile index 0e38838861..6486e08566 100644 --- a/core/Makefile +++ b/core/Makefile @@ -1514,48 +1514,7 @@ $(1): $(call corresponding-license-metadata,$(4)) $(HTMLNOTICE) $(BUILD_SYSTEM)/ notice_files: $(1) endef -# Create the rule to combine the files into text and html/xml forms -# $(1) - xml_excluded_system_product_odm_vendor_dlkm_odm_dlkm| -# xml_excluded_vendor_product_odm_vendor_dlkm_odm_dlkm| -# xml_product|xml_odm|xml_system_ext|xml_system|xml_vendor_dlkm| -# xml_odm_dlkm|html -# $(2) - Plain text output file -# $(3) - HTML/XML output file -# $(4) - File title -# $(5) - Directory to use. Notice files are all $(5)/src. Other -# directories in there will be used for scratch -# $(6) - Dependencies for the output files -# $(7) - Directories to exclude -# -# The algorithm here is that we go collect a hash for each of the notice -# files and write the names of the files that match that hash. Then -# to generate the real files, we go print out all of the files and their -# hashes. -# -# These rules are fairly complex, so they depend on this makefile so if -# it changes, they'll run again. -# -# TODO: We could clean this up so that we just record the locations of the -# original notice files instead of making rules to copy them somwehere. -# Then we could traverse that without quite as much bash drama. -define combine-notice-files -$(2): PRIVATE_MESSAGE := $(4) -$(2): PRIVATE_DIR := $(5) -$(2): .KATI_IMPLICIT_OUTPUTS := $(3) -$(2): $(6) $(BUILD_SYSTEM)/Makefile build/make/tools/generate-notice-files.py - build/make/tools/generate-notice-files.py --text-output $(2) $(foreach xdir, $(7), -e $(xdir) )\ - $(if $(filter $(1),xml_excluded_vendor_product_odm_vendor_dlkm_odm_dlkm),-e vendor -e product -e system_ext -e odm -e vendor_dlkm -e odm_dlkm --xml-output, \ - $(if $(filter $(1),xml_excluded_system_product_odm_vendor_dlkm_odm_dlkm),-e system -e product -e system_ext -e odm -e vendor_dlkm -e odm_dlkm --xml-output, \ - $(if $(filter $(1),xml_product),-i product --xml-output, \ - $(if $(filter $(1),xml_system_ext),-i system_ext --xml-output, \ - $(if $(filter $(1),xml_system),-i system --xml-output, \ - $(if $(filter $(1),xml_odm),-i odm --xml-output, \ - $(if $(filter $(1),xml_vendor_dlkm),-i vendor_dlkm --xml-output, \ - $(if $(filter $(1),xml_odm_dlkm),-i odm_dlkm --xml-output, \ - --html-output)))))))) $(3) \ - -t $$(PRIVATE_MESSAGE) $$(foreach dir,$$(sort $$(PRIVATE_DIR)), -s $$(dir)/src) -notice_files: $(2) $(3) -endef +$(KATI_obsolete_var combine-notice-files, To create notice files use xml-notice-rule, html-notice-rule, or text-notice-rule.) # Notice file logic isn't relevant for TARGET_BUILD_APPS ifndef TARGET_BUILD_APPS diff --git a/core/definitions.mk b/core/definitions.mk index 7308a38fbd..0d72473efa 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -586,10 +586,11 @@ endef ## License metadata build rule for my_register_name $(1) ########################################################### define license-metadata-rule -$(foreach meta_lic, $(subst //,/,$(ALL_MODULES.$(1).DELAYED_META_LIC)),$(call _license-metadata-rule,$(1),$(meta_lic))) -$(call notice-rule,$(1)) +$(foreach meta_lic, $(ALL_MODULES.$(1).DELAYED_META_LIC),$(call _license-metadata-rule,$(1),$(meta_lic))) endef +$(KATI_obsolete_var notice-rule, This function has been removed) + define _license-metadata-rule $(strip $(eval _srcs := $(strip $(foreach d,$(ALL_MODULES.$(1).NOTICE_DEPS),$(if $(strip $(ALL_MODULES.$(call word-colon,1,$(d)).INSTALLED)), $(ALL_MODULES.$(call word-colon,1,$(d)).INSTALLED),$(if $(strip $(ALL_MODULES.$(call word-colon,1,$(d)).BUILT)), $(ALL_MODULES.$(call word-colon,1,$(d)).BUILT), $(call word-colon,1,$d))))))) $(strip $(eval _deps := $(sort $(filter-out $(2)%,\ @@ -648,26 +649,6 @@ $(2) : $(foreach d,$(_deps),$(call word-colon,1,$(d))) $(foreach n,$(_notices),$ -o $$@ endef -define notice-rule -$(strip $(eval _mifs := $(sort $(ALL_MODULES.$(1).MODULE_INSTALLED_FILENAMES)))) -$(strip $(eval _infs := $(sort $(ALL_MODULES.$(1).INSTALLED_NOTICE_FILE)))) - -# Emit each installed notice file rule if it references the current module -$(if $(_infs),$(foreach inf,$(_infs), -$(if $(strip $(filter $(1),$(INSTALLED_NOTICE_FILES.$(inf).MODULE))), -$(strip $(eval _mif := $(firstword $(foreach m,$(_mifs),$(if $(filter %/src/$(m).txt,$(inf)),$(m)))))) - -$(inf): PRIVATE_INSTALLED_MODULE := $(_mif) -$(inf) : PRIVATE_NOTICES := $(sort $(foreach n,$(_notices),$(call word-colon,1,$(n) ))) - -$(inf): $(foreach n,$(_notices),$(call word-colon,1,$(n)) ) - @echo Notice file: $$< -- $$@ - mkdir -p $$(dir $$@) - awk 'FNR==1 && NR > 1 {print "\n"} {print}' $$(PRIVATE_NOTICES) > $$@ - -))) - -endef ########################################################### ## License metadata build rule for non-module target $(1) diff --git a/core/notice_files.mk b/core/notice_files.mk index 8b2dade8bb..c05d4ea0be 100644 --- a/core/notice_files.mk +++ b/core/notice_files.mk @@ -157,102 +157,4 @@ ifdef my_register_name ALL_MODULES.$(my_register_name).NOTICES := $(ALL_MODULES.$(my_register_name).NOTICES) $(notice_file) endif -# This relies on the name of the directory in PRODUCT_OUT matching where -# it's installed on the target - i.e. system, data, etc. This does -# not work for root and isn't exact, but it's probably good enough for -# compliance. -# Includes the leading slash -ifdef LOCAL_INSTALLED_MODULE - module_installed_filename := $(patsubst $(PRODUCT_OUT)/%,%,$(LOCAL_INSTALLED_MODULE)) -else - # This module isn't installable - ifneq ($(filter STATIC_LIBRARIES RLIB_LIBRARIES PROC_MACRO_LIBRARIES HEADER_LIBRARIES,$(LOCAL_MODULE_CLASS)),) - # Stick the static libraries with the dynamic libraries. - # We can't use xxx_OUT_STATIC_LIBRARIES because it points into - # device-obj or host-obj. - module_installed_filename := \ - $(patsubst $(PRODUCT_OUT)/%,%,$($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_SHARED_LIBRARIES))/$(notdir $(LOCAL_BUILT_MODULE)) - else ifeq ($(LOCAL_MODULE_CLASS),SHARED_LIBRARIES) - # Shared modules may be uninstallable(e.g. TARGET_SKIP_CURRENT_VNDK=true) - module_installed_filename := - else - ifeq ($(LOCAL_MODULE_CLASS),JAVA_LIBRARIES) - # Stick the static java libraries with the regular java libraries. - module_leaf := $(notdir $(LOCAL_BUILT_MODULE)) - # javalib.jar is the default name for the build module (and isn't meaningful) - # If that's what we have, substitute the module name instead. These files - # aren't included on the device, so this name is synthetic anyway. - # Extra path "static" is added to try to avoid name conflict between the notice file of - # this 'uninstallable' Java module and the notice file for another 'installable' Java module - # whose stem is the same as this module's name. - ifneq ($(filter javalib.jar,$(module_leaf)),) - module_leaf := static/$(LOCAL_MODULE).jar - endif - module_installed_filename := \ - $(patsubst $(PRODUCT_OUT)/%,%,$($(my_prefix)OUT_JAVA_LIBRARIES))/$(module_leaf) - else ifneq ($(filter ETC DATA,$(LOCAL_MODULE_CLASS)),) - # ETC and DATA modules may be uninstallable, yet still have a NOTICE file. - # e.g. apex components - module_installed_filename := - else ifneq (,$(and $(filter %.sdk,$(LOCAL_MODULE)),$(filter $(patsubst %.sdk,%,$(LOCAL_MODULE)),$(SOONG_SDK_VARIANT_MODULES)))) - # Soong produces uninstallable *.sdk shared libraries for embedding in APKs. - module_installed_filename := \ - $(patsubst $(PRODUCT_OUT)/%,%,$($(LOCAL_2ND_ARCH_VAR_PREFIX)$(my_prefix)OUT_SHARED_LIBRARIES))/$(notdir $(LOCAL_BUILT_MODULE)) - endif # JAVA_LIBRARIES - endif # STATIC_LIBRARIES -endif - -ifdef module_installed_filename - -# In case it's actually a host file -module_installed_filename := $(patsubst $(HOST_OUT)/%,%,$(module_installed_filename)) -module_installed_filename := $(patsubst $(HOST_CROSS_OUT)/%,%,$(module_installed_filename)) - -installed_notice_file := $($(my_prefix)OUT_NOTICE_FILES)/src/$(module_installed_filename).txt - -$(installed_notice_file): $(module_license_metadata) - -ifdef my_register_name -ALL_MODULES.$(my_register_name).INSTALLED_NOTICE_FILE := $(ALL_MODULES.$(my_register_name).INSTALLED_NOTICE_FILE) $(installed_notice_file) -ALL_MODULES.$(my_register_name).MODULE_INSTALLED_FILENAMES := $(ALL_MODULES.$(my_register_name).MODULE_INSTALLED_FILENAMES) $(module_installed_filename) -INSTALLED_NOTICE_FILES.$(installed_notice_file).MODULE := $(my_register_name) -else -$(installed_notice_file): PRIVATE_INSTALLED_MODULE := $(module_installed_filename) -$(installed_notice_file) : PRIVATE_NOTICES := $(sort $(foreach n,$(notice_file),$(if $(filter %:%,$(n)), $(call word-colon,1,$(n)), $(n)))) - -$(installed_notice_file): $(foreach n,$(notice_file),$(if $(filter %:%,$(n)), $(call word-colon,1,$(n)), $(n))) - @echo Notice file: $< -- $@ - $(hide) mkdir -p $(dir $@) - $(hide) awk 'FNR==1 && NR > 1 {print "\n"} {print}' $(PRIVATE_NOTICES) > $@ -endif - -ifdef LOCAL_INSTALLED_MODULE -# Make LOCAL_INSTALLED_MODULE depend on NOTICE files if they exist -# libraries so they get installed along with it. Make it an order-only -# dependency so we don't re-install a module when the NOTICE changes. -$(LOCAL_INSTALLED_MODULE): | $(installed_notice_file) -endif - -# To facilitate collecting NOTICE files for apps_only build, -# we install the NOTICE file even if a module gets built but not installed, -# because shared jni libraries won't be installed to the system image. -ifdef TARGET_BUILD_APPS -# for static Java libraries, we don't need to even build LOCAL_BUILT_MODULE, -# but just javalib.jar in the common intermediate dir. -ifeq ($(LOCAL_MODULE_CLASS),JAVA_LIBRARIES) -$(intermediates.COMMON)/javalib.jar : | $(installed_notice_file) -else -$(LOCAL_BUILT_MODULE): | $(installed_notice_file) -endif # JAVA_LIBRARIES -endif # TARGET_BUILD_APPS - -endif # module_installed_filename endif # notice_file - -# Create a predictable, phony target to build this notice file. -# Define it even if the notice file doesn't exist so that other -# modules can depend on it. -notice_target := NOTICE-$(if \ - $(LOCAL_IS_HOST_MODULE),HOST$(if $(my_host_cross),_CROSS,),TARGET)-$(LOCAL_MODULE_CLASS)-$(LOCAL_MODULE) -.PHONY: $(notice_target) -$(notice_target): $(installed_notice_file)