From: "Eugene San (eugenesan)" <eugene...@gmail.com>

Signed-off-by: Eugene San (eugenesan) <eugene...@gmail.com>
---
 Config.in                  |   13 +++++++++++++
 include/kernel-defaults.mk |    6 ++++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/Config.in b/Config.in
index f36221c..f4dbf80 100644
--- a/Config.in
+++ b/Config.in
@@ -307,6 +307,19 @@ menu "Global build settings"
                  If you say Y, toolchain build might break.
                  Before reporting build bugs, set this to N and re-run the 
build.
 
+       config KERNEL_PARALLEL
+               bool
+               prompt "Parallelize the kernel build (May break build)"
+               depends on PKG_BUILD_PARALLEL
+               default n
+               help
+                 Build the kernel with parallel make jobs.
+                 This speeds up the kernel build on SMP machines, but may
+                 break the build for certain toolchain versions.
+
+                 If you say Y, kernel build might break.
+                 Before reporting build bugs, set this to N and re-run the 
build.
+
        comment "Stripping options"
 
        choice
diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk
index 5fd27ae..b637577 100644
--- a/include/kernel-defaults.mk
+++ b/include/kernel-defaults.mk
@@ -5,6 +5,8 @@
 # See /LICENSE for more information.
 #
 
+KERNEL_JOBS?=$(if $(CONFIG_KERNEL_PARALLEL),-j$(CONFIG_PKG_BUILD_JOBS))
+
 KERNEL_MAKEOPTS := -C $(LINUX_DIR) \
        CROSS_COMPILE="$(KERNEL_CROSS)" \
        ARCH="$(LINUX_KARCH)" \
@@ -93,14 +95,14 @@ endef
 
 define Kernel/CompileModules/Default
        rm -f $(LINUX_DIR)/vmlinux $(LINUX_DIR)/System.map
-       +$(MAKE) $(KERNEL_MAKEOPTS) modules
+       +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNEL_JOBS) modules
 endef
 
 OBJCOPY_STRIP = -R .reginfo -R .notes -R .note -R .comment -R .mdebug -R 
.note.gnu.build-id
 
 define Kernel/CompileImage/Default
        $(if $(CONFIG_TARGET_ROOTFS_INITRAMFS),,rm -f $(TARGET_DIR)/init)
-       +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNELNAME)
+       +$(MAKE) $(KERNEL_MAKEOPTS) $(KERNEL_JOBS) $(KERNELNAME)
        $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S 
$(LINUX_DIR)/vmlinux $(LINUX_KERNEL)
        $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux 
$(KERNEL_BUILD_DIR)/vmlinux.elf
 endef
-- 
1.7.6

_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to