kernel: Support copying modules to recovery
Change-Id: Iac275cfbea368d47f9cc8e756649ab094d9c57c5
diff --git a/build/tasks/kernel.mk b/build/tasks/kernel.mk
index 1c12407..3a37ca0 100644
--- a/build/tasks/kernel.mk
+++ b/build/tasks/kernel.mk
@@ -409,6 +409,12 @@
$(INTERNAL_VENDOR_RAMDISK_TARGET): $(TARGET_PREBUILT_INT_KERNEL)
endif
+ifneq ($(RECOVERY_KERNEL_MODULES),)
+KERNEL_RECOVERY_DEPMOD_STAGING_DIR := $(KERNEL_BUILD_OUT_PREFIX)$(call intermediates-dir-for,PACKAGING,depmod_recovery)
+KERNEL_RECOVERY_MODULES_OUT := $(TARGET_RECOVERY_ROOT_OUT)
+$(recovery_uncompressed_ramdisk): $(TARGET_PREBUILT_INT_KERNEL)
+endif
+
$(KERNEL_OUT):
mkdir -p $(KERNEL_OUT)
@@ -451,6 +457,14 @@
[ $$? -ne 0 ] && exit 1; \
($(call build-image-kernel-modules-lineage,$$vendor_boot_modules,$(KERNEL_VENDOR_RAMDISK_MODULES_OUT),/,$(KERNEL_VENDOR_RAMDISK_DEPMOD_STAGING_DIR),$(BOARD_VENDOR_RAMDISK_KERNEL_MODULES_LOAD))); \
) \
+ $(if $(RECOVERY_KERNEL_MODULES),\
+ recovery_modules=$$(for m in $(RECOVERY_KERNEL_MODULES); do \
+ p=$$(find $$kernel_modules_dir -type f -name $$m); \
+ if [ -n "$$p" ]; then echo $$p; else echo "ERROR: $$m from RECOVERY_KERNEL_MODULES was not found" 1>&2 && exit 1; fi; \
+ done); \
+ [ $$? -ne 0 ] && exit 1; \
+ ($(call build-image-kernel-modules-lineage,$$recovery_modules,$(KERNEL_RECOVERY_MODULES_OUT),/,$(KERNEL_RECOVERY_DEPMOD_STAGING_DIR),$(BOARD_RECOVERY_RAMDISK_KERNEL_MODULES_LOAD))); \
+ ) \
fi
.PHONY: kerneltags