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 | # |
Doug Zongker | 545b799 | 2012-01-19 10:43:49 -0800 | [diff] [blame] | 13 | # If TARGET_BOARD_INFO_FILE (which can be set in BoardConfig.mk) is |
| 14 | # defined, it is used, otherwise board-info.txt is looked for in |
| 15 | # $(TARGET_DEVICE_DIR). |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 16 | # |
| 17 | INSTALLED_ANDROID_INFO_TXT_TARGET := $(PRODUCT_OUT)/android-info.txt |
Ying Wang | dc31d76 | 2011-06-13 17:36:08 -0700 | [diff] [blame] | 18 | board_info_txt := $(TARGET_BOARD_INFO_FILE) |
Doug Zongker | 545b799 | 2012-01-19 10:43:49 -0800 | [diff] [blame] | 19 | ifndef board_info_txt |
| 20 | board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) |
Ying Wang | dc31d76 | 2011-06-13 17:36:08 -0700 | [diff] [blame] | 21 | endif |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 22 | $(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) |
Colin Cross | fdea893 | 2017-12-06 14:38:40 -0800 | [diff] [blame] | 23 | $(hide) build/make/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK) |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 24 | $(call pretty,"Generated: ($@)") |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 25 | ifdef board_info_txt |
Doug Zongker | 545b799 | 2012-01-19 10:43:49 -0800 | [diff] [blame] | 26 | $(hide) grep -v '#' $< > $@ |
Brian Swetland | 2b80317 | 2009-11-25 13:43:25 -0800 | [diff] [blame] | 27 | else |
| 28 | $(hide) echo "board=$(TARGET_BOOTLOADER_BOARD_NAME)" > $@ |
The Android Open Source Project | 88b6079 | 2009-03-03 19:28:42 -0800 | [diff] [blame] | 29 | endif |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 30 | |
| 31 | # Copy compatibility metadata to the device. |
| 32 | |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 33 | # Device Manifest |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 34 | ifdef DEVICE_MANIFEST_FILE |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 35 | # $(DEVICE_MANIFEST_FILE) can be a list of files |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 36 | include $(CLEAR_VARS) |
Yifan Hong | 43ec6ea | 2017-12-13 15:03:51 -0800 | [diff] [blame^] | 37 | LOCAL_MODULE := device_manifest.xml |
| 38 | LOCAL_MODULE_STEM := manifest.xml |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 39 | LOCAL_MODULE_CLASS := ETC |
| 40 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 41 | |
| 42 | GEN := $(local-generated-sources-dir)/manifest.xml |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 43 | $(GEN): PRIVATE_DEVICE_MANIFEST_FILE := $(DEVICE_MANIFEST_FILE) |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 44 | $(GEN): $(DEVICE_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
Yifan Hong | dae462b | 2017-05-24 15:41:53 -0700 | [diff] [blame] | 45 | BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) \ |
| 46 | $(HOST_OUT_EXECUTABLES)/assemble_vintf -o $@ \ |
| 47 | -i $(call normalize-path-list,$(PRIVATE_DEVICE_MANIFEST_FILE)) |
Yifan Hong | 283af59 | 2017-04-13 23:30:38 -0700 | [diff] [blame] | 48 | |
| 49 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 50 | include $(BUILD_PREBUILT) |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 51 | BUILT_VENDOR_MANIFEST := $(LOCAL_BUILT_MODULE) |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 52 | endif |
| 53 | |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 54 | # Device Compatibility Matrix |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 55 | ifdef DEVICE_MATRIX_FILE |
| 56 | include $(CLEAR_VARS) |
Yifan Hong | 43ec6ea | 2017-12-13 15:03:51 -0800 | [diff] [blame^] | 57 | LOCAL_MODULE := device_compatibility_matrix.xml |
| 58 | LOCAL_MODULE_STEM := compatibility_matrix.xml |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 59 | LOCAL_MODULE_CLASS := ETC |
| 60 | LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 61 | |
| 62 | GEN := $(local-generated-sources-dir)/compatibility_matrix.xml |
| 63 | $(GEN): $(DEVICE_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
| 64 | # TODO(b/37342627): put BOARD_VNDK_VERSION & BOARD_VNDK_LIBRARIES into device matrix. |
| 65 | $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ |
| 66 | |
| 67 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 68 | include $(BUILD_PREBUILT) |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 69 | BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE) |
Michael Schwartz | 4d9cb56 | 2017-04-04 13:01:18 -0700 | [diff] [blame] | 70 | endif |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 71 | |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 72 | # Framework Manifest |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 73 | include $(CLEAR_VARS) |
Yifan Hong | 43ec6ea | 2017-12-13 15:03:51 -0800 | [diff] [blame^] | 74 | LOCAL_MODULE := framework_manifest.xml |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 75 | LOCAL_MODULE_STEM := manifest.xml |
| 76 | LOCAL_MODULE_CLASS := ETC |
| 77 | LOCAL_MODULE_PATH := $(TARGET_OUT) |
| 78 | |
| 79 | GEN := $(local-generated-sources-dir)/manifest.xml |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 80 | |
| 81 | $(GEN): PRIVATE_FLAGS := |
Yifan Hong | 4a352c9 | 2017-05-03 15:59:50 -0700 | [diff] [blame] | 82 | |
Steven Moreland | 9588438 | 2017-11-09 11:27:19 -0800 | [diff] [blame] | 83 | ifeq ($(PRODUCT_ENFORCE_VINTF_MANIFEST),true) |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 84 | ifdef BUILT_VENDOR_MATRIX |
| 85 | $(GEN): $(BUILT_VENDOR_MATRIX) |
Yifan Hong | 1aecc84 | 2017-05-16 19:42:18 -0700 | [diff] [blame] | 86 | $(GEN): PRIVATE_FLAGS += -c "$(BUILT_VENDOR_MATRIX)" |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 87 | endif |
Yifan Hong | 4a352c9 | 2017-05-03 15:59:50 -0700 | [diff] [blame] | 88 | endif |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 89 | |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 90 | $(GEN): $(FRAMEWORK_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 91 | BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS) |
Yifan Hong | aa21221 | 2017-04-14 00:00:46 -0700 | [diff] [blame] | 92 | |
| 93 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
| 94 | include $(BUILD_PREBUILT) |
| 95 | BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE) |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 96 | |
| 97 | # Framework Compatibility Matrix |
| 98 | include $(CLEAR_VARS) |
Yifan Hong | 43ec6ea | 2017-12-13 15:03:51 -0800 | [diff] [blame^] | 99 | LOCAL_MODULE := framework_compatibility_matrix.xml |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 100 | LOCAL_MODULE_STEM := compatibility_matrix.xml |
| 101 | LOCAL_MODULE_CLASS := ETC |
| 102 | LOCAL_MODULE_PATH := $(TARGET_OUT) |
| 103 | |
| 104 | GEN := $(local-generated-sources-dir)/compatibility_matrix.xml |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 105 | |
| 106 | $(GEN): PRIVATE_FLAGS := |
Yifan Hong | 4a352c9 | 2017-05-03 15:59:50 -0700 | [diff] [blame] | 107 | |
Steven Moreland | 9588438 | 2017-11-09 11:27:19 -0800 | [diff] [blame] | 108 | ifeq ($(PRODUCT_ENFORCE_VINTF_MANIFEST),true) |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 109 | ifdef BUILT_VENDOR_MANIFEST |
| 110 | $(GEN): $(BUILT_VENDOR_MANIFEST) |
Yifan Hong | 1aecc84 | 2017-05-16 19:42:18 -0700 | [diff] [blame] | 111 | $(GEN): PRIVATE_FLAGS += -c "$(BUILT_VENDOR_MANIFEST)" |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 112 | endif |
Yifan Hong | 4a352c9 | 2017-05-03 15:59:50 -0700 | [diff] [blame] | 113 | endif |
Yifan Hong | c9ad35c | 2017-05-01 17:23:01 -0700 | [diff] [blame] | 114 | |
Bowgo Tsai | eb7b438 | 2017-05-19 12:39:07 +0800 | [diff] [blame] | 115 | ifeq (true,$(BOARD_AVB_ENABLE)) |
| 116 | $(GEN): $(AVBTOOL) |
| 117 | # INTERNAL_AVB_SYSTEM_SIGNING_ARGS consists of BOARD_AVB_SYSTEM_KEY_PATH and |
| 118 | # BOARD_AVB_SYSTEM_ALGORITHM. We should add the dependency of key path, which |
| 119 | # is a file, here. |
| 120 | $(GEN): $(BOARD_AVB_SYSTEM_KEY_PATH) |
| 121 | # Use deferred assignment (=) instead of immediate assignment (:=). |
| 122 | # Otherwise, cannot get INTERNAL_AVB_SYSTEM_SIGNING_ARGS. |
| 123 | FRAMEWORK_VBMETA_VERSION = $$("$(AVBTOOL)" add_hashtree_footer \ |
| 124 | --print_required_libavb_version \ |
| 125 | $(INTERNAL_AVB_SYSTEM_SIGNING_ARGS) \ |
| 126 | $(BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS)) |
| 127 | else |
| 128 | FRAMEWORK_VBMETA_VERSION := 0.0 |
| 129 | endif |
| 130 | |
Yifan Hong | 1aecc84 | 2017-05-16 19:42:18 -0700 | [diff] [blame] | 131 | # All kernel versions that the system image works with. |
Yifan Hong | a508b30 | 2017-08-24 15:02:24 -0700 | [diff] [blame] | 132 | KERNEL_VERSIONS := 3.18 4.4 4.9 |
Steve Muckle | 378c2bb | 2017-09-12 16:26:28 -0700 | [diff] [blame] | 133 | KERNEL_CONFIG_DATA := kernel/configs |
Yifan Hong | a508b30 | 2017-08-24 15:02:24 -0700 | [diff] [blame] | 134 | |
| 135 | $(GEN): $(foreach version,$(KERNEL_VERSIONS),\ |
Yifan Hong | 63e264d | 2017-08-24 15:36:02 -0700 | [diff] [blame] | 136 | $(wildcard $(KERNEL_CONFIG_DATA)/android-$(version)/android-base*.cfg)) |
Yifan Hong | a508b30 | 2017-08-24 15:02:24 -0700 | [diff] [blame] | 137 | $(GEN): PRIVATE_FLAGS += $(foreach version,$(KERNEL_VERSIONS),\ |
Yifan Hong | 63e264d | 2017-08-24 15:36:02 -0700 | [diff] [blame] | 138 | --kernel=$(version):$(call normalize-path-list,\ |
| 139 | $(wildcard $(KERNEL_CONFIG_DATA)/android-$(version)/android-base*.cfg))) |
Yifan Hong | a508b30 | 2017-08-24 15:02:24 -0700 | [diff] [blame] | 140 | |
| 141 | KERNEL_VERSIONS := |
| 142 | KERNEL_CONFIG_DATA := |
Yifan Hong | 1aecc84 | 2017-05-16 19:42:18 -0700 | [diff] [blame] | 143 | |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 144 | $(GEN): $(FRAMEWORK_COMPATIBILITY_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf |
| 145 | # TODO(b/37405869) (b/37715375) inject avb versions as well for devices that have avb enabled. |
Bowgo Tsai | eb7b438 | 2017-05-19 12:39:07 +0800 | [diff] [blame] | 146 | POLICYVERS=$(POLICYVERS) \ |
| 147 | BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) \ |
| 148 | FRAMEWORK_VBMETA_VERSION=$(FRAMEWORK_VBMETA_VERSION) \ |
| 149 | $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS) |
Yifan Hong | b5cbe22 | 2017-04-28 14:39:50 -0700 | [diff] [blame] | 150 | LOCAL_PREBUILT_MODULE_FILE := $(GEN) |
| 151 | include $(BUILD_PREBUILT) |
| 152 | BUILT_SYSTEM_COMPATIBILITY_MATRIX := $(LOCAL_BUILT_MODULE) |