diff options
Diffstat (limited to 'include/quilt.mk')
-rw-r--r-- | include/quilt.mk | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/include/quilt.mk b/include/quilt.mk new file mode 100644 index 0000000000..ec5acc507e --- /dev/null +++ b/include/quilt.mk @@ -0,0 +1,48 @@ +# +# Copyright (C) 2007 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +QUILT?=$(strip $(shell test -f $(PKG_BUILD_DIR)/.quilt_patched && echo y)) +ifneq ($(QUILT),) + STAMP_PREPARED:=$(strip $(STAMP_PREPARED))_q + CONFIG_AUTOREBUILD= + PATCHES:=$(shell cd ./patches; ls) + define Build/Patch/Default + rm -rf $(PKG_BUILD_DIR)/patches + mkdir -p $(PKG_BUILD_DIR)/patches + for patch in $(PATCHES); do ( \ + cp "./patches/$$$$patch" $(PKG_BUILD_DIR); \ + cd $(PKG_BUILD_DIR); \ + quilt import -p 1 "$$$$patch"; \ + quilt push; \ + quilt refresh; \ + rm -f "$$$$patch"; \ + ); done + touch $(PKG_BUILD_DIR)/.quilt_patched + endef +else + define Build/Patch/Default + @if [ -d ./patches -a "$$$$(ls ./patches | wc -l)" -gt 0 ]; then \ + $(PATCH) $(PKG_BUILD_DIR) ./patches; \ + fi + endef +endif + +refresh: $(STAMP_PREPARED) + @[ -f "$(PKG_BUILD_DIR)/patches/series" ] || { \ + echo "The source directory was not unpacked using quilt. Please rebuild."; \ + false; \ + } + @[ "$$(cat $(PKG_BUILD_DIR)/patches/series | md5sum)" = "$$(sort $(PKG_BUILD_DIR)/patches/series | md5sum)" ] || { \ + echo "The patches are not sorted in the right order. Please fix."; \ + false; \ + } + rm -f ./patches/* 2>/dev/null >/dev/null + @( \ + for patch in $$(cat $(PKG_BUILD_DIR)/patches/series); do \ + $(CP) -v "$(PKG_BUILD_DIR)/patches/$$patch" ./patches; \ + done; \ + ) |