From 22ef1c83b35cd5633b0c58c9c38a43494a906a6a Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 5 Aug 2016 14:08:47 +0200 Subject: [PATCH] kernel: make the kernel build auto-clean the build dir like package builds Previous behavior can be restored by using QUILT=1 on target/prepare Signed-off-by: Felix Fietkau --- include/kernel-build.mk | 17 ++++++++++++++--- include/kernel-defaults.mk | 2 +- include/kernel.mk | 4 ++-- include/quilt.mk | 2 +- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/include/kernel-build.mk b/include/kernel-build.mk index a52c90d9e7..0ba6db806d 100644 --- a/include/kernel-build.mk +++ b/include/kernel-build.mk @@ -6,13 +6,14 @@ # include $(INCLUDE_DIR)/host.mk include $(INCLUDE_DIR)/prereq.mk +include $(INCLUDE_DIR)/depends.mk ifneq ($(DUMP),1) all: compile endif -export QUILT=1 -STAMP_PREPARED:=$(LINUX_DIR)/.prepared +KERNEL_FILE_DEPENDS=$(GENERIC_PATCH_DIR) $(PATCH_DIR) $(GENERIC_FILES_DIR) $(FILES_DIR) +STAMP_PREPARED=$(LINUX_DIR)/.prepared$(if $(QUILT)$(DUMP),,_$(shell $(call find_md5,$(KERNEL_FILE_DEPENDS),))) STAMP_CONFIGURED:=$(LINUX_DIR)/.configured include $(INCLUDE_DIR)/download.mk include $(INCLUDE_DIR)/quilt.mk @@ -60,12 +61,22 @@ ifdef CONFIG_COLLECT_KERNEL_DEBUG endef endif +ifeq ($(DUMP)$(filter prereq clean refresh update,$(MAKECMDGOALS)),) + ifneq ($(if $(QUILT),,$(CONFIG_AUTOREBUILD)),) + define Kernel/Autoclean + $(PKG_BUILD_DIR)/.dep_files: $(STAMP_PREPARED) + $(call rdep,${CURDIR} $(PKG_FILE_DEPENDS),$(STAMP_PREPARED),$(PKG_BUILD_DIR)/.dep_files,-x "*/.dep_*") + endef + endif +endif + define BuildKernel $(if $(QUILT),$(Build/Quilt)) $(if $(LINUX_SITE),$(call Download,kernel)) .NOTPARALLEL: + $(Kernel/Autoclean) $(STAMP_PREPARED): $(if $(LINUX_SITE),$(DL_DIR)/$(LINUX_SOURCE)) -rm -rf $(KERNEL_BUILD_DIR) -mkdir -p $(KERNEL_BUILD_DIR) @@ -102,7 +113,7 @@ define BuildKernel echo; \ ) > $$@ - $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_KCONFIG_LIST) $(TOPDIR)/.config + $(STAMP_CONFIGURED): $(STAMP_PREPARED) $(LINUX_KCONFIG_LIST) $(TOPDIR)/.config FORCE $(Kernel/Configure) touch $$@ diff --git a/include/kernel-defaults.mk b/include/kernel-defaults.mk index 3679daeb84..11dff75305 100644 --- a/include/kernel-defaults.mk +++ b/include/kernel-defaults.mk @@ -50,7 +50,7 @@ ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") define Kernel/Prepare/Default xzcat $(DL_DIR)/$(LINUX_SOURCE) | $(TAR) -C $(KERNEL_BUILD_DIR) $(TAR_OPTIONS) $(Kernel/Patch) - touch $(LINUX_DIR)/.quilt_used + $(if $(QUILT),touch $(LINUX_DIR)/.quilt_used) endef else define Kernel/Prepare/Default diff --git a/include/kernel.mk b/include/kernel.mk index 8ce4df8f2d..2721c83d8e 100644 --- a/include/kernel.mk +++ b/include/kernel.mk @@ -30,8 +30,8 @@ else endif ifeq ($(TARGET_BUILD),1) - PATCH_DIR ?= ./patches$(if $(wildcard ./patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) - FILES_DIR ?= $(foreach dir,$(wildcard ./files ./files-$(KERNEL_PATCHVER)),"$(dir)") + PATCH_DIR ?= $(CURDIR)/patches$(if $(wildcard ./patches-$(KERNEL_PATCHVER)),-$(KERNEL_PATCHVER)) + FILES_DIR ?= $(foreach dir,$(wildcard $(CURDIR)/files $(CURDIR)/files-$(KERNEL_PATCHVER)),"$(dir)") endif KERNEL_BUILD_DIR ?= $(BUILD_DIR)/linux-$(BOARD)$(if $(SUBTARGET),_$(SUBTARGET)) LINUX_DIR ?= $(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) diff --git a/include/quilt.mk b/include/quilt.mk index b18b6364fe..cd392a7c5d 100644 --- a/include/quilt.mk +++ b/include/quilt.mk @@ -91,7 +91,7 @@ endef kernel_files=$(foreach fdir,$(GENERIC_FILES_DIR) $(FILES_DIR),$(fdir)/.) define Kernel/Patch/Default - rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches + $(if $(QUILT),rm -rf $(PKG_BUILD_DIR)/patches; mkdir -p $(PKG_BUILD_DIR)/patches) $(if $(kernel_files),$(CP) $(kernel_files) $(LINUX_DIR)/) find $(LINUX_DIR)/ -name \*.rej -or -name \*.orig | $(XARGS) rm -f $(call PatchDir,$(PKG_BUILD_DIR),$(GENERIC_PATCH_DIR),generic/)