blob: 90713d49db9ec150c482fe81868ec36f76c5d621 [file] [log] [blame]
Yifan Hong44c9b2e2018-01-23 14:34:41 -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
17ifndef LOCAL_MODULE_STEM
18$(error LOCAL_MODULE_STEM must be defined.)
19endif
20
21LOCAL_MODULE := framework_$(LOCAL_MODULE_STEM)
22LOCAL_MODULE_CLASS := ETC
23
24ifndef LOCAL_MODULE_PATH
25LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/vintf
26endif
27
28GEN := $(local-generated-sources-dir)/$(LOCAL_MODULE_STEM)
29
30$(GEN): PRIVATE_ENV_VARS := $(LOCAL_ASSEMBLE_VINTF_ENV_VARS)
31$(GEN): PRIVATE_FLAGS := $(LOCAL_ASSEMBLE_VINTF_FLAGS)
32
33$(GEN): $(LOCAL_GEN_FILE_DEPENDENCIES)
34
35ifeq (true,$(strip $(LOCAL_ADD_VBMETA_VERSION)))
36ifeq (true,$(BOARD_AVB_ENABLE))
37$(GEN): $(AVBTOOL)
38# INTERNAL_AVB_SYSTEM_SIGNING_ARGS consists of BOARD_AVB_SYSTEM_KEY_PATH and
39# BOARD_AVB_SYSTEM_ALGORITHM. We should add the dependency of key path, which
40# is a file, here.
41$(GEN): $(BOARD_AVB_SYSTEM_KEY_PATH)
42# Use deferred assignment (=) instead of immediate assignment (:=).
43# Otherwise, cannot get INTERNAL_AVB_SYSTEM_SIGNING_ARGS.
44$(GEN): FRAMEWORK_VBMETA_VERSION = $$("$(AVBTOOL)" add_hashtree_footer \
45 --print_required_libavb_version \
46 $(INTERNAL_AVB_SYSTEM_SIGNING_ARGS) \
47 $(BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS))
48else
49$(GEN): FRAMEWORK_VBMETA_VERSION := 0.0
50endif # BOARD_AVB_ENABLE
51$(GEN): PRIVATE_ENV_VARS += FRAMEWORK_VBMETA_VERSION
52endif # LOCAL_ADD_VBMETA_VERSION
53
54ifneq (,$(strip $(LOCAL_KERNEL_VERSIONS)))
55$(GEN): PRIVATE_KERNEL_CONFIG_DATA := kernel/configs
56$(GEN): PRIVATE_KERNEL_VERSIONS := $(LOCAL_KERNEL_VERSIONS)
57$(GEN): $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\
58 $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(version)/android-base*.cfg))
59$(GEN): PRIVATE_FLAGS += $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\
60 --kernel=$(version):$(call normalize-path-list,\
61 $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(version)/android-base*.cfg)))
62endif
63
64my_matrix_src_files := \
65 $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) \
66 $(LOCAL_GENERATED_SOURCES)
67
68$(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files)
69$(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf
70 $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)=$($(varname))) \
71 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
72 -i $(call normalize-path-list,$(PRIVATE_SRC_FILES)) \
73 -o $@ \
74 $(PRIVATE_FLAGS)
75
76LOCAL_PREBUILT_MODULE_FILE := $(GEN)
77LOCAL_SRC_FILES :=
78LOCAL_GENERATED_SOURCES :=
79
80LOCAL_ADD_VBMETA_VERSION :=
81LOCAL_ASSEMBLE_VINTF_ENV_VARS :=
82LOCAL_ASSEMBLE_VINTF_FLAGS :=
83LOCAL_KERNEL_VERSIONS :=
84LOCAL_GEN_FILE_DEPENDENCIES :=
85my_matrix_src_files :=
86
87include $(BUILD_PREBUILT)