Changeset 431


Ignore:
Timestamp:
Oct 11, 2012, 7:53:34 AM (8 years ago)
Author:
ehem
Message:

Hopefully get the patch/unpatch rules to a good state. This looks like a
sane way to have them behave.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/contrib/openwrt/openwrt.mk

    r430 r431  
    9393openwrt/patch: openwrt/checkout
    9494        rev=$(call get_svn_revision,$(OPENWRT_BUILD_DIR)) ; \
     95        retval=0 ; \
    9596        find \
    9697          $(OPENWRT_PATCH_DIRS) \
     
    102103        while read pat ; \
    103104        do \
     105                echo "$${pat}" >> $@ ; \
    104106                pati=$$(echo $${pat} | sed -e's!$(TOPDIR)/!!') ; \
    105107                if ! patch -d "$(OPENWRT_BUILD_DIR)" -p1 -N < "$${pat}" ; \
    106108                then \
    107109                        echo ">> fail: $${pati}" > /dev/stderr ; \
    108                         $(if $(FORCE_PATCH),, \
    109                           rm -f openwrt/checkout "$(OPENWRT_BUILD_DIR)/.debwrt.checkout.stamp" ; \
    110                           exit 1 ; ) \
     110                        $(if $(FORCE_PATCH),retval=1,exit 1) ; \
    111111                else \
    112112                        echo ">> success: $${pati}" ; \
     
    114114        done ; \
    115115        rm -f openwrt/unpatch ; \
    116         touch $@
     116        exit $retval
    117117
    118118openwrt/unpatch/force:
     
    120120        make -C $(TOPDIR) openwrt/unpatch FORCE_PATCH=1
    121121
     122ifndef FORCE_PATCH
    122123openwrt/unpatch: openwrt/patch
    123         if [ ! -f openwrt/patch ]; then exit 0; fi; \
     124        tac openwrt/patch | \
     125        while read pat ; \
     126        do \
     127                pati=$$(echo $${pat} | sed -e's!$(TOPDIR)/!!') ; \
     128                if ! patch -d "$(OPENWRT_BUILD_DIR)" -p1 -R < "$${pat}" ; \
     129                then \
     130                        echo ">> fail: $${pati}" > /dev/stderr ; \
     131                        echo ">> fatal: build in unrecoverable state" > /dev/stderr ; \
     132                        rm -f openwrt/checkout "$(OPENWRT_BUILD_DIR)/.debwrt.checkout.stamp" ; \
     133                        exit 127 ; \
     134                else \
     135                        echo ">> success: $${pati}" ; \
     136                fi ; \
     137        done ; \
     138        rm -f openwrt/patch ; \
     139        touch $@
     140else
     141openwrt/unpatch:
    124142        rev=$(call get_svn_revision,$(OPENWRT_BUILD_DIR)) ; \
     143        retval=0 ; \
    125144        find \
    126145          $(OPENWRT_PATCH_DIRS) \
     
    136155                then \
    137156                        echo ">> fail: $${pati}" > /dev/stderr ; \
    138                         $(if $(FORCE_PATCH),, \
    139                           rm -f openwrt/checkout "$(OPENWRT_BUILD_DIR)/.debwrt.checkout.stamp" ; \
    140                           exit 1 ; ) \
     157                        retval=1 ; \
    141158                else \
    142159                        echo ">> success: $${pati}" ; \
     
    144161        done ; \
    145162        rm -f openwrt/patch ; \
    146         touch $@
     163        touch $@ ; \
     164        exit $retval
     165endif
    147166
    148167
Note: See TracChangeset for help on using the changeset viewer.