diff --git a/include/host-build.mk b/include/host-build.mk index 83d80bedd5..b5c2a2203d 100644 --- a/include/host-build.mk +++ b/include/host-build.mk @@ -13,12 +13,13 @@ STAMP_PREPARED:=$(PKG_BUILD_DIR)/.prepared_$(shell find ${CURDIR} $(PKG_FILE_DEP STAMP_CONFIGURED:=$(PKG_BUILD_DIR)/.configured STAMP_BUILT:=$(PKG_BUILD_DIR)/.built +include $(INCLUDE_DIR)/quilt.mk + +Build/Patch:=$(Build/Patch/Default) ifneq ($(strip $(PKG_UNPACK)),) define Build/Prepare/Default $(PKG_UNPACK) - @if [ -d ./patches ]; then \ - $(PATCH) $(PKG_BUILD_DIR) ./patches; \ - fi + $(Build/Patch) endef endif diff --git a/include/quilt.mk b/include/quilt.mk index 5fbdda1b9f..beb0840c00 100644 --- a/include/quilt.mk +++ b/include/quilt.mk @@ -10,7 +10,7 @@ ifneq ($(QUILT),) STAMP_PREPARED:=$(strip $(STAMP_PREPARED))_q STAMP_PATCHED:=$(PKG_BUILD_DIR)/.quilt_patched CONFIG_AUTOREBUILD= - PATCHES:=$(shell cd ./patches; ls) + PATCHES:=$(shell (cd ./patches && ls) 2>/dev/null) define Build/Patch/Default rm -rf $(PKG_BUILD_DIR)/patches mkdir -p $(PKG_BUILD_DIR)/patches @@ -36,18 +36,23 @@ endif $(STAMP_PATCHED): $(STAMP_PREPARED) @cd $(PKG_BUILD_DIR); quilt pop -a -f >/dev/null 2>/dev/null || true - cd $(PKG_BUILD_DIR); quilt push -a + $(if $(strip $(PATCHES)),cd $(PKG_BUILD_DIR); quilt push -a) touch $@ refresh: $(STAMP_PREPARED) + @[ -f "$(PKG_BUILD_DIR)/.quilt_used" ] || { \ + echo "The source directory was not unpacked using quilt. Please rebuild with QUILT=1"; \ + false; \ + } @[ -f "$(PKG_BUILD_DIR)/patches/series" ] || { \ - echo "The source directory was not unpacked using quilt. Please rebuild."; \ + echo "The source directory contains no quilt patches."; \ 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; \ } + mkdir -p ./patches rm -f ./patches/* 2>/dev/null >/dev/null @( \ for patch in $$(cat $(PKG_BUILD_DIR)/patches/series); do \ diff --git a/tools/Makefile b/tools/Makefile index 513ecccb51..265c6aebf5 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -41,7 +41,7 @@ $(TOOL_HOST_INCLUDES): $(STAGING_DIR)/include-host/%.h: ./include/%.h $(TOOL_BUILD_DIR): @mkdir -p $@ -%-prereq %-download %-clean: FORCE +%-prereq %-download %-clean %-refresh: FORCE $(MAKE) -C $* $(patsubst $*-%,%,$@) %-prepare: $(TOOL_HOST_INCLUDES) $(TOOL_BUILD_DIR) FORCE