1 # 2 # Set up product-global definitions and include product-specific rules. 3 # 4 5 LOCAL_PATH := $(call my-dir) 6 7 -include $(TARGET_DEVICE_DIR)/AndroidBoard.mk 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 # 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). 16 # 17 INSTALLED_ANDROID_INFO_TXT_TARGET := $(PRODUCT_OUT)/android-info.txt 18 board_info_txt := $(TARGET_BOARD_INFO_FILE) 19 ifndef board_info_txt 20 board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt) 21 endif 22 $(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt) 23 $(hide) build/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK) 24 $(call pretty,"Generated: ($@)") 25 ifdef board_info_txt 26 $(hide) grep -v '#' $< > $@ 27 else 28 $(hide) echo "board=$(TARGET_BOOTLOADER_BOARD_NAME)" > $@ 29 endif 30 31 # Copy compatibility metadata to the device. 32 33 # Device Manifest 34 ifdef DEVICE_MANIFEST_FILE 35 include $(CLEAR_VARS) 36 LOCAL_MODULE := manifest.xml 37 LOCAL_MODULE_CLASS := ETC 38 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) 39 40 GEN := $(local-generated-sources-dir)/manifest.xml 41 $(GEN): $(DEVICE_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf 42 BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ 43 44 LOCAL_PREBUILT_MODULE_FILE := $(GEN) 45 include $(BUILD_PREBUILT) 46 BUILT_VENDOR_MANIFEST := $(LOCAL_BUILT_MODULE) 47 endif 48 49 # Device Compatibility Matrix 50 ifdef DEVICE_MATRIX_FILE 51 include $(CLEAR_VARS) 52 LOCAL_MODULE := compatibility_matrix.xml 53 LOCAL_MODULE_CLASS := ETC 54 LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR) 55 56 GEN := $(local-generated-sources-dir)/compatibility_matrix.xml 57 $(GEN): $(DEVICE_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf 58 # TODO(b/37342627): put BOARD_VNDK_VERSION & BOARD_VNDK_LIBRARIES into device matrix. 59 $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ 60 61 LOCAL_PREBUILT_MODULE_FILE := $(GEN) 62 include $(BUILD_PREBUILT) 63 BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE) 64 endif 65 66 # Framework Manifest 67 include $(CLEAR_VARS) 68 LOCAL_MODULE := system_manifest.xml 69 LOCAL_MODULE_STEM := manifest.xml 70 LOCAL_MODULE_CLASS := ETC 71 LOCAL_MODULE_PATH := $(TARGET_OUT) 72 73 GEN := $(local-generated-sources-dir)/manifest.xml 74 75 $(GEN): PRIVATE_FLAGS := 76 77 # TODO(b/37954458), (b/37321309) remove check of PRODUCT_FULL_TREBLE after 78 # putting device compatibility matrices for non-treble devices. 79 ifeq ($(PRODUCT_FULL_TREBLE),true) 80 ifdef BUILT_VENDOR_MATRIX 81 $(GEN): $(BUILT_VENDOR_MATRIX) 82 $(GEN): PRIVATE_FLAGS := -c "$(BUILT_VENDOR_MATRIX)" 83 endif 84 endif 85 86 $(GEN): $(FRAMEWORK_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf 87 BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS) 88 89 LOCAL_PREBUILT_MODULE_FILE := $(GEN) 90 include $(BUILD_PREBUILT) 91 BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE) 92 93 # Framework Compatibility Matrix 94 include $(CLEAR_VARS) 95 LOCAL_MODULE := system_compatibility_matrix.xml 96 LOCAL_MODULE_STEM := compatibility_matrix.xml 97 LOCAL_MODULE_CLASS := ETC 98 LOCAL_MODULE_PATH := $(TARGET_OUT) 99 100 GEN := $(local-generated-sources-dir)/compatibility_matrix.xml 101 102 $(GEN): PRIVATE_FLAGS := 103 104 # TODO(b/37954458), (b/37321309) remove check of PRODUCT_FULL_TREBLE after 105 # putting complete HAL manifests on non-treble devices. 106 ifeq ($(PRODUCT_FULL_TREBLE),true) 107 ifdef BUILT_VENDOR_MANIFEST 108 $(GEN): $(BUILT_VENDOR_MANIFEST) 109 $(GEN): PRIVATE_FLAGS := -c "$(BUILT_VENDOR_MANIFEST)" 110 endif 111 endif 112 113 $(GEN): $(FRAMEWORK_COMPATIBILITY_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf 114 # TODO(b/37405869) (b/37715375) inject avb versions as well for devices that have avb enabled. 115 POLICYVERS=$(POLICYVERS) BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS) 116 LOCAL_PREBUILT_MODULE_FILE := $(GEN) 117 include $(BUILD_PREBUILT) 118 BUILT_SYSTEM_COMPATIBILITY_MATRIX := $(LOCAL_BUILT_MODULE) 119