diff --git a/tool/ifchange b/tool/ifchange index 177ce7340b..5ff8276b03 100755 --- a/tool/ifchange +++ b/tool/ifchange @@ -2,6 +2,7 @@ # usage: ifchange target temporary timestamp= +keepsuffix= until [ "$0" = 0 ]; do case "$1" in --timestamp) @@ -10,6 +11,12 @@ until [ "$0" = 0 ]; do --timestamp=*) timestamp=`expr \( "$1" : '[^=]*=\(.*\)' \)` ;; + --keep) + keepsuffix=.old + ;; + --keep=*) + keepsuffix=`expr \( "$1" : '[^=]*=\(.*\)' \)` + ;; *) break ;; @@ -30,6 +37,7 @@ if cmp "$target" "$temp" >/dev/null 2>&1; then rm -f "$temp" else echo "$target updated" + ${keepsuffix:+ mv -f "$target" "${target}${keepsuffix}" } mv -f "$temp" "$target" fi