X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/b0b47bc0e01ecc6a500344140380b6af6787bf4a..5b3d59f1da9acb0b12c708169f241bb96d28ec02:/include/quilt.mk

diff --git a/include/quilt.mk b/include/quilt.mk
index 2e7941eae..a7aac91c0 100644
--- a/include/quilt.mk
+++ b/include/quilt.mk
@@ -5,13 +5,17 @@
 # See /LICENSE for more information.
 #
 
-ifeq ($(KERNEL_BUILD),1)
+ifeq ($(TARGET_BUILD),1)
   PKG_BUILD_DIR:=$(LINUX_DIR)
 endif
 PATCH_DIR?=./patches
 
+ifeq ($(MAKECMDGOALS),refresh)
+  override QUILT=1
+endif
+
 define Quilt/Patch
-	@for patch in $$$$( (cd $(1) && ls) 2>/dev/null ); do ( \
+	@for patch in $$$$( (cd $(1) && if [ -f series ]; then grep -v '^#' series; else ls; fi; ) 2>/dev/null ); do ( \
 		cp "$(1)/$$$$patch" $(PKG_BUILD_DIR); \
 		cd $(PKG_BUILD_DIR); \
 		quilt import -P$(2)$$$$patch -p 1 "$$$$patch"; \
@@ -22,7 +26,6 @@ endef
 
 QUILT?=$(strip $(shell test -f $(PKG_BUILD_DIR)/.quilt_used && echo y))
 ifneq ($(QUILT),)
-  STAMP_PREPARED:=$(strip $(STAMP_PREPARED))_q
   STAMP_PATCHED:=$(PKG_BUILD_DIR)/.quilt_patched
   override CONFIG_AUTOREBUILD=
   define Build/Patch/Default
@@ -55,14 +58,34 @@ define Kernel/Patch/Default
 	$(if $(strip $(QUILT)),touch $(PKG_BUILD_DIR)/.quilt_used)
 endef
 
+ifeq ($(TARGET_BUILD),1)
+$(STAMP_PATCHED): $(STAMP_PREPARED)
+	@cd $(PKG_BUILD_DIR); quilt pop -a -f >/dev/null 2>/dev/null || true
+	(\
+		cd $(PKG_BUILD_DIR)/patches; \
+		rm -f series; \
+		for file in *; do \
+			if [ -f $$file/series ]; then \
+				echo "Converting $$file/series"; \
+				awk -v file="$$file/" '$$0 !~ /^#/ { print file $$0 }' $$file/series >> series; \
+			else \
+				echo "Sorting patches in $$file"; \
+				find $$file/* -type f \! -name series | sort >> series; \
+			fi; \
+		done; \
+	)
+	if [ -s "$(PKG_BUILD_DIR)/patches/series" ]; then (cd $(PKG_BUILD_DIR); quilt push -a); fi
+	touch $@
+else
 $(STAMP_PATCHED): $(STAMP_PREPARED)
 	@cd $(PKG_BUILD_DIR); quilt pop -a -f >/dev/null 2>/dev/null || true
 	(\
 		cd $(PKG_BUILD_DIR)/patches; \
 		find * -type f \! -name series | sort > series; \
 	)
-	[ -f "$(PKG_BUILD_DIR)/patches/series" ] && cd $(PKG_BUILD_DIR); quilt push -a
+	if [ -s "$(PKG_BUILD_DIR)/patches/series" ]; then (cd $(PKG_BUILD_DIR); quilt push -a); fi
 	touch $@
+endif
 
 define Quilt/RefreshDir
 	mkdir -p $(1)