blob: 7f8e349f324e5d4a40d9f8e3dac6dba0620c225e [file] [log] [blame]
The Android Open Source Project88b60792009-03-03 19:28:42 -08001#
2# Set up product-global definitions and include product-specific rules.
3#
4
Michael Schwartz4d9cb562017-04-04 13:01:18 -07005LOCAL_PATH := $(call my-dir)
6
Jean-Baptiste Queru3f4e53a2010-09-15 11:59:33 -07007-include $(TARGET_DEVICE_DIR)/AndroidBoard.mk
The Android Open Source Project88b60792009-03-03 19:28:42 -08008
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 Zongker545b7992012-01-19 10:43:49 -080013# 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 Project88b60792009-03-03 19:28:42 -080016#
17INSTALLED_ANDROID_INFO_TXT_TARGET := $(PRODUCT_OUT)/android-info.txt
Ying Wangdc31d762011-06-13 17:36:08 -070018board_info_txt := $(TARGET_BOARD_INFO_FILE)
Doug Zongker545b7992012-01-19 10:43:49 -080019ifndef board_info_txt
20board_info_txt := $(wildcard $(TARGET_DEVICE_DIR)/board-info.txt)
Ying Wangdc31d762011-06-13 17:36:08 -070021endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080022$(INSTALLED_ANDROID_INFO_TXT_TARGET): $(board_info_txt)
Doug Zongker9296f092012-03-20 16:42:22 -070023 $(hide) build/tools/check_radio_versions.py $< $(BOARD_INFO_CHECK)
The Android Open Source Project88b60792009-03-03 19:28:42 -080024 $(call pretty,"Generated: ($@)")
The Android Open Source Project88b60792009-03-03 19:28:42 -080025ifdef board_info_txt
Doug Zongker545b7992012-01-19 10:43:49 -080026 $(hide) grep -v '#' $< > $@
Brian Swetland2b803172009-11-25 13:43:25 -080027else
28 $(hide) echo "board=$(TARGET_BOOTLOADER_BOARD_NAME)" > $@
The Android Open Source Project88b60792009-03-03 19:28:42 -080029endif
Michael Schwartz4d9cb562017-04-04 13:01:18 -070030
31# Copy compatibility metadata to the device.
32
Yifan Hongb5cbe222017-04-28 14:39:50 -070033# Device Manifest
Michael Schwartz4d9cb562017-04-04 13:01:18 -070034ifdef DEVICE_MANIFEST_FILE
35include $(CLEAR_VARS)
36LOCAL_MODULE := manifest.xml
37LOCAL_MODULE_CLASS := ETC
38LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
Yifan Hong283af592017-04-13 23:30:38 -070039
40GEN := $(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
44LOCAL_PREBUILT_MODULE_FILE := $(GEN)
Michael Schwartz4d9cb562017-04-04 13:01:18 -070045include $(BUILD_PREBUILT)
Yifan Hongaa212212017-04-14 00:00:46 -070046BUILT_VENDOR_MANIFEST := $(LOCAL_BUILT_MODULE)
Michael Schwartz4d9cb562017-04-04 13:01:18 -070047endif
48
Yifan Hongb5cbe222017-04-28 14:39:50 -070049# Device Compatibility Matrix
Michael Schwartz4d9cb562017-04-04 13:01:18 -070050ifdef DEVICE_MATRIX_FILE
51include $(CLEAR_VARS)
Yifan Hongb5cbe222017-04-28 14:39:50 -070052LOCAL_MODULE := compatibility_matrix.xml
Michael Schwartz4d9cb562017-04-04 13:01:18 -070053LOCAL_MODULE_CLASS := ETC
54LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)
Yifan Hongb5cbe222017-04-28 14:39:50 -070055
56GEN := $(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
61LOCAL_PREBUILT_MODULE_FILE := $(GEN)
Michael Schwartz4d9cb562017-04-04 13:01:18 -070062include $(BUILD_PREBUILT)
Yifan Hongaa212212017-04-14 00:00:46 -070063BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE)
Michael Schwartz4d9cb562017-04-04 13:01:18 -070064endif
Yifan Hongaa212212017-04-14 00:00:46 -070065
Yifan Hongb5cbe222017-04-28 14:39:50 -070066# Framework Manifest
Yifan Hongaa212212017-04-14 00:00:46 -070067include $(CLEAR_VARS)
68LOCAL_MODULE := system_manifest.xml
69LOCAL_MODULE_STEM := manifest.xml
70LOCAL_MODULE_CLASS := ETC
71LOCAL_MODULE_PATH := $(TARGET_OUT)
72
73GEN := $(local-generated-sources-dir)/manifest.xml
Yifan Hongc9ad35c2017-05-01 17:23:01 -070074
75$(GEN): PRIVATE_FLAGS :=
76ifdef BUILT_VENDOR_MATRIX
77$(GEN): $(BUILT_VENDOR_MATRIX)
78$(GEN): PRIVATE_FLAGS := -c "$(BUILT_VENDOR_MATRIX)"
79endif
80
Yifan Hongaa212212017-04-14 00:00:46 -070081$(GEN): $(FRAMEWORK_MANIFEST_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf
Yifan Hongc9ad35c2017-05-01 17:23:01 -070082 BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS)
Yifan Hongaa212212017-04-14 00:00:46 -070083
84LOCAL_PREBUILT_MODULE_FILE := $(GEN)
85include $(BUILD_PREBUILT)
86BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE)
Yifan Hongb5cbe222017-04-28 14:39:50 -070087
88# Framework Compatibility Matrix
89include $(CLEAR_VARS)
90LOCAL_MODULE := system_compatibility_matrix.xml
91LOCAL_MODULE_STEM := compatibility_matrix.xml
92LOCAL_MODULE_CLASS := ETC
93LOCAL_MODULE_PATH := $(TARGET_OUT)
94
95GEN := $(local-generated-sources-dir)/compatibility_matrix.xml
Yifan Hongc9ad35c2017-05-01 17:23:01 -070096
97$(GEN): PRIVATE_FLAGS :=
98ifdef BUILT_VENDOR_MANIFEST
99$(GEN): $(BUILT_VENDOR_MANIFEST)
100$(GEN): PRIVATE_FLAGS := -c "$(BUILT_VENDOR_MANIFEST)"
101endif
102
Yifan Hongb5cbe222017-04-28 14:39:50 -0700103$(GEN): $(FRAMEWORK_COMPATIBILITY_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf
104 # TODO(b/37405869) (b/37715375) inject avb versions as well for devices that have avb enabled.
Yifan Hongc9ad35c2017-05-01 17:23:01 -0700105 POLICYVERS=$(POLICYVERS) BOARD_SEPOLICY_VERS=$(BOARD_SEPOLICY_VERS) $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@ $(PRIVATE_FLAGS)
Yifan Hongb5cbe222017-04-28 14:39:50 -0700106LOCAL_PREBUILT_MODULE_FILE := $(GEN)
107include $(BUILD_PREBUILT)
108BUILT_SYSTEM_COMPATIBILITY_MATRIX := $(LOCAL_BUILT_MODULE)