diff options
author | Felix Fietkau <nbd@openwrt.org> | 2016-01-06 18:38:49 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2016-01-06 18:38:49 +0000 |
commit | eb5b5acffb4870d0cb25536e1a44bd9143732992 (patch) | |
tree | 51c8c44ac45c380429461ae9bf0b6c2044b0e18d | |
parent | 39d7ab10b45f0b8d1f6e20f6e38991455517b63e (diff) | |
download | master-187ad058-eb5b5acffb4870d0cb25536e1a44bd9143732992.tar.gz master-187ad058-eb5b5acffb4870d0cb25536e1a44bd9143732992.tar.bz2 master-187ad058-eb5b5acffb4870d0cb25536e1a44bd9143732992.zip |
build: skip rebuild of kernel images if the source did not change
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@48145 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r-- | include/image.mk | 14 | ||||
-rw-r--r-- | include/kernel-defaults.mk | 16 |
2 files changed, 15 insertions, 15 deletions
diff --git a/include/image.mk b/include/image.mk index 053bb08ed2..4eee4adfaf 100644 --- a/include/image.mk +++ b/include/image.mk @@ -357,7 +357,7 @@ endef define Build/kernel-bin rm -f $@ - cp $^ $@ + cp $< $@ endef define Build/patch-cmdline @@ -444,6 +444,7 @@ define Device/Init KERNEL_INITRAMFS_NAME = $$(KERNEL_NAME)-initramfs KERNEL_INSTALL := KERNEL_NAME := vmlinux + KERNEL_DEPENDS := KERNEL_SIZE := FILESYSTEMS := $(TARGET_FILESYSTEMS) @@ -468,11 +469,11 @@ define Device/Build/initramfs $(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 @@ endef 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 @@ define Device/Build/kernel 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 @@ define BuildImage $(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)) diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index f3b5e421d1..052b2b3a7b 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -138,13 +138,15 @@ IMAGES_DIR:=../../x86/boot 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 |