[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bootstrap update (from coreutils)
From: |
Paul Eggert |
Subject: |
bootstrap update (from coreutils) |
Date: |
Wed, 20 Sep 2006 13:23:32 -0700 |
User-agent: |
Gnus/5.1008 (Gnus v5.10.8) Emacs/21.4 (gnu/linux) |
I installed this:
2006-09-20 Paul Eggert <address@hidden>
* stamp-h.in: Remove; no longer needed.
* .cvsignore: Replace autom4te.cache and config.cache with *.cache.
Remove config.h, config.hin, intl (no longer created).
* lib/.cvsignore: Add config.h, config.hin, configmake.h, inttypes.h,
stamp-h1.
Sync bootstrap from coreutils, as follows:
2006-09-18 Paul Eggert <address@hidden>
* bootstrap (symlink_to_gnulib): New function.
(cp_mark_as_generated): Use it, to prefer symlinks-to-gnulib
to copies-of-gnulib.
(cp_mark_as_generated, slurp, gnulib_files):
Avoid making a copy if it's the same as the old version.
(gnulib_files): Add support for this variable (used by Bison).
Index: .cvsignore
===================================================================
RCS file: /cvsroot/bison/bison/.cvsignore,v
retrieving revision 1.24
diff -p -u -r1.24 .cvsignore
--- .cvsignore 21 Oct 2005 09:13:00 -0000 1.24
+++ .cvsignore 20 Sep 2006 20:21:55 -0000
@@ -1,3 +1,4 @@
+*.cache
*.flc
*.patch *.log log patches applied
*.prj
@@ -10,20 +11,15 @@ _*
a.exe
a.out
aclocal.m4
-autom4te.cache
b.out
bison-*
conf[0-9]*
confdefs*
-config.cache
-config.h
-config.hin
config.log
config.status
configure
configure.lineno
conftest*
-intl
patches
releases
stamp-h*
Index: bootstrap
===================================================================
RCS file: /cvsroot/bison/bison/bootstrap,v
retrieving revision 1.42
diff -p -u -r1.42 bootstrap
--- bootstrap 15 Sep 2006 18:59:40 -0000 1.42
+++ bootstrap 20 Sep 2006 20:21:56 -0000
@@ -212,27 +212,73 @@ case $SKIP_PO in
fi;;
esac
+symlink_to_gnulib()
+{
+ src=$GNULIB_SRCDIR/$1
+ dst=${2-$1}
+ dot_dots=
+
+ case $src in
+ /*) ;;
+ *)
+ case /$dst/ in
+ *//* | */../* | */./* | /*/*/*/*/*/)
+ echo >&2 "$0: invalid symlink calculation: $src -> $dst"
+ exit 1;;
+ /*/*/*/*/) dot_dots=../../../;;
+ /*/*/*/) dot_dots=../../;;
+ /*/*/) dot_dots=../;;
+ esac;;
+ esac
+
+ test -f "$src" && {
+ 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" || {
+ echo "$0: ln -fs $dot_dots$src $dst" &&
+ ln -fs "$dot_dots$src" "$dst"
+ }
+ }
+}
+
cp_mark_as_generated()
{
cp_src=$1
cp_dst=$2
- case $cp_dst in
- *.[ch]) c1='/* '; c2=' */';;
- *.texi) c1='@c '; c2= ;;
- *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
- *) c1= ; c2= ;;
- esac
- if test -z "$c1"; then
- cp "$cp_src" "$cp_dst"
- return
+ if cmp -s "$cp_src" "$GNULIB_SRCDIR/$cp_dst"; then
+ symlink_to_gnulib "$cp_dst"
+ else
+ case $cp_dst in
+ *.[ch]) c1='/* '; c2=' */';;
+ *.texi) c1='@c '; c2= ;;
+ *.m4|*/Make*|Make*) c1='# ' ; c2= ;;
+ *) c1= ; c2= ;;
+ esac
+
+ if test -z "$c1"; then
+ cmp -s "$cp_src" "$cp_dst" || {
+ echo "$0: cp -f $cp_src $cp_dst" &&
+ cp -f "$cp_src" "$cp_dst"
+ }
+ else
+ # Copy the file first to get proper permissions if it
+ # doesn't already exist. Then overwrite the copy.
+ cp "$cp_src" "$cp_dst-t" &&
+ (
+ echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2" &&
+ echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2" &&
+ cat "$cp_src"
+ ) > $cp_dst-t &&
+ if cmp -s "$cp_dst-t" "$cp_dst"; then
+ rm -f "$cp_dst-t"
+ else
+ echo "$0: cp $cp_src $cp_dst # with edits" &&
+ mv -f "$cp_dst-t" "$cp_dst"
+ fi
+ fi
fi
-
- (
- echo "$c1-*- buffer-read-only: t -*- vi: set ro:$c2"
- echo "${c1}DO NOT EDIT! GENERATED AUTOMATICALLY!$c2"
- cat "$cp_src"
- ) >> "$cp_dst"
}
slurp() {
@@ -245,11 +291,14 @@ slurp() {
test "$dir/$file" = "$excluded_file" && continue 2
done
if test $file = Makefile.am; then
- copied=$copied${sep}gnulib.mk; sep=$nl
- echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
- rm -f $dir/gnulib.mk
- sed '/^[^#].*\/intl/s/^/#/' $1/$dir/$file >$dir/gnulib.mk
- elif test -r ${2-no/such/dir}/$dir/$file ||
+ copied=$copied${sep}gnulib.mk; sep=$nl
+ remove_intl='/^[^#].*\/intl/s/^/#/'
+ sed "$remove_intl" $1/$dir/$file | cmp -s - $dir/gnulib.mk || {
+ echo "$0: Copying $1/$dir/$file to $dir/gnulib.mk ..." &&
+ rm -f $dir/gnulib.mk &&
+ sed "$remove_intl" $1/$dir/$file >$dir/gnulib.mk
+ }
+ elif { test "${2+set}" = set && test -r $2/$dir/$file; } ||
grep -F "/$file/" $dir/CVS/Entries 2>/dev/null |
grep -q '^/[^/]*/[0-9]'; then
echo "$0: $dir/$file overrides $1/$dir/$file"
@@ -267,7 +316,6 @@ slurp() {
AC_DEFUN([gl_LOCK_EARLY], [])
' $1/$dir/$file >$dir/$file
else
- rm -f $dir/$file
cp_mark_as_generated $1/$dir/$file $dir/$file
fi
fi || exit
@@ -306,9 +354,7 @@ $gnulib_tool $gnulib_tool_options --impo
slurp $bt || exit
for file in $gnulib_files; do
- src=$GNULIB_SRCDIR/$file
- echo "$0: cp -fp $src $file" &&
- cp -fp $src $file || exit
+ symlink_to_gnulib $file || exit
done
@@ -338,13 +384,11 @@ done
# Get some extra files from gnulib, overriding existing files.
for file in $gnulib_extra_files; do
- src=$GNULIB_SRCDIR/$file
case $file in
- */INSTALL) dest=.;;
- *) dest=$file;;
+ */INSTALL) dst=INSTALL;;
+ *) dst=$file;;
esac
- echo "$0: cp -fp $src $dest" &&
- cp -fp $src $dest || exit
+ symlink_to_gnulib $file $dst || exit
done
Index: lib/.cvsignore
===================================================================
RCS file: /cvsroot/bison/bison/lib/.cvsignore,v
retrieving revision 1.21
diff -p -u -r1.21 .cvsignore
--- lib/.cvsignore 15 Sep 2006 18:59:40 -0000 1.21
+++ lib/.cvsignore 20 Sep 2006 20:21:56 -0000
@@ -4,6 +4,9 @@ Makefile.in
argmatch.c
argmatch.h
basename.c
+config.h
+config.hin
+configmake.h
dirname.c
dirname.h
dup-safer.c
@@ -23,6 +26,7 @@ gettext.h
gnulib.mk
hash.c
hash.h
+inttypes.h
inttypes_.h
malloc.c
mbswidth.c
@@ -34,6 +38,7 @@ quote.c
quote.h
quotearg.c
quotearg.h
+stamp-h1
stdbool.h
stdbool_.h
stdint.h
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- bootstrap update (from coreutils),
Paul Eggert <=