Author: nbd
Date: 2016-01-06 19:38:49 +0100 (Wed, 06 Jan 2016)
New Revision: 48145

Modified:
   trunk/include/image.mk
   trunk/include/kernel-defaults.mk
Log:
build: skip rebuild of kernel images if the source did not change

Signed-off-by: Felix Fietkau <[email protected]>

Modified: trunk/include/image.mk
===================================================================
--- trunk/include/image.mk      2016-01-06 18:38:44 UTC (rev 48144)
+++ trunk/include/image.mk      2016-01-06 18:38:49 UTC (rev 48145)
@@ -357,7 +357,7 @@
 
 define Build/kernel-bin
        rm -f $@
-       cp $^ $@
+       cp $< $@
 endef
 
 define Build/patch-cmdline
@@ -444,6 +444,7 @@
   KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs
   KERNEL_INSTALL :=
   KERNEL_NAME := vmlinux
+  KERNEL_DEPENDS :=
   KERNEL_SIZE :=
 
   FILESYSTEMS := $(TARGET_FILESYSTEMS)
@@ -468,11 +469,11 @@
   $(call Device/Export,$(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE),$(1))
   $$(_TARGET): $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE)
 
-  $(KDIR)/$$(KERNEL_INITRAMFS_NAME): image_prepare
+  $(KDIR)/$$(KERNEL_INITRAMFS_NAME):: image_prepare
   $(BIN_DIR)/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE)
        cp $$^ $$@
 
-  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME)
+  $(KDIR)/tmp/$$(KERNEL_INITRAMFS_IMAGE): $(KDIR)/$$(KERNEL_INITRAMFS_NAME) 
$(CURDIR)/Makefile $$(KERNEL_DEPENDS)
        @rm -f $$@
        $$(call concat_cmd,$$(KERNEL_INITRAMFS))
 endef
@@ -495,7 +496,7 @@
 
 define Device/Build/kernel
   _KERNEL_IMAGES += $(KDIR)/$$(KERNEL_NAME)
-  $(KDIR)/$$(KERNEL_NAME): image_prepare
+  $(KDIR)/$$(KERNEL_NAME):: image_prepare
   $$(_TARGET): $$(if $$(KERNEL_INSTALL),$(BIN_DIR)/$$(KERNEL_IMAGE))
   $(call Device/Export,$(KDIR)/$$(KERNEL_IMAGE),$(1))
   $(BIN_DIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_IMAGE)
@@ -504,7 +505,7 @@
     ifdef CONFIG_IB
       install: $(KDIR)/$$(KERNEL_IMAGE)
     endif
-    $(KDIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME)
+    $(KDIR)/$$(KERNEL_IMAGE): $(KDIR)/$$(KERNEL_NAME) $(CURDIR)/Makefile 
$$(KERNEL_DEPENDS)
        @rm -f $$@
        $$(call concat_cmd,$$(KERNEL))
        $$(if $$(KERNEL_SIZE),$$(call Device/Build/check_size,$$(KERNEL_SIZE)))
@@ -581,9 +582,6 @@
   $(foreach device,$(TARGET_DEVICES),$(call Device,$(device)))
   $(foreach fs,$(TARGET_FILESYSTEMS) $(fs-subtypes-y),$(call 
BuildImage/mkfs,$(fs)))
 
-  $$(sort $$(_KERNEL_IMAGES)):
-       @touch $$@
-
   install: kernel_prepare
        $(foreach fs,$(TARGET_FILESYSTEMS),
                $(call Image/Build,$(fs))

Modified: trunk/include/kernel-defaults.mk
===================================================================
--- trunk/include/kernel-defaults.mk    2016-01-06 18:38:44 UTC (rev 48144)
+++ trunk/include/kernel-defaults.mk    2016-01-06 18:38:49 UTC (rev 48145)
@@ -138,13 +138,15 @@
 endif
 
 define Kernel/CopyImage
-       $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S 
$(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1)
-       $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux 
$(KERNEL_BUILD_DIR)/vmlinux$(1).elf
-       $(CP) $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux.debug
-       $(foreach k, \
-               $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out 
dtbs,$(KERNELNAME))), \
-               $(CP) $(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) 
$(KERNEL_BUILD_DIR)/$(k)$(1); \
-       )
+       cmp -s $(LINUX_DIR)/vmlinux $(KERNEL_BUILD_DIR)/vmlinux$(1).debug || { \
+               $(KERNEL_CROSS)objcopy -O binary $(OBJCOPY_STRIP) -S 
$(LINUX_DIR)/vmlinux $(LINUX_KERNEL)$(1); \
+               $(KERNEL_CROSS)objcopy $(OBJCOPY_STRIP) -S $(LINUX_DIR)/vmlinux 
$(KERNEL_BUILD_DIR)/vmlinux$(1).elf; \
+               $(CP) $(LINUX_DIR)/vmlinux 
$(KERNEL_BUILD_DIR)/vmlinux$(1).debug; \
+               $(foreach k, \
+                       $(if $(KERNEL_IMAGES),$(KERNEL_IMAGES),$(filter-out 
dtbs,$(KERNELNAME))), \
+                       $(CP) 
$(LINUX_DIR)/arch/$(LINUX_KARCH)/boot/$(IMAGES_DIR)/$(k) 
$(KERNEL_BUILD_DIR)/$(k)$(1); \
+               ) \
+       }
 endef
 
 define Kernel/CompileImage/Default
_______________________________________________
openwrt-commits mailing list
[email protected]
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-commits

Reply via email to