blob: ffe361f7a89f81b89dfbd06a94d9267f501cd1a8 [file] [log] [blame]
Yifan Hongffdad0f2018-02-01 14:50:10 -08001#
2# Copyright (C) 2018 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17LOCAL_PATH := $(call my-dir)
18
Yifan Hongde7a9892019-04-23 16:43:02 -070019# DEVICE_FRAMEWORK_MANIFEST_FILE is a device-specific framework manifest file
20# that installed to the system image. HALs entries should be written to
21# DEVICE_FRAMEWORK_MANIFEST_FILE or PRODUCT_MANIFEST_FILES depend on the path of
22# the module. It is recommended that such device-specific modules to be
23# installed on product partition.
24
Yifan Hongffdad0f2018-02-01 14:50:10 -080025FRAMEWORK_MANIFEST_INPUT_FILES := $(LOCAL_PATH)/manifest.xml
Steven Moreland69b0e662018-06-20 16:00:28 -070026# TODO(b/110487738): replace with vintf_fragment
27ifdef USE_VR_FLINGER
28 FRAMEWORK_MANIFEST_INPUT_FILES += $(LOCAL_PATH)/manifest_vr_hwc.xml
29endif
Yifan Hongffdad0f2018-02-01 14:50:10 -080030ifdef DEVICE_FRAMEWORK_MANIFEST_FILE
31 FRAMEWORK_MANIFEST_INPUT_FILES += $(DEVICE_FRAMEWORK_MANIFEST_FILE)
32endif
33
34# VNDK Version in device compatibility matrix and framework manifest
35ifeq ($(BOARD_VNDK_VERSION),current)
36VINTF_VNDK_VERSION := $(PLATFORM_VNDK_VERSION)
37else
38VINTF_VNDK_VERSION := $(BOARD_VNDK_VERSION)
39endif
40
41# Device Compatibility Matrix
42ifdef DEVICE_MATRIX_FILE
Yifan Hong8731aa12018-02-01 15:19:23 -080043DEVICE_MATRIX_INPUT_FILE := $(DEVICE_MATRIX_FILE)
44else
45DEVICE_MATRIX_INPUT_FILE := $(LOCAL_PATH)/device_compatibility_matrix.default.xml
46endif
47
Yifan Hongffdad0f2018-02-01 14:50:10 -080048include $(CLEAR_VARS)
49LOCAL_MODULE := device_compatibility_matrix.xml
50LOCAL_MODULE_STEM := compatibility_matrix.xml
51LOCAL_MODULE_CLASS := ETC
52LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/vintf
53
54GEN := $(local-generated-sources-dir)/compatibility_matrix.xml
55
56$(GEN): PRIVATE_VINTF_VNDK_VERSION := $(VINTF_VNDK_VERSION)
Yifan Hongb47671b2019-04-22 14:07:23 -070057$(GEN): PRIVATE_DEVICE_MATRIX_INPUT_FILE := $(DEVICE_MATRIX_INPUT_FILE)
Yifan Hong8731aa12018-02-01 15:19:23 -080058$(GEN): $(DEVICE_MATRIX_INPUT_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf
Yifan Hongffdad0f2018-02-01 14:50:10 -080059 REQUIRED_VNDK_VERSION=$(PRIVATE_VINTF_VNDK_VERSION) \
60 BOARD_SYSTEMSDK_VERSIONS="$(BOARD_SYSTEMSDK_VERSIONS)" \
Yifan Hongb47671b2019-04-22 14:07:23 -070061 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
62 -i $(call normalize-path-list,$(PRIVATE_DEVICE_MATRIX_INPUT_FILE)) \
63 -o $@
Yifan Hongffdad0f2018-02-01 14:50:10 -080064
65LOCAL_PREBUILT_MODULE_FILE := $(GEN)
66include $(BUILD_PREBUILT)
67BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE)
Yifan Hongffdad0f2018-02-01 14:50:10 -080068
Yifan Hongde7a9892019-04-23 16:43:02 -070069# System Manifest
Yifan Hongffdad0f2018-02-01 14:50:10 -080070include $(CLEAR_VARS)
Yifan Hongde7a9892019-04-23 16:43:02 -070071LOCAL_MODULE := system_manifest.xml
Yifan Hongffdad0f2018-02-01 14:50:10 -080072LOCAL_MODULE_STEM := manifest.xml
73LOCAL_MODULE_CLASS := ETC
74LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/vintf
75
76GEN := $(local-generated-sources-dir)/manifest.xml
77
Yifan Hongffdad0f2018-02-01 14:50:10 -080078$(GEN): PRIVATE_VINTF_VNDK_VERSION := $(VINTF_VNDK_VERSION)
79$(GEN): PRIVATE_FRAMEWORK_MANIFEST_INPUT_FILES := $(FRAMEWORK_MANIFEST_INPUT_FILES)
80$(GEN): $(FRAMEWORK_MANIFEST_INPUT_FILES) $(HOST_OUT_EXECUTABLES)/assemble_vintf
81 PROVIDED_VNDK_VERSIONS="$(PRIVATE_VINTF_VNDK_VERSION) $(PRODUCT_EXTRA_VNDK_VERSIONS)" \
82 PLATFORM_SYSTEMSDK_VERSIONS="$(PLATFORM_SYSTEMSDK_VERSIONS)" \
83 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
84 -i $(call normalize-path-list,$(PRIVATE_FRAMEWORK_MANIFEST_INPUT_FILES)) \
Steven Moreland7ecc6342018-04-30 16:23:20 -070085 -o $@
Yifan Hongffdad0f2018-02-01 14:50:10 -080086
87LOCAL_PREBUILT_MODULE_FILE := $(GEN)
88include $(BUILD_PREBUILT)
89BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE)
90
Yifan Hongde7a9892019-04-23 16:43:02 -070091# Product Manifest
92ifneq ($(PRODUCT_MANIFEST_FILES),)
93include $(CLEAR_VARS)
94LOCAL_MODULE := product_manifest.xml
95LOCAL_MODULE_STEM := manifest.xml
96LOCAL_MODULE_CLASS := ETC
97LOCAL_MODULE_RELATIVE_PATH := vintf
98GEN := $(local-generated-sources-dir)/manifest.xml
99$(GEN): PRIVATE_PRODUCT_MANIFEST_FILES := $(PRODUCT_MANIFEST_FILES)
100$(GEN): $(PRODUCT_MANIFEST_FILES) $(HOST_OUT_EXECUTABLES)/assemble_vintf
101 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
102 -i $(call normalize-path-list,$(PRIVATE_PRODUCT_MANIFEST_FILES)) \
103 -o $@
104
105LOCAL_PREBUILT_MODULE_FILE := $(GEN)
106include $(BUILD_PREBUILT)
107BUILT_PRODUCT_MANIFEST := $(LOCAL_BUILT_MODULE)
108endif
109
Yifan Hongffdad0f2018-02-01 14:50:10 -0800110VINTF_VNDK_VERSION :=
111FRAMEWORK_MANIFEST_INPUT_FILES :=
Yifan Hongb47671b2019-04-22 14:07:23 -0700112DEVICE_MATRIX_INPUT_FILE :=
Yifan Hongde7a9892019-04-23 16:43:02 -0700113PRODUCT_MANIFEST_INPUT_FILES :=