From: Paul Eggert Date: Mon, 16 May 2011 16:17:48 +0000 (-0700) Subject: * build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better. X-Git-Tag: v0.1~2784 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=c30db8821cd00c7be8d84249d120bba99aac69cd;p=gnulib.git * build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better. --- diff --git a/ChangeLog b/ChangeLog index c2a67dadc..2fb40f24e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2011-05-16 Paul Eggert + + * build-aux/bootstrap (gnulib_tool): Handle symlink timestamps better. + 2011-05-13 Paul Eggert intprops-tests: new module diff --git a/build-aux/bootstrap b/build-aux/bootstrap index d32db57bf..522ac70a9 100755 --- a/build-aux/bootstrap +++ b/build-aux/bootstrap @@ -1,6 +1,6 @@ #! /bin/sh # Print a version string. -scriptversion=2011-05-11.17; # UTC +scriptversion=2011-05-16.16; # UTC # Bootstrap this package from checked-out sources. @@ -670,10 +670,18 @@ symlink_to_dir() cp -fp "$src" "$dst" } else + # Leave any existing symlink alone, if it already points to the source, + # so that broken build tools that care about symlink times + # aren't confused into doing unnecessary builds. Conversely, if the + # existing symlink's time stamp is older than the source, make it afresh, + # so that broken tools aren't confused into skipping needed builds. See + # . test -h "$dst" && src_ls=`ls -diL "$src" 2>/dev/null` && set $src_ls && src_i=$1 && dst_ls=`ls -diL "$dst" 2>/dev/null` && set $dst_ls && dst_i=$1 && - test "$src_i" = "$dst_i" || { + test "$src_i" = "$dst_i" && + both_ls=`ls -dt "$src" "$dst"` && + test "X$both_ls" = "X$dst$nl$src" || { dot_dots= case $src in /*) ;;