X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/810f88542a036cf62e7f1cf26933df814f34c034..9fb66acf6351fde2162c690b2e238f4c438febb0:/include/quilt.mk diff --git a/include/quilt.mk b/include/quilt.mk index 47195293e..a7aac91c0 100644 --- a/include/quilt.mk +++ b/include/quilt.mk @@ -5,12 +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"; \ @@ -21,14 +26,12 @@ 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 - CONFIG_AUTOREBUILD= - PATCHES:=$(shell ) + override CONFIG_AUTOREBUILD= define Build/Patch/Default rm -rf $(PKG_BUILD_DIR)/patches mkdir -p $(PKG_BUILD_DIR)/patches - $(call Quilt/Patch,./patches,) + $(call Quilt/Patch,$(PATCH_DIR),) @echo touch $(PKG_BUILD_DIR)/.quilt_used endef @@ -37,8 +40,8 @@ ifneq ($(QUILT),) quilt-check: $(STAMP_PATCHED) else define Build/Patch/Default - @if [ -d ./patches -a "$$$$(ls ./patches | wc -l)" -gt 0 ]; then \ - $(PATCH) $(PKG_BUILD_DIR) ./patches; \ + @if [ -d $(PATCH_DIR) -a "$$$$(ls $(PATCH_DIR) | wc -l)" -gt 0 ]; then \ + $(PATCH) $(PKG_BUILD_DIR) $(PATCH_DIR); \ fi endef endif @@ -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) @@ -75,7 +98,7 @@ define Quilt/RefreshDir endef define Quilt/Refresh/Package - $(call Quilt/RefreshDir,./patches) + $(call Quilt/RefreshDir,$(PATCH_DIR)) endef define Quilt/Refresh/Kernel