The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 1 | # |
| 2 | # Set up product-global definitions and include product-specific rules. |
| 3 | # |
| 4 | |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 5 | LOCAL_PATH := $(call my-dir) |
| 6 | |
Jean-Baptiste Queru | 3f4e53a | 2010-09-15 11:59:33 -0700 | [diff] [blame] | 7 | -include $(TARGET_DEVICE_DIR)/AndroidBoard.mk |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 8 | |
| 9 | # Generate a file that contains various information about the |
| 10 | # device we're building for. This file is typically packaged up |
| 11 | # with everything else. |
| 12 | # |
LaMont Jones | e61610d | 2023-09-19 22:55:50 +0000 | [diff] [blame^] | 13 | # The following logic is used to find the contents of the info file: |
| 14 | # 1. TARGET_BOARD_INFO_FILES (can be set in BoardConfig.mk) will be combined. |
| 15 | # 2. TARGET_BOARD_INFO_FILE (can be set in BoardConfig.mk) will be used. |
| 16 | # 3. $(TARGET_DEVICE_DIR)/board-info.txt will be used if present. |
| 17 | # |
| 18 | # Specifying both TARGET_BOARD_INFO_FILES and TARGET_BOARD_INFO_FILE is an |
| 19 | # error. |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 20 | # |
| 21 | INSTALLED_ANDROID_INFO_TXT_TARGET := $(PRODUCT_OUT)/android-info.txt |
LaMont Jones | e61610d | 2023-09-19 22:55:50 +0000 | [diff] [blame^] | 22 | ifdef TARGET_BOARD_INFO_FILES |
| 23 | ifdef TARGET_BOARD_INFO_FILE |
| 24 | $(warning Both TARGET_BOARD_INFO_FILES and TARGET_BOARD_INFO_FILE are defined.) |
| 25 | $(warning Using $(TARGET_BOARD_INFO_FILES) rather than $(TARGET_BOARD_INFO_FILE) for android-info.txt) |
| 26 | endif |
| 27 | board_info_txt := $(call intermediates-dir-for,PACKAGING,board-info)/board-info.txt |
| 28 | $(board_info_txt): $(TARGET_BOARD_INFO_FILES) |
| 29 | $(hide) cat $(TARGET_BOARD_INFO_FILES) > $@ |
| 30 | else ifdef TARGET_BOARD_INFO_FILE |
| 31 | board_info_txt := $(TARGET_BOARD_INFO_FILE) |
| 32 | else |
| 33 | board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) |
Ying Wang | dc31d76 | 2011-06-13 17:36:08 -0700 | [diff] [blame] | 34 | endif |
LaMont Jones | e61610d | 2023-09-19 22:55:50 +0000 | [diff] [blame^] | 35 | |
Spandan Das | ce69e9c | 2022-10-23 01:13:50 +0000 | [diff] [blame] | 36 | CHECK_RADIO_VERSIONS := $(HOST_OUT_EXECUTABLES)/check_radio_versions$(HOST_EXECUTABLE_SUFFIX) |
| 37 | $(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) $(CHECK_RADIO_VERSIONS) |
| 38 | $(hide) $(CHECK_RADIO_VERSIONS) \ |
| 39 | --board_info_txt $(board_info_txt) \ |
| 40 | --board_info_check $(BOARD_INFO_CHECK) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 41 | $(call pretty,"Generated: ($@)") |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 42 | ifdef board_info_txt |
Doug Zongker | 545b799 | 2012-01-19 10:43:49 -0800 | [diff] [blame] | 43 | $(hide) grep -v '#' $< > $@ |
Bowgo Tsai | 9346c4e | 2021-06-03 17:54:31 +0800 | [diff] [blame] | 44 | else ifdef TARGET_BOOTLOADER_BOARD_NAME |
Brian Swetland | 2b80317 | 2009-11-25 13:43:25 -0800 | [diff] [blame] | 45 | $(hide) echo "board=$(TARGET_BOOTLOADER_BOARD_NAME)" > $@ |
Bowgo Tsai | 9346c4e | 2021-06-03 17:54:31 +0800 | [diff] [blame] | 46 | else |
| 47 | $(hide) echo "" > $@ |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 48 | endif |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 49 | |
Bob Badour | 3a0f0c1 | 2022-04-05 10:43:45 -0700 | [diff] [blame] | 50 | $(call declare-0p-target,$(INSTALLED_ANDROID_INFO_TXT_TARGET)) |
| 51 | |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 52 | # Copy compatibility metadata to the device. |
| 53 | |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 54 | # Device Manifest |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 55 | ifdef DEVICE_MANIFEST_FILE |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 56 | # $(DEVICE_MANIFEST_FILE) can be a list of files |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 57 | include $(CLEAR_VARS) |
Yifan Hong | 51be69f | 2020-01-14 13:22:17 -0800 | [diff] [blame] | 58 | LOCAL_MODULE := vendor_manifest.xml |
Bob Badour | 0390580 | 2021-02-12 21:42:54 -0800 | [diff] [blame] | 59 | LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 legacy_not_a_contribution |
| 60 | LOCAL_LICENSE_CONDITIONS := by_exception_only not_allowed notice |
Yifan Hong | 43ec6ea | 2017-12-13 15:03:51 -0800 | [diff] [blame] | 61 | LOCAL_MODULE_STEM := manifest.xml |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 62 | LOCAL_MODULE_CLASS := ETC |
Yifan Hong | 8f86369 | 2018-01-18 17:51:15 -0800 | [diff] [blame] | 63 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/vintf |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 64 | |
| 65 | GEN := $(local-generated-sources-dir)/manifest.xml |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 66 | $(GEN): PRIVATE_DEVICE_MANIFEST_FILE := $(DEVICE_MANIFEST_FILE) |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 67 | $(GEN): $(DEVICE_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 68 | BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) \ |
Yifan Hong | ed42caf | 2017-12-11 17:01:00 -0800 | [diff] [blame] | 69 | PRODUCT_ENFORCE_VINTF_MANIFEST=$(PRODUCT_ENFORCE_VINTF_MANIFEST) \ |
| 70 | PRODUCT_SHIPPING_API_LEVEL=$(PRODUCT_SHIPPING_API_LEVEL) \ |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 71 | $(HOST_OUT_EXECUTABLES)/assemble_vintf -o $@ \ |
| 72 | -i $(call normalize-path-list,$(PRIVATE_DEVICE_MANIFEST_FILE)) |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 73 | |
| 74 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 75 | include $(BUILD_PREBUILT) |
| 76 | endif |
Yifan Hong | b321665 | 2019-02-13 16:32:40 -0800 | [diff] [blame] | 77 | |
Yifan Hong | 07ea2c0 | 2020-03-13 18:31:57 -0700 | [diff] [blame] | 78 | # DEVICE_MANIFEST_SKUS: a list of SKUS where DEVICE_MANIFEST_<sku>_FILES is defined. |
Roopesh Nataraja | 11e776f | 2020-02-26 18:10:57 -0800 | [diff] [blame] | 79 | ifdef DEVICE_MANIFEST_SKUS |
| 80 | |
| 81 | # Install /vendor/etc/vintf/manifest_$(sku).xml |
| 82 | # $(1): sku |
| 83 | define _add_device_sku_manifest |
Yifan Hong | 07ea2c0 | 2020-03-13 18:31:57 -0700 | [diff] [blame] | 84 | my_fragment_files_var := DEVICE_MANIFEST_$$(call to-upper,$(1))_FILES |
Roopesh Nataraja | 11e776f | 2020-02-26 18:10:57 -0800 | [diff] [blame] | 85 | ifndef $$(my_fragment_files_var) |
| 86 | $$(error $(1) is in DEVICE_MANIFEST_SKUS but $$(my_fragment_files_var) is not defined) |
| 87 | endif |
| 88 | my_fragment_files := $$($$(my_fragment_files_var)) |
| 89 | include $$(CLEAR_VARS) |
| 90 | LOCAL_MODULE := vendor_manifest_$(1).xml |
Bob Badour | 0390580 | 2021-02-12 21:42:54 -0800 | [diff] [blame] | 91 | LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 legacy_not_a_contribution |
| 92 | LOCAL_LICENSE_CONDITIONS := by_exception_only not_allowed notice |
Roopesh Nataraja | 11e776f | 2020-02-26 18:10:57 -0800 | [diff] [blame] | 93 | LOCAL_MODULE_STEM := manifest_$(1).xml |
| 94 | LOCAL_MODULE_CLASS := ETC |
| 95 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/vintf |
| 96 | |
| 97 | GEN := $$(local-generated-sources-dir)/manifest_$(1).xml |
| 98 | $$(GEN): PRIVATE_SRC_FILES := $$(my_fragment_files) |
| 99 | $$(GEN): $$(my_fragment_files) $$(HOST_OUT_EXECUTABLES)/assemble_vintf |
Yifan Hong | 610cbc9 | 2020-03-17 15:48:11 -0700 | [diff] [blame] | 100 | BOARD_SEPOLICY_VERS=$$(BOARD_SEPOLICY_VERS) \ |
| 101 | PRODUCT_ENFORCE_VINTF_MANIFEST=$$(PRODUCT_ENFORCE_VINTF_MANIFEST) \ |
| 102 | PRODUCT_SHIPPING_API_LEVEL=$$(PRODUCT_SHIPPING_API_LEVEL) \ |
Roopesh Nataraja | 11e776f | 2020-02-26 18:10:57 -0800 | [diff] [blame] | 103 | $$(HOST_OUT_EXECUTABLES)/assemble_vintf -o $$@ \ |
| 104 | -i $$(call normalize-path-list,$$(PRIVATE_SRC_FILES)) |
| 105 | |
| 106 | LOCAL_PREBUILT_MODULE_FILE := $$(GEN) |
| 107 | include $$(BUILD_PREBUILT) |
| 108 | my_fragment_files_var := |
| 109 | my_fragment_files := |
| 110 | endef |
| 111 | |
| 112 | $(foreach sku, $(DEVICE_MANIFEST_SKUS), $(eval $(call _add_device_sku_manifest,$(sku)))) |
| 113 | _add_device_sku_manifest := |
| 114 | |
| 115 | endif # DEVICE_MANIFEST_SKUS |
| 116 | |
Yifan Hong | b321665 | 2019-02-13 16:32:40 -0800 | [diff] [blame] | 117 | # ODM manifest |
| 118 | ifdef ODM_MANIFEST_FILES |
| 119 | # ODM_MANIFEST_FILES is a list of files that is combined and installed as the default ODM manifest. |
| 120 | include $(CLEAR_VARS) |
| 121 | LOCAL_MODULE := odm_manifest.xml |
Bob Badour | 0390580 | 2021-02-12 21:42:54 -0800 | [diff] [blame] | 122 | LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 legacy_not_a_contribution |
| 123 | LOCAL_LICENSE_CONDITIONS := by_exception_only not_allowed notice |
Yifan Hong | b321665 | 2019-02-13 16:32:40 -0800 | [diff] [blame] | 124 | LOCAL_MODULE_STEM := manifest.xml |
| 125 | LOCAL_MODULE_CLASS := ETC |
| 126 | LOCAL_MODULE_RELATIVE_PATH := vintf |
| 127 | LOCAL_ODM_MODULE := true |
| 128 | |
| 129 | GEN := $(local-generated-sources-dir)/manifest.xml |
| 130 | $(GEN): PRIVATE_SRC_FILES := $(ODM_MANIFEST_FILES) |
| 131 | $(GEN): $(ODM_MANIFEST_FILES) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
| 132 | # Set VINTF_IGNORE_TARGET_FCM_VERSION to true because it should only be in device manifest. |
| 133 | VINTF_IGNORE_TARGET_FCM_VERSION=true \ |
| 134 | $(HOST_OUT_EXECUTABLES)/assemble_vintf -o $@ \ |
| 135 | -i $(call normalize-path-list,$(PRIVATE_SRC_FILES)) |
| 136 | |
| 137 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
| 138 | include $(BUILD_PREBUILT) |
| 139 | endif # ODM_MANIFEST_FILES |
| 140 | |
| 141 | # ODM_MANIFEST_SKUS: a list of SKUS where ODM_MANIFEST_<sku>_FILES are defined. |
| 142 | ifdef ODM_MANIFEST_SKUS |
| 143 | |
| 144 | # Install /odm/etc/vintf/manifest_$(sku).xml |
| 145 | # $(1): sku |
| 146 | define _add_odm_sku_manifest |
| 147 | my_fragment_files_var := ODM_MANIFEST_$$(call to-upper,$(1))_FILES |
| 148 | ifndef $$(my_fragment_files_var) |
| 149 | $$(error $(1) is in ODM_MANIFEST_SKUS but $$(my_fragment_files_var) is not defined) |
| 150 | endif |
| 151 | my_fragment_files := $$($$(my_fragment_files_var)) |
| 152 | include $$(CLEAR_VARS) |
| 153 | LOCAL_MODULE := odm_manifest_$(1).xml |
Bob Badour | 0390580 | 2021-02-12 21:42:54 -0800 | [diff] [blame] | 154 | LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 legacy_not_a_contribution |
| 155 | LOCAL_LICENSE_CONDITIONS := by_exception_only not_allowed notice |
Yifan Hong | b321665 | 2019-02-13 16:32:40 -0800 | [diff] [blame] | 156 | LOCAL_MODULE_STEM := manifest_$(1).xml |
| 157 | LOCAL_MODULE_CLASS := ETC |
| 158 | LOCAL_MODULE_RELATIVE_PATH := vintf |
| 159 | LOCAL_ODM_MODULE := true |
| 160 | GEN := $$(local-generated-sources-dir)/manifest_$(1).xml |
| 161 | $$(GEN): PRIVATE_SRC_FILES := $$(my_fragment_files) |
| 162 | $$(GEN): $$(my_fragment_files) $$(HOST_OUT_EXECUTABLES)/assemble_vintf |
| 163 | VINTF_IGNORE_TARGET_FCM_VERSION=true \ |
| 164 | $$(HOST_OUT_EXECUTABLES)/assemble_vintf -o $$@ \ |
| 165 | -i $$(call normalize-path-list,$$(PRIVATE_SRC_FILES)) |
| 166 | LOCAL_PREBUILT_MODULE_FILE := $$(GEN) |
| 167 | include $$(BUILD_PREBUILT) |
| 168 | my_fragment_files_var := |
| 169 | my_fragment_files := |
| 170 | endef |
| 171 | |
| 172 | $(foreach sku, $(ODM_MANIFEST_SKUS), $(eval $(call _add_odm_sku_manifest,$(sku)))) |
| 173 | _add_odm_sku_manifest := |
| 174 | |
| 175 | endif # ODM_MANIFEST_SKUS |