Loading build/tasks/kernel.mk +126 −32 Original line number Diff line number Diff line Loading @@ -68,16 +68,20 @@ ifneq ($(TARGET_NO_KERNEL),true) KERNEL_SRC := $(TARGET_KERNEL_SOURCE) # kernel configuration - mandatory KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG) RECOVERY_DEFCONFIG := $(TARGET_KERNEL_RECOVERY_CONFIG) VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG) SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG) ## Internal variables DTC := $(HOST_OUT_EXECUTABLES)/dtc KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ RECOVERY_KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/RECOVERY_KERNEL_OBJ DTBO_OUT := $(TARGET_OUT_INTERMEDIATES)/DTBO_OBJ DTB_OUT := $(TARGET_OUT_INTERMEDIATES)/DTB_OBJ KERNEL_CONFIG := $(KERNEL_OUT)/.config KERNEL_RELEASE := $(KERNEL_OUT)/include/config/kernel.release RECOVERY_KERNEL_CONFIG := $(RECOVERY_KERNEL_OUT)/.config RECOVERY_KERNEL_RELEASE := $(RECOVERY_KERNEL_OUT)/include/config/kernel.release ifeq ($(KERNEL_ARCH),x86_64) KERNEL_DEFCONFIG_ARCH := x86 Loading @@ -86,6 +90,7 @@ KERNEL_DEFCONFIG_ARCH := $(KERNEL_ARCH) endif KERNEL_DEFCONFIG_DIR := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(KERNEL_DEFCONFIG) RECOVERY_KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(RECOVERY_DEFCONFIG) ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),) KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG) Loading @@ -103,6 +108,8 @@ $(error BOARD_KERNEL_IMAGE_NAME not defined.) endif TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME) TARGET_PREBUILT_INT_RECOVERY_KERNEL := $(RECOVERY_KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME) ifeq "$(wildcard $(KERNEL_SRC) )" "" ifneq ($(TARGET_PREBUILT_KERNEL),) HAS_PREBUILT_KERNEL := true Loading Loading @@ -155,28 +162,45 @@ else endif endif ifeq ($(FULL_KERNEL_BUILD),true) ifeq ($(NEED_KERNEL_MODULE_ROOT),true) KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery) KERNEL_MODULE_MOUNTPOINT := else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true) KERNEL_MODULES_OUT := $(TARGET_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system) KERNEL_MODULE_MOUNTPOINT := system else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true) KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) ifneq ($(TARGET_KERNEL_RECOVERY_CONFIG),) ifeq "$(wildcard $(KERNEL_SRC) )" "" ifeq ($(TARGET_PREBUILT_RECOVERY_KERNEL),) $(warning ***************************************************************) $(warning * *) $(warning * No recovery kernel source found, and no fallback prebuilt *) $(warning * defined. Please make sure your device is properly *) $(warning * configured to download the kernel repository to $(KERNEL_SRC)) $(warning * or remove TARGET_KERNEL_RECOVERY_CONFIG from BoardConfig.mk *) $(warning * *) $(warning * Or, define the TARGET_PREBUILT_RECOVERY_KERNEL *) $(warning * variable with the path to the prebuilt recovery kernel image*) $(warning * in your BoardConfig.mk file *) $(warning * *) $(warning ***************************************************************) $(error "NO RECOVERY KERNEL SOURCE") endif endif ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),) $(warning ********************************************************) $(warning * TARGET_KERNEL_RECOVERY_CONFIG set but device uses *) $(warning * RECOVERY_AS_BOOT, which uses boot kernel as recovery *) $(warning * kernel, as such it's not possible to use different *) $(warning * configs *) $(warning ********************************************************) $(error "INVALID CONFIGURATION") else KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor) KERNEL_MODULE_MOUNTPOINT := vendor FULL_RECOVERY_KERNEL_BUILD := true RECOVERY_KERNEL_COPY := true RECOVERY_BIN := $(TARGET_PREBUILT_INT_RECOVERY_KERNEL) endif else ifneq ($(TARGET_PREBUILT_RECOVERY_KERNEL),) RECOVERY_BIN := $(TARGET_PREBUILT_RECOVERY_KERNEL) RECOVERY_KERNEL_COPY := true endif endif MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules) ifeq ($(or $(FULL_RECOVERY_KERNEL_BUILD), $(FULL_KERNEL_BUILD)),true) # Add host bin out dir to path PATH_OVERRIDE := PATH=$(KERNEL_BUILD_OUT_PREFIX)$(HOST_OUT_EXECUTABLES):$$PATH ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true) Loading Loading @@ -221,12 +245,37 @@ define internal-make-kernel-target $(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_BUILD_OUT_PREFIX)$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_LD) $(2) endef # Generate kernel .config from a given defconfig # $(1): Output path (The value passed to O=) # $(2): The defconfig to process (just the filename, no need for full path to file) define make-kernel-config $(call internal-make-kernel-target,$(1),VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(2)) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(1)/.config; \ $(call make-kernel-target,oldconfig); \ fi # Create defconfig build artifact $(call internal-make-kernel-target,$(1),savedefconfig) $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(1) $(1)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_BUILD_OUT_PREFIX)$(1)/.config alldefconfig); \ fi endef # Make a kernel target # $(1): The kernel target to build (eg. defconfig, modules, modules_install) define make-kernel-target $(call internal-make-kernel-target,$(KERNEL_OUT),$(1)) endef # Make a recovery kernel target # $(1): The kernel target to build (eg. defconfig, modules, modules_install) define make-recovery-kernel-target $(call internal-make-kernel-target,$(RECOVERY_KERNEL_OUT),$(1)) endef # Make a DTBO target # $(1): The DTBO target to build (eg. dtbo.img, defconfig) define make-dtbo-target Loading @@ -239,6 +288,35 @@ define make-dtb-target $(call internal-make-kernel-target,$(DTB_OUT),$(1)) endef endif # FULL_RECOVERY_KERNEL_BUILD or FULL_KERNEL_BUILD ifeq ($(FULL_KERNEL_BUILD),true) ifeq ($(NEED_KERNEL_MODULE_ROOT),true) KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery) KERNEL_MODULE_MOUNTPOINT := else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true) KERNEL_MODULES_OUT := $(TARGET_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system) KERNEL_MODULE_MOUNTPOINT := system $(INSTALLED_SYSTEMIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true) KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) else KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_VENDORIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) endif MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules) KERNEL_VENDOR_RAMDISK_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor_ramdisk) $(INTERNAL_VENDOR_RAMDISK_TARGET): $(TARGET_PREBUILT_INT_KERNEL) $(KERNEL_OUT): mkdir -p $(KERNEL_OUT) Loading @@ -247,19 +325,7 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): $(KERNEL_OUT) $(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT) @echo "Building Kernel Config" $(call make-kernel-target,VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ $(call make-kernel-target,oldconfig); \ fi # Create defconfig build artifact $(call make-kernel-target,savedefconfig) $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig); \ fi $(call make-kernel-config,$(KERNEL_OUT),$(KERNEL_DEFCONFIG)) $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_CONFIG) $(DEPMOD) $(DTC) @echo "Building Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))" Loading Loading @@ -336,6 +402,22 @@ endif # BOARD_INCLUDE_DTB_IN_BOOTIMG endif # FULL_KERNEL_BUILD ifeq ($(FULL_RECOVERY_KERNEL_BUILD),true) $(RECOVERY_KERNEL_OUT): mkdir -p $(RECOVERY_KERNEL_OUT) $(RECOVERY_KERNEL_CONFIG): $(RECOVERY_KERNEL_DEFCONFIG_SRC) @echo "Building Recovery Kernel Config" $(call make-kernel-config,$(RECOVERY_KERNEL_OUT),$(RECOVERY_DEFCONFIG)) $(TARGET_PREBUILT_INT_RECOVERY_KERNEL): $(RECOVERY_KERNEL_CONFIG) $(DEPMOD) $(DTC) @echo "Building Recovery Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))" $(call make-recovery-kernel-target,$(BOARD_KERNEL_IMAGE_NAME)) endif ## Install it ifeq ($(NEEDS_KERNEL_COPY),true) Loading @@ -347,6 +429,18 @@ $(file) : $(KERNEL_BIN) | $(ACP) ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) endif ifeq ($(RECOVERY_KERNEL_COPY),true) file := $(INSTALLED_RECOVERY_KERNEL) ALL_PREBUILT += $(file) $(file) : $(RECOVERY_BIN) | $(ACP) $(transform-prebuilt-to-target) ALL_PREBUILT += $(INSTALLED_RECOVERY_KERNEL) endif .PHONY: recovery-kernel recovery-kernel: $(INSTALLED_RECOVERY_KERNEL) .PHONY: kernel kernel: $(INSTALLED_KERNEL_TARGET) Loading Loading
build/tasks/kernel.mk +126 −32 Original line number Diff line number Diff line Loading @@ -68,16 +68,20 @@ ifneq ($(TARGET_NO_KERNEL),true) KERNEL_SRC := $(TARGET_KERNEL_SOURCE) # kernel configuration - mandatory KERNEL_DEFCONFIG := $(TARGET_KERNEL_CONFIG) RECOVERY_DEFCONFIG := $(TARGET_KERNEL_RECOVERY_CONFIG) VARIANT_DEFCONFIG := $(TARGET_KERNEL_VARIANT_CONFIG) SELINUX_DEFCONFIG := $(TARGET_KERNEL_SELINUX_CONFIG) ## Internal variables DTC := $(HOST_OUT_EXECUTABLES)/dtc KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/KERNEL_OBJ RECOVERY_KERNEL_OUT := $(TARGET_OUT_INTERMEDIATES)/RECOVERY_KERNEL_OBJ DTBO_OUT := $(TARGET_OUT_INTERMEDIATES)/DTBO_OBJ DTB_OUT := $(TARGET_OUT_INTERMEDIATES)/DTB_OBJ KERNEL_CONFIG := $(KERNEL_OUT)/.config KERNEL_RELEASE := $(KERNEL_OUT)/include/config/kernel.release RECOVERY_KERNEL_CONFIG := $(RECOVERY_KERNEL_OUT)/.config RECOVERY_KERNEL_RELEASE := $(RECOVERY_KERNEL_OUT)/include/config/kernel.release ifeq ($(KERNEL_ARCH),x86_64) KERNEL_DEFCONFIG_ARCH := x86 Loading @@ -86,6 +90,7 @@ KERNEL_DEFCONFIG_ARCH := $(KERNEL_ARCH) endif KERNEL_DEFCONFIG_DIR := $(KERNEL_SRC)/arch/$(KERNEL_DEFCONFIG_ARCH)/configs KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(KERNEL_DEFCONFIG) RECOVERY_KERNEL_DEFCONFIG_SRC := $(KERNEL_DEFCONFIG_DIR)/$(RECOVERY_DEFCONFIG) ifneq ($(TARGET_KERNEL_ADDITIONAL_CONFIG),) KERNEL_ADDITIONAL_CONFIG := $(TARGET_KERNEL_ADDITIONAL_CONFIG) Loading @@ -103,6 +108,8 @@ $(error BOARD_KERNEL_IMAGE_NAME not defined.) endif TARGET_PREBUILT_INT_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME) TARGET_PREBUILT_INT_RECOVERY_KERNEL := $(RECOVERY_KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/$(BOARD_KERNEL_IMAGE_NAME) ifeq "$(wildcard $(KERNEL_SRC) )" "" ifneq ($(TARGET_PREBUILT_KERNEL),) HAS_PREBUILT_KERNEL := true Loading Loading @@ -155,28 +162,45 @@ else endif endif ifeq ($(FULL_KERNEL_BUILD),true) ifeq ($(NEED_KERNEL_MODULE_ROOT),true) KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery) KERNEL_MODULE_MOUNTPOINT := else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true) KERNEL_MODULES_OUT := $(TARGET_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system) KERNEL_MODULE_MOUNTPOINT := system else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true) KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) ifneq ($(TARGET_KERNEL_RECOVERY_CONFIG),) ifeq "$(wildcard $(KERNEL_SRC) )" "" ifeq ($(TARGET_PREBUILT_RECOVERY_KERNEL),) $(warning ***************************************************************) $(warning * *) $(warning * No recovery kernel source found, and no fallback prebuilt *) $(warning * defined. Please make sure your device is properly *) $(warning * configured to download the kernel repository to $(KERNEL_SRC)) $(warning * or remove TARGET_KERNEL_RECOVERY_CONFIG from BoardConfig.mk *) $(warning * *) $(warning * Or, define the TARGET_PREBUILT_RECOVERY_KERNEL *) $(warning * variable with the path to the prebuilt recovery kernel image*) $(warning * in your BoardConfig.mk file *) $(warning * *) $(warning ***************************************************************) $(error "NO RECOVERY KERNEL SOURCE") endif endif ifneq ($(BOARD_USES_RECOVERY_AS_BOOT),) $(warning ********************************************************) $(warning * TARGET_KERNEL_RECOVERY_CONFIG set but device uses *) $(warning * RECOVERY_AS_BOOT, which uses boot kernel as recovery *) $(warning * kernel, as such it's not possible to use different *) $(warning * configs *) $(warning ********************************************************) $(error "INVALID CONFIGURATION") else KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor) KERNEL_MODULE_MOUNTPOINT := vendor FULL_RECOVERY_KERNEL_BUILD := true RECOVERY_KERNEL_COPY := true RECOVERY_BIN := $(TARGET_PREBUILT_INT_RECOVERY_KERNEL) endif else ifneq ($(TARGET_PREBUILT_RECOVERY_KERNEL),) RECOVERY_BIN := $(TARGET_PREBUILT_RECOVERY_KERNEL) RECOVERY_KERNEL_COPY := true endif endif MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules) ifeq ($(or $(FULL_RECOVERY_KERNEL_BUILD), $(FULL_KERNEL_BUILD)),true) # Add host bin out dir to path PATH_OVERRIDE := PATH=$(KERNEL_BUILD_OUT_PREFIX)$(HOST_OUT_EXECUTABLES):$$PATH ifeq ($(TARGET_KERNEL_CLANG_COMPILE),true) Loading Loading @@ -221,12 +245,37 @@ define internal-make-kernel-target $(PATH_OVERRIDE) $(KERNEL_MAKE_CMD) $(KERNEL_MAKE_FLAGS) -C $(KERNEL_SRC) O=$(KERNEL_BUILD_OUT_PREFIX)$(1) ARCH=$(KERNEL_ARCH) $(KERNEL_CROSS_COMPILE) $(KERNEL_CLANG_TRIPLE) $(KERNEL_CC) $(KERNEL_LD) $(2) endef # Generate kernel .config from a given defconfig # $(1): Output path (The value passed to O=) # $(2): The defconfig to process (just the filename, no need for full path to file) define make-kernel-config $(call internal-make-kernel-target,$(1),VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(2)) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(1)/.config; \ $(call make-kernel-target,oldconfig); \ fi # Create defconfig build artifact $(call internal-make-kernel-target,$(1),savedefconfig) $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(1) $(1)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_BUILD_OUT_PREFIX)$(1)/.config alldefconfig); \ fi endef # Make a kernel target # $(1): The kernel target to build (eg. defconfig, modules, modules_install) define make-kernel-target $(call internal-make-kernel-target,$(KERNEL_OUT),$(1)) endef # Make a recovery kernel target # $(1): The kernel target to build (eg. defconfig, modules, modules_install) define make-recovery-kernel-target $(call internal-make-kernel-target,$(RECOVERY_KERNEL_OUT),$(1)) endef # Make a DTBO target # $(1): The DTBO target to build (eg. dtbo.img, defconfig) define make-dtbo-target Loading @@ -239,6 +288,35 @@ define make-dtb-target $(call internal-make-kernel-target,$(DTB_OUT),$(1)) endef endif # FULL_RECOVERY_KERNEL_BUILD or FULL_KERNEL_BUILD ifeq ($(FULL_KERNEL_BUILD),true) ifeq ($(NEED_KERNEL_MODULE_ROOT),true) KERNEL_MODULES_OUT := $(TARGET_ROOT_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery) KERNEL_MODULE_MOUNTPOINT := else ifeq ($(NEED_KERNEL_MODULE_SYSTEM),true) KERNEL_MODULES_OUT := $(TARGET_OUT) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_system) KERNEL_MODULE_MOUNTPOINT := system $(INSTALLED_SYSTEMIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) else ifeq ($(NEED_KERNEL_MODULE_VENDOR_OVERLAY),true) KERNEL_MODULES_OUT := $(TARGET_OUT_PRODUCT)/vendor_overlay/$(PRODUCT_TARGET_VNDK_VERSION) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_product) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_PRODUCTIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) else KERNEL_MODULES_OUT := $(TARGET_OUT_VENDOR) KERNEL_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor) KERNEL_MODULE_MOUNTPOINT := vendor $(INSTALLED_VENDORIMAGE_TARGET): $(TARGET_PREBUILT_INT_KERNEL) endif MODULES_INTERMEDIATES := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,kernel_modules) KERNEL_VENDOR_RAMDISK_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_vendor_ramdisk) $(INTERNAL_VENDOR_RAMDISK_TARGET): $(TARGET_PREBUILT_INT_KERNEL) $(KERNEL_OUT): mkdir -p $(KERNEL_OUT) Loading @@ -247,19 +325,7 @@ $(KERNEL_ADDITIONAL_CONFIG_OUT): $(KERNEL_OUT) $(KERNEL_CONFIG): $(KERNEL_DEFCONFIG_SRC) $(KERNEL_ADDITIONAL_CONFIG_OUT) @echo "Building Kernel Config" $(call make-kernel-target,VARIANT_DEFCONFIG=$(VARIANT_DEFCONFIG) SELINUX_DEFCONFIG=$(SELINUX_DEFCONFIG) $(KERNEL_DEFCONFIG)) $(hide) if [ ! -z "$(KERNEL_CONFIG_OVERRIDE)" ]; then \ echo "Overriding kernel config with '$(KERNEL_CONFIG_OVERRIDE)'"; \ echo $(KERNEL_CONFIG_OVERRIDE) >> $(KERNEL_OUT)/.config; \ $(call make-kernel-target,oldconfig); \ fi # Create defconfig build artifact $(call make-kernel-target,savedefconfig) $(hide) if [ ! -z "$(KERNEL_ADDITIONAL_CONFIG)" ]; then \ echo "Using additional config '$(KERNEL_ADDITIONAL_CONFIG)'"; \ $(KERNEL_SRC)/scripts/kconfig/merge_config.sh -m -O $(KERNEL_OUT) $(KERNEL_OUT)/.config $(KERNEL_SRC)/arch/$(KERNEL_ARCH)/configs/$(KERNEL_ADDITIONAL_CONFIG); \ $(call make-kernel-target,KCONFIG_ALLCONFIG=$(KERNEL_OUT)/.config alldefconfig); \ fi $(call make-kernel-config,$(KERNEL_OUT),$(KERNEL_DEFCONFIG)) $(TARGET_PREBUILT_INT_KERNEL): $(KERNEL_CONFIG) $(DEPMOD) $(DTC) @echo "Building Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))" Loading Loading @@ -336,6 +402,22 @@ endif # BOARD_INCLUDE_DTB_IN_BOOTIMG endif # FULL_KERNEL_BUILD ifeq ($(FULL_RECOVERY_KERNEL_BUILD),true) $(RECOVERY_KERNEL_OUT): mkdir -p $(RECOVERY_KERNEL_OUT) $(RECOVERY_KERNEL_CONFIG): $(RECOVERY_KERNEL_DEFCONFIG_SRC) @echo "Building Recovery Kernel Config" $(call make-kernel-config,$(RECOVERY_KERNEL_OUT),$(RECOVERY_DEFCONFIG)) $(TARGET_PREBUILT_INT_RECOVERY_KERNEL): $(RECOVERY_KERNEL_CONFIG) $(DEPMOD) $(DTC) @echo "Building Recovery Kernel Image ($(BOARD_KERNEL_IMAGE_NAME))" $(call make-recovery-kernel-target,$(BOARD_KERNEL_IMAGE_NAME)) endif ## Install it ifeq ($(NEEDS_KERNEL_COPY),true) Loading @@ -347,6 +429,18 @@ $(file) : $(KERNEL_BIN) | $(ACP) ALL_PREBUILT += $(INSTALLED_KERNEL_TARGET) endif ifeq ($(RECOVERY_KERNEL_COPY),true) file := $(INSTALLED_RECOVERY_KERNEL) ALL_PREBUILT += $(file) $(file) : $(RECOVERY_BIN) | $(ACP) $(transform-prebuilt-to-target) ALL_PREBUILT += $(INSTALLED_RECOVERY_KERNEL) endif .PHONY: recovery-kernel recovery-kernel: $(INSTALLED_RECOVERY_KERNEL) .PHONY: kernel kernel: $(INSTALLED_KERNEL_TARGET) Loading