Mercurial > hg > octave-lyh > gnulib-hg
changeset 5684:0aebab2c04d4
* gnulib-tool: Only replace files via --import when they have
actually changed.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Fri, 04 Mar 2005 19:28:13 +0000 |
parents | d0a22d17762b |
children | 18b4bb3dea47 |
files | ChangeLog gnulib-tool |
diffstat | 2 files changed, 43 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-03-04 Derek R. Price <derek@ximbiot.com> + + * gnulib-tool: Only replace files via --import when they have + actually changed. + 2005-03-03 Derek R. Price <derek@ximbiot.com> Bruno Haible <bruno@clisp.org>
--- a/gnulib-tool +++ b/gnulib-tool @@ -22,7 +22,7 @@ progname=$0 package=gnulib -cvsdatestamp='$Date: 2005-01-05 02:50:04 $' +cvsdatestamp='$Date: 2005-03-04 19:28:13 $' last_checkin_date=`echo "$cvsdatestamp" | sed -e 's,^\$[D]ate: ,,'` version=`echo "$last_checkin_date" | sed -e 's/ .*$//' -e 's,/,-,g'` @@ -117,6 +117,37 @@ exit 1 } +# func_cp_if_changed SRC DEST +# +# cp, but avoid munging timestamps if the file hasn't changed. +func_cp_if_changed () +{ + if test $# -ne 2; then + echo "usage: cp_if_changed SRC DEST" >&2 + fi + test -n "$dry_run" && dry=echo + if cmp "$1" "$2" >/dev/null 2>&1; then :; else + $dry cp -p "$1" "$2" + fi +} + +# func_mv_if_changed SRC DEST +# +# mv, but avoid munging timestamps if the file hasn't changed. +# Remove the source file if it is not renamed. +func_mv_if_changed () +{ + if test $# -ne 2; then + echo "usage: mv_if_changed SRC DEST" >&2 + fi + test -n "$dry_run" && dry=echo + if cmp "$1" "$2" >/dev/null 2>&1; then + $dry rm "$1" + else + $dry mv "$1" "$2" + fi +} + # Command-line option processing. # Removes the OPTIONS from the arguments. Sets the variables: # - mode list or import or create-testdir or create-megatestdir @@ -523,8 +554,7 @@ m4/*) g=`echo "$f" | sed -e "s,^m4/,$m4base/,"` ;; *) g="$f" ;; esac - test -n "$dry_run" && dry=echo - $dry cp -p "$gnulib_dir/$f" "$destdir/$g" + func_cp_if_changed "$gnulib_dir/$f" "$destdir/$g" # Update license. if test -z "$dry_run" && test -n "$lgpl" && test -n "$source"; then perl -pi -e 's/GNU General/GNU Lesser General/g;' \ @@ -548,16 +578,18 @@ # Create lib/Makefile.am. echo "Creating $destdir/$sourcebase/Makefile.am..." if test -z "$dry_run"; then - func_emit_lib_Makefile_am > $destdir/$sourcebase/Makefile.am + func_emit_lib_Makefile_am > $destdir/$sourcebase/Makefile.am.new else func_emit_lib_Makefile_am fi + func_mv_if_changed $destdir/$sourcebase/Makefile.am.new \ + $destdir/$sourcebase/Makefile.am # Create gnulib.m4. echo "Creating $destdir/$m4base/gnulib.m4..." ( if test -z "$dry_run"; then - exec > $destdir/$m4base/gnulib.m4 + exec > $destdir/$m4base/gnulib.m4.new else echo "# $destdir/$m4base/gnulib.m4" fi @@ -616,6 +648,7 @@ echo echo "# gnulib.m4 ends here" ) + func_mv_if_changed $destdir/$m4base/gnulib.m4.new $destdir/$m4base/gnulib.m4 echo "Finished." echo echo "You may need to add #include directives for the following .h files."