blob: 96815b83e1d8c2bd05dd5da972df7306f646b850 [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
Yifan Hong94b7d2c2018-01-23 15:38:49 -080017###########################################################
18## Remove minor revision from a kernel version. For example,
19## 3.18.0 becomes 3.18.
20## $(1): kernel version
21###########################################################
22define remove-minor-revision
23$(strip $(subst $(space),.,$(wordlist 1,2,$(subst .,$(space),$(strip $(1))))))
24endef
25
26# $(warning $(call remove-minor-revision,3.18.0))
27
Yifan Hong44c9b2e2018-01-23 14:34:41 -080028ifndef LOCAL_MODULE_STEM
29$(error LOCAL_MODULE_STEM must be defined.)
30endif
31
32LOCAL_MODULE := framework_$(LOCAL_MODULE_STEM)
33LOCAL_MODULE_CLASS := ETC
34
35ifndef LOCAL_MODULE_PATH
36LOCAL_MODULE_PATH := $(TARGET_OUT)/etc/vintf
37endif
38
39GEN := $(local-generated-sources-dir)/$(LOCAL_MODULE_STEM)
40
41$(GEN): PRIVATE_ENV_VARS := $(LOCAL_ASSEMBLE_VINTF_ENV_VARS)
42$(GEN): PRIVATE_FLAGS := $(LOCAL_ASSEMBLE_VINTF_FLAGS)
43
44$(GEN): $(LOCAL_GEN_FILE_DEPENDENCIES)
45
46ifeq (true,$(strip $(LOCAL_ADD_VBMETA_VERSION)))
47ifeq (true,$(BOARD_AVB_ENABLE))
48$(GEN): $(AVBTOOL)
49# INTERNAL_AVB_SYSTEM_SIGNING_ARGS consists of BOARD_AVB_SYSTEM_KEY_PATH and
50# BOARD_AVB_SYSTEM_ALGORITHM. We should add the dependency of key path, which
51# is a file, here.
52$(GEN): $(BOARD_AVB_SYSTEM_KEY_PATH)
53# Use deferred assignment (=) instead of immediate assignment (:=).
54# Otherwise, cannot get INTERNAL_AVB_SYSTEM_SIGNING_ARGS.
55$(GEN): FRAMEWORK_VBMETA_VERSION = $$("$(AVBTOOL)" add_hashtree_footer \
56 --print_required_libavb_version \
57 $(INTERNAL_AVB_SYSTEM_SIGNING_ARGS) \
58 $(BOARD_AVB_SYSTEM_ADD_HASHTREE_FOOTER_ARGS))
59else
60$(GEN): FRAMEWORK_VBMETA_VERSION := 0.0
61endif # BOARD_AVB_ENABLE
62$(GEN): PRIVATE_ENV_VARS += FRAMEWORK_VBMETA_VERSION
63endif # LOCAL_ADD_VBMETA_VERSION
64
65ifneq (,$(strip $(LOCAL_KERNEL_VERSIONS)))
66$(GEN): PRIVATE_KERNEL_CONFIG_DATA := kernel/configs
67$(GEN): PRIVATE_KERNEL_VERSIONS := $(LOCAL_KERNEL_VERSIONS)
68$(GEN): $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\
Yifan Hong94b7d2c2018-01-23 15:38:49 -080069 $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(call remove-minor-revision,$(version))/android-base*.cfg))
Yifan Hong44c9b2e2018-01-23 14:34:41 -080070$(GEN): PRIVATE_FLAGS += $(foreach version,$(PRIVATE_KERNEL_VERSIONS),\
71 --kernel=$(version):$(call normalize-path-list,\
Yifan Hong94b7d2c2018-01-23 15:38:49 -080072 $(wildcard $(PRIVATE_KERNEL_CONFIG_DATA)/android-$(call remove-minor-revision,$(version))/android-base*.cfg)))
Yifan Hong44c9b2e2018-01-23 14:34:41 -080073endif
74
75my_matrix_src_files := \
76 $(addprefix $(LOCAL_PATH)/,$(LOCAL_SRC_FILES)) \
77 $(LOCAL_GENERATED_SOURCES)
78
79$(GEN): PRIVATE_SRC_FILES := $(my_matrix_src_files)
80$(GEN): $(my_matrix_src_files) $(HOST_OUT_EXECUTABLES)/assemble_vintf
Yifan Hongb426af32018-02-02 12:47:48 -080081 $(foreach varname,$(PRIVATE_ENV_VARS),$(varname)="$($(varname))") \
Yifan Hong44c9b2e2018-01-23 14:34:41 -080082 $(HOST_OUT_EXECUTABLES)/assemble_vintf \
83 -i $(call normalize-path-list,$(PRIVATE_SRC_FILES)) \
84 -o $@ \
85 $(PRIVATE_FLAGS)
86
87LOCAL_PREBUILT_MODULE_FILE := $(GEN)
88LOCAL_SRC_FILES :=
89LOCAL_GENERATED_SOURCES :=
90
91LOCAL_ADD_VBMETA_VERSION :=
92LOCAL_ASSEMBLE_VINTF_ENV_VARS :=
93LOCAL_ASSEMBLE_VINTF_FLAGS :=
94LOCAL_KERNEL_VERSIONS :=
95LOCAL_GEN_FILE_DEPENDENCIES :=
96my_matrix_src_files :=
97
98include $(BUILD_PREBUILT)
Yifan Hong94b7d2c2018-01-23 15:38:49 -080099
100remove-minor-revision :=