diff options
Diffstat (limited to 'gki_common.mk')
-rw-r--r-- | gki_common.mk | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/gki_common.mk b/gki_common.mk new file mode 100644 index 0000000..b2b717d --- /dev/null +++ b/gki_common.mk @@ -0,0 +1,111 @@ +# +# Copyright (C) 2022 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. +# + +# The files will be copy from the source folder to the dist folder +_output-kernel-info-files := \ + prebuilt-info.txt \ + manifest.xml \ + + +# Copy the files from the source folder to the dist folder +# +# Skip if the file is not existing. +# +# $(1): file list +# $(2): the source folder +# $(3): the dist folder +define _output_kernel_files +$(foreach f,$(1), \ + $(if $(wildcard $(2)/$(f)), \ + $(call dist-for-goals,dist_files,$(2)/$(f):$(3)/$(f)))) +endef + + +# Output the release kernel prebuilt files to dist folder +# +# $(1): the source folder contains the kernel prebuilt files +# $(2): the dist folder +# +# Notes: +# For mainline kernel, it outputs -allsyms kernel as release kernel. +# +define _output-kernel-user +$(if $(findstring mainline,$(1)), \ + $(eval PRODUCT_COPY_FILES += \ + $(foreach f,$(wildcard $(1)/kernel-*-allsyms), \ + $(f):$(subst -allsyms,,$(notdir $(f))))), \ + $(eval PRODUCT_COPY_FILES += \ + $(call copy-files,$(filter-out *-allsyms,$(wildcard $(1)/kernel-*)),.))) +endef + + +# Output the debug kernel prebuilt files to dist folder +# +# $(1): the source folder contains the kernel prebuilt files +# $(2): the dist folder +# +# Note: +# For mainline kernel, it outputs -allsyms kernel as release kernel, +# so there is no need to output -allsyms again. +# +define _output-kernel-debug +$(if $(findstring mainline,$(1)),, \ + $(eval PRODUCT_COPY_FILES += \ + $(call copy-files,$(wildcard $(1)/kernel-*-allsyms),.))) +endef + + +# Output the kernel prebuilt files to dist folder +# +# $(1): the source folder contains the kernel prebuilt files +# $(2): the dist folder +# +# Example: +# $(call output-kernel,kernel/prebuilts/5.10/arm64,kernel/5.10) +# +define output-kernel +$(call _output-kernel-user,$(1),$(2)) +$(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)), \ + $(call _output-kernel-debug,$(1),$(2))) +$(call _output_kernel_files,$(_output-kernel-info-files),$(1),$(2)) +endef + +# +# Output boot.img and init-boot.img +# +$(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk) +PRODUCT_BUILD_BOOT_IMAGE := true +PRODUCT_BUILD_INIT_BOOT_IMAGE := true + +PRODUCT_BUILD_CACHE_IMAGE := false +PRODUCT_BUILD_ODM_IMAGE := false +PRODUCT_BUILD_VENDOR_DLKM_IMAGE := false +PRODUCT_BUILD_ODM_DLKM_IMAGE := false +PRODUCT_BUILD_PRODUCT_IMAGE := false +PRODUCT_BUILD_RAMDISK_IMAGE := true +PRODUCT_BUILD_SYSTEM_IMAGE := false +PRODUCT_BUILD_SYSTEM_EXT_IMAGE := false +PRODUCT_BUILD_SYSTEM_OTHER_IMAGE := false +PRODUCT_BUILD_USERDATA_IMAGE := false +PRODUCT_BUILD_VENDOR_IMAGE := false +PRODUCT_BUILD_VENDOR_BOOT_IMAGE := false +PRODUCT_BUILD_RECOVERY_IMAGE := false +PRODUCT_BUILD_VBMETA_IMAGE := false +PRODUCT_BUILD_DEBUG_BOOT_IMAGE := false +PRODUCT_BUILD_DEBUG_VENDOR_BOOT_IMAGE := false + +MODULE_BUILD_FROM_SOURCE := true +PRODUCT_EXPORT_BOOT_IMAGE_TO_DIST := true |