# # 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 # # 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 # # 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)) $(call _output_kernel_files,$(_output-kernel-info-files),$(1),$(2)) $(if $(filter userdebug eng,$(TARGET_BUILD_VARIANT)), \ $(call _output-kernel-debug,$(1)) \ $(call _output_kernel_files,$(_output-kernel-info-files),$(1),$(2)-debug)) endef # # Output boot.img # $(call inherit-product, $(SRC_TARGET_DIR)/product/generic_ramdisk.mk) PRODUCT_BUILD_BOOT_IMAGE := true PRODUCT_BUILD_INIT_BOOT_IMAGE := false 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