Home | History | Annotate | Download | only in board
      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