package: support multiple patches
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 6 Jan 2013 05:22:41 +0000 (05:22 +0000)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 7 Jan 2013 20:30:56 +0000 (21:30 +0100)
With this commit, we extend the behaviour of the <pkg>_PATCH variable
so that it now allows to list several patches to be downloaded and
applied, and no longer just one patch.

This will be useful for the elfutils package, and should anyway not
break the existing behaviour for packages using just one patch.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/pkg-generic.mk

index a570ad758fed6223487fa1f999b824508df70855..59de0f0d12483c38f83b6f613fde22e6f547353b 100644 (file)
 $(BUILD_DIR)/%/.stamp_downloaded:
 ifeq ($(DL_MODE),DOWNLOAD)
 # Only show the download message if it isn't already downloaded
-       $(Q)(test -e $(DL_DIR)/$($(PKG)_SOURCE) && \
-               (test -z $($(PKG)_PATCH) || test -e $(DL_DIR)$($(PKG)_PATCH))) || \
-               $(call MESSAGE,"Downloading")
+       $(Q)if test ! -e $(DL_DIR)/$($(PKG)_SOURCE); then \
+               $(call MESSAGE,"Downloading") ; \
+       else \
+               for p in $($(PKG)_PATCH) ; do \
+                       if test ! -e $(DL_DIR)/$$p ; then \
+                               $(call MESSAGE,"Downloading") ; \
+                               break ; \
+                       fi ; \
+               done ; \
+       fi
 endif
        $(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE)/$($(PKG)_SOURCE)))
-       $(if $($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE)/$($(PKG)_PATCH)))
+       $(foreach p,$($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE)/$(p))$(sep))
        $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
 ifeq ($(DL_MODE),DOWNLOAD)
        $(Q)mkdir -p $(@D)
@@ -78,7 +85,7 @@ $(BUILD_DIR)/%/.stamp_patched: NAMEVER = $(RAWNAME)-$($(PKG)_VERSION)
 $(BUILD_DIR)/%/.stamp_patched:
        @$(call MESSAGE,"Patching $($(PKG)_DIR_PREFIX)/$(RAWNAME)")
        $(foreach hook,$($(PKG)_PRE_PATCH_HOOKS),$(call $(hook))$(sep))
-       $(if $($(PKG)_PATCH),support/scripts/apply-patches.sh $(@D) $(DL_DIR) $($(PKG)_PATCH))
+       $(foreach p,$($(PKG)_PATCH),support/scripts/apply-patches.sh $(@D) $(DL_DIR) $(p)$(sep))
        $(Q)( \
        if test -d $($(PKG)_DIR_PREFIX)/$(RAWNAME); then \
          if test "$(wildcard $($(PKG)_DIR_PREFIX)/$(RAWNAME)/$(NAMEVER)*.patch*)"; then \