The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1 | ########################################################### |
| 2 | ## Track NOTICE files |
| 3 | ########################################################### |
Dan Willemsen | 3bf15e7 | 2016-07-25 16:03:53 -0700 | [diff] [blame] | 4 | $(call record-module-type,NOTICE_FILE) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 5 | |
Narayan Kamath | 76c7d68 | 2015-12-22 14:34:09 +0000 | [diff] [blame] | 6 | ifneq ($(LOCAL_NOTICE_FILE),) |
| 7 | notice_file:=$(strip $(LOCAL_NOTICE_FILE)) |
| 8 | else |
Bob Badour | 9da828c | 2020-02-13 12:37:33 -0800 | [diff] [blame] | 9 | notice_file:=$(strip $(wildcard $(LOCAL_PATH)/LICENSE $(LOCAL_PATH)/LICENCE $(LOCAL_PATH)/NOTICE)) |
Narayan Kamath | 76c7d68 | 2015-12-22 14:34:09 +0000 | [diff] [blame] | 10 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 11 | |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 12 | ifneq (,$(strip $(LOCAL_LICENSE_PACKAGE_NAME))) |
| 13 | license_package_name:=$(strip $(LOCAL_LICENSE_PACKAGE_NAME)) |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 14 | endif |
| 15 | |
| 16 | ifneq (,$(strip $(LOCAL_LICENSE_INSTALL_MAP))) |
| 17 | install_map:=$(strip $(LOCAL_LICENSE_INSTALL_MAP)) |
| 18 | else |
| 19 | install_map:= |
| 20 | endif |
| 21 | |
| 22 | ifneq (,$(strip $(LOCAL_LICENSE_KINDS))) |
| 23 | license_kinds:=$(strip $(LOCAL_LICENSE_KINDS)) |
| 24 | else |
| 25 | license_kinds:=legacy_by_exception_only |
| 26 | endif |
| 27 | |
| 28 | ifneq (,$(strip $(LOCAL_LICENSE_CONDITIONS))) |
| 29 | license_conditions:=$(strip $(LOCAL_LICENSE_CONDITIONS)) |
| 30 | else |
| 31 | license_conditions:=by_exception_only |
| 32 | endif |
| 33 | |
Torne (Richard Coles) | 63afdc1 | 2012-10-25 15:49:39 +0100 | [diff] [blame] | 34 | ifeq ($(LOCAL_MODULE_CLASS),GYP) |
| 35 | # We ignore NOTICE files for modules of type GYP. |
Steve Block | f55aeb0 | 2012-06-27 01:07:19 +0100 | [diff] [blame] | 36 | notice_file := |
| 37 | endif |
| 38 | |
John Muir | 58d96b1 | 2018-04-11 11:42:26 -0700 | [diff] [blame] | 39 | ifeq ($(LOCAL_MODULE_CLASS),FAKE) |
| 40 | # We ignore NOTICE files for modules of type FAKE. |
| 41 | notice_file := |
| 42 | endif |
| 43 | |
Dan Willemsen | 2be5594 | 2017-04-03 16:06:00 -0700 | [diff] [blame] | 44 | # Soong generates stub libraries that don't need NOTICE files |
| 45 | ifdef LOCAL_NO_NOTICE_FILE |
| 46 | ifneq ($(LOCAL_MODULE_MAKEFILE),$(SOONG_ANDROID_MK)) |
| 47 | $(call pretty-error,LOCAL_NO_NOTICE_FILE should not be used by Android.mk files) |
| 48 | endif |
| 49 | notice_file := |
| 50 | endif |
| 51 | |
Ying Wang | 13d6950 | 2012-11-01 17:22:33 -0700 | [diff] [blame] | 52 | ifeq ($(LOCAL_MODULE_CLASS),NOTICE_FILES) |
| 53 | # If this is a NOTICE-only module, we don't include base_rule.mk, |
| 54 | # so my_prefix is not set at this point. |
| 55 | ifeq ($(LOCAL_IS_HOST_MODULE),true) |
| 56 | my_prefix := HOST_ |
Dan Willemsen | 057aaea | 2015-08-14 12:59:50 -0700 | [diff] [blame] | 57 | LOCAL_HOST_PREFIX := |
Ying Wang | 13d6950 | 2012-11-01 17:22:33 -0700 | [diff] [blame] | 58 | else |
| 59 | my_prefix := TARGET_ |
| 60 | endif |
| 61 | endif |
| 62 | |
Jaewoong Jung | dca3186 | 2019-04-03 08:59:49 -0700 | [diff] [blame] | 63 | installed_notice_file := |
| 64 | |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 65 | is_container:=$(strip $(LOCAL_MODULE_IS_CONTAINER)) |
| 66 | ifeq (,$(is_container)) |
| 67 | ifneq (,$(strip $(filter %.zip %.tar %.tgz %.tar.gz %.apk %.img %.srcszip %.apex, $(LOCAL_BUILT_MODULE)))) |
| 68 | is_container:=true |
| 69 | else |
| 70 | is_container:=false |
| 71 | endif |
| 72 | else ifneq (,$(strip $(filter-out true false,$(is_container)))) |
| 73 | $(error Unrecognized value '$(is_container)' for LOCAL_MODULE_IS_CONTAINER) |
| 74 | endif |
| 75 | |
| 76 | ifeq (true,$(is_container)) |
| 77 | # Include shared libraries' notices for "container" types, but not for binaries etc. |
| 78 | notice_deps := \ |
Bob Badour | 3412a07 | 2021-02-18 17:17:49 -0800 | [diff] [blame] | 79 | $(strip \ |
Bob Badour | 879cfa8 | 2021-04-15 10:41:38 -0700 | [diff] [blame] | 80 | $(foreach d, \ |
| 81 | $(LOCAL_REQUIRED_MODULES) \ |
| 82 | $(LOCAL_STATIC_LIBRARIES) \ |
| 83 | $(LOCAL_WHOLE_STATIC_LIBRARIES) \ |
| 84 | $(LOCAL_SHARED_LIBRARIES) \ |
| 85 | $(LOCAL_DYLIB_LIBRARIES) \ |
| 86 | $(LOCAL_RLIB_LIBRARIES) \ |
| 87 | $(LOCAL_PROC_MACRO_LIBRARIES) \ |
| 88 | $(LOCAL_HEADER_LIBRARIES) \ |
| 89 | $(LOCAL_STATIC_JAVA_LIBRARIES) \ |
| 90 | $(LOCAL_JAVA_LIBRARIES) \ |
| 91 | $(LOCAL_JNI_SHARED_LIBRARIES) \ |
| 92 | ,$(subst :,_,$(d)):static \ |
| 93 | ) \ |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 94 | ) |
| 95 | else |
| 96 | notice_deps := \ |
Bob Badour | 3412a07 | 2021-02-18 17:17:49 -0800 | [diff] [blame] | 97 | $(strip \ |
Bob Badour | 879cfa8 | 2021-04-15 10:41:38 -0700 | [diff] [blame] | 98 | $(foreach d, \ |
| 99 | $(LOCAL_REQUIRED_MODULES) \ |
| 100 | $(LOCAL_STATIC_LIBRARIES) \ |
| 101 | $(LOCAL_WHOLE_STATIC_LIBRARIES) \ |
| 102 | $(LOCAL_RLIB_LIBRARIES) \ |
| 103 | $(LOCAL_PROC_MACRO_LIBRARIES) \ |
| 104 | $(LOCAL_HEADER_LIBRARIES) \ |
| 105 | $(LOCAL_STATIC_JAVA_LIBRARIES) \ |
| 106 | ,$(subst :,_,$(d)):static \ |
| 107 | )$(foreach d, \ |
| 108 | $(LOCAL_SHARED_LIBRARIES) \ |
| 109 | $(LOCAL_DYLIB_LIBRARIES) \ |
| 110 | $(LOCAL_JAVA_LIBRARIES) \ |
| 111 | $(LOCAL_JNI_SHARED_LIBRARIES) \ |
| 112 | ,$(subst :,_,$(d)):dynamic \ |
| 113 | ) \ |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 114 | ) |
| 115 | endif |
| 116 | ifeq ($(LOCAL_IS_HOST_MODULE),true) |
Bob Badour | 879cfa8 | 2021-04-15 10:41:38 -0700 | [diff] [blame] | 117 | notice_deps := $(strip $(notice_deps) $(foreach d,$(LOCAL_HOST_REQUIRED_MODULES),$(subst :,_,$(d)):static)) |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 118 | else |
Bob Badour | 879cfa8 | 2021-04-15 10:41:38 -0700 | [diff] [blame] | 119 | notice_deps := $(strip $(notice_deps) $(foreach d,$(LOCAL_TARGET_REQUIRED_MODULES),$(subst :,_,$(d)):static)) |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 120 | endif |
| 121 | |
Bob Badour | 879cfa8 | 2021-04-15 10:41:38 -0700 | [diff] [blame] | 122 | local_path := $(LOCAL_PATH) |
| 123 | |
Colin Cross | 52a0c97 | 2021-12-03 22:46:20 +0000 | [diff] [blame] | 124 | |
| 125 | module_license_metadata := |
| 126 | |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 127 | ifdef my_register_name |
Bob Badour | d227fac | 2022-06-14 18:18:45 +0000 | [diff] [blame] | 128 | module_license_metadata := $(call local-meta-intermediates-dir)/$(my_register_name).meta_lic |
Colin Cross | 52a0c97 | 2021-12-03 22:46:20 +0000 | [diff] [blame] | 129 | |
Yihan Dong | 9b75c9e | 2022-09-07 11:15:01 +0800 | [diff] [blame^] | 130 | $(foreach target,$(ALL_MODULES.$(my_register_name).BUILT) $(ALL_MODULES.$(my_register_name).INSTALLED) $(foreach bi,$(LOCAL_SOONG_BUILT_INSTALLED),$(call word-colon,1,$(bi))),\ |
Colin Cross | 52a0c97 | 2021-12-03 22:46:20 +0000 | [diff] [blame] | 131 | $(eval ALL_TARGETS.$(target).META_LIC := $(module_license_metadata))) |
| 132 | |
Yihan Dong | 9b75c9e | 2022-09-07 11:15:01 +0800 | [diff] [blame^] | 133 | $(foreach f,$(my_test_data) $(my_test_config),\ |
| 134 | $(if $(strip $(ALL_TARGETS.$(call word-colon,1,$(f)).META_LIC)), \ |
| 135 | $(call declare-copy-target-license-metadata,$(call word-colon,2,$(f)),$(call word-colon,1,$(f))), \ |
| 136 | $(eval ALL_TARGETS.$(call word-colon,2,$(f)).META_LIC := $(module_license_metadata)))) |
| 137 | |
Colin Cross | 52a0c97 | 2021-12-03 22:46:20 +0000 | [diff] [blame] | 138 | ALL_MODULES.$(my_register_name).META_LIC := $(strip $(ALL_MODULES.$(my_register_name).META_LIC) $(module_license_metadata)) |
| 139 | |
Colin Cross | 71d9919 | 2021-12-10 23:05:02 +0000 | [diff] [blame] | 140 | ifdef LOCAL_SOONG_LICENSE_METADATA |
| 141 | # Soong modules have already produced a license metadata file, copy it to where Make expects it. |
Bob Badour | 04fbe29 | 2022-07-29 15:31:21 -0700 | [diff] [blame] | 142 | $(eval $(call copy-one-license-metadata-file, $(LOCAL_SOONG_LICENSE_METADATA), $(module_license_metadata),$(ALL_MODULES.$(my_register_name).BUILT),$(ALL_MODUES.$(my_register_name).INSTALLED))) |
Colin Cross | 71d9919 | 2021-12-10 23:05:02 +0000 | [diff] [blame] | 143 | else |
| 144 | # Make modules don't have enough information to produce a license metadata rule until after fix-notice-deps |
| 145 | # has been called, store the necessary information until later. |
| 146 | ALL_MODULES.$(my_register_name).DELAYED_META_LIC := $(strip $(ALL_MODULES.$(my_register_name).DELAYED_META_LIC) $(module_license_metadata)) |
| 147 | ALL_MODULES.$(my_register_name).LICENSE_PACKAGE_NAME := $(strip $(license_package_name)) |
| 148 | ALL_MODULES.$(my_register_name).MODULE_TYPE := $(strip $(ALL_MODULES.$(my_register_name).MODULE_TYPE) $(LOCAL_MODULE_TYPE)) |
| 149 | ALL_MODULES.$(my_register_name).MODULE_CLASS := $(strip $(ALL_MODULES.$(my_register_name).MODULE_CLASS) $(LOCAL_MODULE_CLASS)) |
| 150 | ALL_MODULES.$(my_register_name).LICENSE_KINDS := $(ALL_MODULES.$(my_register_name).LICENSE_KINDS) $(license_kinds) |
| 151 | ALL_MODULES.$(my_register_name).LICENSE_CONDITIONS := $(ALL_MODULES.$(my_register_name).LICENSE_CONDITIONS) $(license_conditions) |
| 152 | ALL_MODULES.$(my_register_name).LICENSE_INSTALL_MAP := $(ALL_MODULES.$(my_register_name).LICENSE_INSTALL_MAP) $(install_map) |
| 153 | ALL_MODULES.$(my_register_name).NOTICE_DEPS := $(ALL_MODULES.$(my_register_name).NOTICE_DEPS) $(notice_deps) |
| 154 | ALL_MODULES.$(my_register_name).IS_CONTAINER := $(strip $(filter-out false,$(ALL_MODULES.$(my_register_name).IS_CONTAINER) $(is_container))) |
| 155 | ALL_MODULES.$(my_register_name).PATH := $(strip $(ALL_MODULES.$(my_register_name).PATH) $(local_path)) |
| 156 | endif |
Bob Badour | 21bd34f | 2021-01-07 03:34:31 +0000 | [diff] [blame] | 157 | endif |
| 158 | |
David 'Digit' Turner | 3e0e611 | 2011-03-29 14:27:27 +0200 | [diff] [blame] | 159 | ifdef notice_file |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 160 | |
Dan Willemsen | 6493118 | 2018-06-17 21:47:18 -0700 | [diff] [blame] | 161 | ifdef my_register_name |
Bob Badour | 3412a07 | 2021-02-18 17:17:49 -0800 | [diff] [blame] | 162 | ALL_MODULES.$(my_register_name).NOTICES := $(ALL_MODULES.$(my_register_name).NOTICES) $(notice_file) |
Dan Willemsen | 6493118 | 2018-06-17 21:47:18 -0700 | [diff] [blame] | 163 | endif |
| 164 | |
Jaewoong Jung | dca3186 | 2019-04-03 08:59:49 -0700 | [diff] [blame] | 165 | endif # notice_file |