blob: 22201faa42b2b75151bc5a8cfc172d1e32d46307 [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
19FRAMEWORK_MANIFEST_INPUT_FILES := $(LOCAL_PATH)/manifest.xml
20ifdef DEVICE_FRAMEWORK_MANIFEST_FILE
21 FRAMEWORK_MANIFEST_INPUT_FILES += $(DEVICE_FRAMEWORK_MANIFEST_FILE)
22endif
23
24# VNDK Version in device compatibility matrix and framework manifest
25ifeq ($(BOARD_VNDK_VERSION),current)
26VINTF_VNDK_VERSION := $(PLATFORM_VNDK_VERSION)
27else
28VINTF_VNDK_VERSION := $(BOARD_VNDK_VERSION)
29endif
30
31# Device Compatibility Matrix
32ifdef DEVICE_MATRIX_FILE
33include $(CLEAR_VARS)
34LOCAL_MODULE := device_compatibility_matrix.xml
35LOCAL_MODULE_STEM := compatibility_matrix.xml
36LOCAL_MODULE_CLASS := ETC
37LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc/vintf
38
39GEN := $(local-generated-sources-dir)/compatibility_matrix.xml
40
41$(GEN): PRIVATE_VINTF_VNDK_VERSION := $(VINTF_VNDK_VERSION)
42$(GEN): $(DEVICE_MATRIX_FILE) $(HOST_OUT_EXECUTABLES)/assemble_vintf
43 REQUIRED_VNDK_VERSION=$(PRIVATE_VINTF_VNDK_VERSION) \
44 BOARD_SYSTEMSDK_VERSIONS="$(BOARD_SYSTEMSDK_VERSIONS)" \
45 $(HOST_OUT_EXECUTABLES)/assemble_vintf -i $< -o $@
46
47LOCAL_PREBUILT_MODULE_FILE := $(GEN)
48include $(BUILD_PREBUILT)
49BUILT_VENDOR_MATRIX := $(LOCAL_BUILT_MODULE)
50endif
51
52# Framework Manifest
53include $(CLEAR_VARS)
54LOCAL_MODULE := framework_manifest.xml
55LOCAL_MODULE_STEM := manifest.xml
56LOCAL_MODULE_CLASS := ETC
57LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/vintf
58
59GEN := $(local-generated-sources-dir)/manifest.xml
60
61$(GEN): PRIVATE_FLAGS :=
62
63ifeq ($(PRODUCT_ENFORCE_VINTF_MANIFEST),true)
64ifdef BUILT_VENDOR_MATRIX
65$(GEN): $(BUILT_VENDOR_MATRIX)
66$(GEN): PRIVATE_FLAGS += -c "$(BUILT_VENDOR_MATRIX)"
67endif
68endif
69
70$(GEN): PRIVATE_VINTF_VNDK_VERSION := $(VINTF_VNDK_VERSION)
71$(GEN): PRIVATE_FRAMEWORK_MANIFEST_INPUT_FILES := $(FRAMEWORK_MANIFEST_INPUT_FILES)
72$(GEN): $(FRAMEWORK_MANIFEST_INPUT_FILES) $(HOST_OUT_EXECUTABLES)/assemble_vintf
73 PROVIDED_VNDK_VERSIONS="$(PRIVATE_VINTF_VNDK_VERSION) $(PRODUCT_EXTRA_VNDK_VERSIONS)" \
74 PLATFORM_SYSTEMSDK_VERSIONS="$(PLATFORM_SYSTEMSDK_VERSIONS)" \
75 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
76 -i $(call normalize-path-list,$(PRIVATE_FRAMEWORK_MANIFEST_INPUT_FILES)) \
77 -o $@ $(PRIVATE_FLAGS)
78
79LOCAL_PREBUILT_MODULE_FILE := $(GEN)
80include $(BUILD_PREBUILT)
81BUILT_SYSTEM_MANIFEST := $(LOCAL_BUILT_MODULE)
82
83VINTF_VNDK_VERSION :=
84FRAMEWORK_MANIFEST_INPUT_FILES :=