From c465e204008845b96b19024ee183ca2e573c6828 Mon Sep 17 00:00:00 2001 From: Inseob Kim Date: Fri, 15 Nov 2019 09:59:23 +0900 Subject: [PATCH] Implement vendor snapshot Vendor snapshot can be captured with "m dist vendor-snapshot". With vendor snapshot and vndk snapshot, older version of /vendor and newer version of /system will be able to be built together by setting BOARD_VNDK_VERSION to past vendor's version. Only vendor modules under AOSP are to be captured. In detail, modules under following directories are ignored: - cts/ - device/ - external/clang/ - external/llvm/ - hardware/, except for: - interfaces/, libhardware/, libhardware_legacy/, ril/ - vendor/ Bug: 65377115 Test: m dist vendor-snapshot Change-Id: Ib5859e409f8ab281ca137cae21e9ea08abd8a0b1 --- core/tasks/vendor_snapshot.mk | 34 ++++++++++++++++++++++++++++++++++ core/tasks/vndk.mk | 3 ++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 core/tasks/vendor_snapshot.mk diff --git a/core/tasks/vendor_snapshot.mk b/core/tasks/vendor_snapshot.mk new file mode 100644 index 0000000000..8234e3f4ee --- /dev/null +++ b/core/tasks/vendor_snapshot.mk @@ -0,0 +1,34 @@ +# Copyright (C) 2020 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +current_makefile := $(lastword $(MAKEFILE_LIST)) + +# BOARD_VNDK_VERSION must be set to 'current' in order to generate a vendor snapshot. +ifeq ($(BOARD_VNDK_VERSION),current) + +.PHONY: vendor-snapshot +vendor-snapshot: $(SOONG_VENDOR_SNAPSHOT_ZIP) + +$(call dist-for-goals, vendor-snapshot, $(SOONG_VENDOR_SNAPSHOT_ZIP)) + +else # BOARD_VNDK_VERSION is NOT set to 'current' + +.PHONY: vendor-snapshot +vendor-snapshot: PRIVATE_MAKEFILE := $(current_makefile) +vendor-snapshot: + $(call echo-error,$(PRIVATE_MAKEFILE),\ + "CANNOT generate Vendor snapshot. BOARD_VNDK_VERSION must be set to 'current'.") + exit 1 + +endif # BOARD_VNDK_VERSION diff --git a/core/tasks/vndk.mk b/core/tasks/vndk.mk index dccb5f630f..a2973b4c8e 100644 --- a/core/tasks/vndk.mk +++ b/core/tasks/vndk.mk @@ -43,8 +43,9 @@ endif # BOARD_VNDK_VERSION ifneq (,$(error_msg)) .PHONY: vndk +vndk: PRIVATE_MAKEFILE := $(current_makefile) vndk: - $(call echo-error,$(current_makefile),$(error_msg)) + $(call echo-error,$(PRIVATE_MAKEFILE),$(error_msg)) exit 1 endif