improve parallel building
[openwrt.git] / include / kernel-build.mk
index 5544a82..251e985 100644 (file)
@@ -18,13 +18,25 @@ KERNEL_IPKG:=$(KERNEL_BUILD_DIR)/kernel_$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEAS
 TARGETS += $(KERNEL_IPKG)
 INSTALL_TARGETS += $(KERNEL_IPKG)
 
-LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \
+ifneq (,$(findstring uml,$(BOARD)))
+  LINUX_KARCH:=um
+else
+  LINUX_KARCH:=$(shell echo $(ARCH) | sed -e 's/i[3-9]86/i386/' \
        -e 's/mipsel/mips/' \
        -e 's/mipseb/mips/' \
        -e 's/powerpc/ppc/' \
        -e 's/sh[234]/sh/' \
        -e 's/armeb/arm/' \
-)
+  )
+endif
+
+KERNELNAME=
+ifneq (,$(findstring x86,$(BOARD)))
+  KERNELNAME="bzImage"
+endif
+ifneq (,$(findstring ppc,$(BOARD)))
+  KERNELNAME="uImage"
+endif
 
 
 $(TARGETS): $(PACKAGE_DIR)
@@ -38,7 +50,7 @@ $(DL_DIR)/$(LINUX_SOURCE):
 
 $(LINUX_DIR)/.unpacked: $(DL_DIR)/$(LINUX_SOURCE)
        -mkdir -p $(KERNEL_BUILD_DIR)
-       bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) -
+       bzcat $(DL_DIR)/$(LINUX_SOURCE) | tar -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS)
        touch $@
 
 ifeq ($(KERNEL),2.4)
@@ -73,7 +85,7 @@ else
 endif
 
 $(LINUX_DIR)/vmlinux: $(LINUX_DIR)/.linux-compile pkg-install ramdisk-config
-       $(MAKE) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) $(KERNELNAME)
+       $(MAKE) -j$(CONFIG_JLEVEL) -C $(LINUX_DIR) CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) $(KERNELNAME)
 
 $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
        $(KERNEL_CROSS)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S $< $@
@@ -81,7 +93,7 @@ $(LINUX_KERNEL): $(LINUX_DIR)/vmlinux
 
 $(LINUX_DIR)/.modules_done:
        rm -rf $(KERNEL_BUILD_DIR)/modules
-       $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) modules
+       $(MAKE) -j$(CONFIG_JLEVEL) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) modules
        $(MAKE) -C "$(LINUX_DIR)" CROSS_COMPILE="$(KERNEL_CROSS)" CC="$(KERNEL_CC)" ARCH=$(LINUX_KARCH) DEPMOD=true INSTALL_MOD_PATH=$(KERNEL_BUILD_DIR)/modules modules_install
        touch $(LINUX_DIR)/.modules_done