summaryrefslogtreecommitdiffstats
path: root/linux
diff options
context:
space:
mode:
Diffstat (limited to 'linux')
-rw-r--r--linux/linux.mk28
1 files changed, 11 insertions, 17 deletions
diff --git a/linux/linux.mk b/linux/linux.mk
index 5a0ba01d42..3837e8d004 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -42,6 +42,12 @@ endif
LINUX_PATCHES = $(call qstrip,$(BR2_LINUX_KERNEL_PATCH))
+# We rely on the generic package infrastructure to download and apply
+# remote patches (downloaded from ftp, http or https). For local
+# patches, we can't rely on that infrastructure, because there might
+# be directories in the patch list (unlike for other packages).
+LINUX_PATCH = $(filter ftp://% http://% https://%,$(LINUX_PATCHES))
+
LINUX_INSTALL_IMAGES = YES
LINUX_DEPENDENCIES += host-kmod host-lzop
@@ -150,29 +156,17 @@ else
LINUX_IMAGE_PATH = $(KERNEL_ARCH_PATH)/boot/$(LINUX_IMAGE_NAME)
endif # BR2_LINUX_KERNEL_VMLINUX
-define LINUX_DOWNLOAD_PATCHES
- $(if $(LINUX_PATCHES),
- @$(call MESSAGE,"Download additional patches"))
- $(foreach patch,$(filter ftp://% http://% https://%,$(LINUX_PATCHES)),\
- $(call DOWNLOAD_WGET,$(patch),$(notdir $(patch)))$(sep))
-endef
-
-LINUX_POST_DOWNLOAD_HOOKS += LINUX_DOWNLOAD_PATCHES
-
-define LINUX_APPLY_PATCHES
- for p in $(LINUX_PATCHES) ; do \
- if echo $$p | grep -q -E "^ftp://|^http://|^https://" ; then \
- $(APPLY_PATCHES) $(@D) $(DL_DIR) `basename $$p` || exit 1; \
- elif test -d $$p ; then \
- $(APPLY_PATCHES) $(@D) $$p linux-\*.patch || exit 1; \
+define LINUX_APPLY_LOCAL_PATCHES
+ for p in $(filter-out ftp://% http://% https://%,$(LINUX_PATCHES)) ; do \
+ if test -d $$p ; then \
+ $(APPLY_PATCHES) $(@D) $$p linux-\*.patch || exit 1 ; \
else \
$(APPLY_PATCHES) $(@D) `dirname $$p` `basename $$p` || exit 1; \
fi \
done
endef
-LINUX_POST_PATCH_HOOKS += LINUX_APPLY_PATCHES
-
+LINUX_POST_PATCH_HOOKS += LINUX_APPLY_LOCAL_PATCHES
ifeq ($(BR2_LINUX_KERNEL_USE_DEFCONFIG),y)
KERNEL_SOURCE_CONFIG = $(KERNEL_ARCH_PATH)/configs/$(call qstrip,$(BR2_LINUX_KERNEL_DEFCONFIG))_defconfig
OpenPOWER on IntegriCloud