#! /bin/sh
#
-# Update a local CVS tree from the GCC repository, with an emphasis
+# Update a local Subversion tree from the GCC repository, with an emphasis
# on treating generated files correctly, so that autoconf, gperf et
# al are not required for the ``end'' user.
#
-# By default all command-line options are passed to `cvs update` in
+# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
+# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, August 1998.
+#
+# This script is Free Software, and it can be copied, distributed and
+# modified as defined in the GNU General Public License. A copy of
+# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+#
+#
+# By default all command-line options are passed to `svn update` in
# addition to $UPDATE_OPTIONS (defined below). If the first parameter
# reads --nostdflags, $UPDATE_OPTIONS as well as this parameter itself
# are omitted.
# If the first parameter reads --patch, the second parameter is considered
# a patch file.
#
-# If the first parameter is --touch, no cvs operation will be performed,
+# If the first parameter is --touch, no svn operation will be performed,
# only generated files that appear to be out of date in the local tree
# will be touched.
#
#
# Examples:
#
-# contrib/gcc_update -r gcc_latest_snapshot
-# contrib/gcc_update -A
-# contrib/gcc_update --nostdflags -P -r gcc-2_95-branch gcc/testsuite
+# contrib/gcc_update -r 8712
# contrib/gcc_update --patch some-patch
# contrib/gcc_update --touch
# contrib/gcc_update --list
-#
-#
-# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation
-# Originally by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>, August 1998.
-#
-# This script is Free Software, and it can be copied, distributed and
-# modified as defined in the GNU General Public License. A copy of
-# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
-# CVS command
-GCC_CVS=${GCC_CVS-${CVS-cvs}}
-# Default options used when updating via CVS.
-UPDATE_OPTIONS=-Pd
-# Use -P to prune empty directories.
-# Use -d to create any directories that exist in the repository but not
-# locally.
-# Use -A to reset any sticky tags, dates, or `-k' options.
+# SVN command
+GCC_SVN=${GCC_SVN-${SVN-svn}}
+# Default options used when updating via SVN (none).
+UPDATE_OPTIONS=""
+
+# Set the locale to C to make this script work for users with foreign
+# locale like e.g. French UTF-8.
+LANG=C
+LC_ALL=C
+export LANG LC_ALL
######## Anything below shouldn't be changed by regular users.
# testsuite
# Without this, _Pragma3.c can have a false negative.
gcc/testsuite/gcc.dg/cpp/_Pragma3.c: gcc/testsuite/gcc.dg/cpp/mi1c.h
+# Similarly, without this, you will see:
+# direct2s.c:35: warning: current file is older than direct2.c
+gcc/testsuite/gcc.dg/cpp/direct2s.c: gcc/testsuite/gcc.dg/cpp/direct2.c
+# lto-plugin
+lto-plugin/configure: lto-plugin/configure.ac lto-plugin/aclocal.m4
+lto-plugin/Makefile.in: lto-plugin/Makefile.am lto-plugin/aclocal.m4
# And libraries, at last
libbanshee/configure: libbanshee/configure.ac
libmudflap/configure: libmudflap/configure.ac
libgfortran/aclocal.m4: libgfortran/configure.ac libgfortran/acinclude.m4
libgfortran/Makefile.in: libgfortran/Makefile.am libgfortran/configure.ac libgfortran/aclocal.m4
libgfortran/configure: libgfortran/configure.ac libgfortran/aclocal.m4
-libjava/aclocal.m4: libjava/configure.ac libjava/acinclude.m4
+libjava/aclocal.m4: libjava/configure.ac
libjava/Makefile.in: libjava/Makefile.am libjava/configure.ac libjava/aclocal.m4
libjava/configure: libjava/configure.ac libjava/aclocal.m4
libjava/libltdl/aclocal.m4: libjava/libltdl/configure.ac libjava/libltdl/acinclude.m4
libcpp/aclocal.m4: libcpp/configure.ac
libcpp/Makefile.in: libcpp/configure.ac libcpp/aclocal.m4
libcpp/configure: libcpp/configure.ac libcpp/aclocal.m4
+libgomp/aclocal.m4: libgomp/configure.ac libgomp/acinclude.m4
+libgomp/Makefile.in: libgomp/Makefile.am libgomp/aclocal.m4
+libgomp/testsuite/Makefile.in: libgomp/Makefile.am libgomp/aclocal.m4
+libgomp/configure: libgomp/configure.ac libgomp/aclocal.m4
+libgomp/config.h.in: libgomp/configure.ac libgomp/aclocal.m4
# Top level
Makefile.in: Makefile.tpl Makefile.def
-configure: configure.in config/acx.m4
+configure: configure.ac config/acx.m4
EOF
}
esac
-# Check whether this indeed looks like a local CVS tree.
-if [ ! -d CVS ]; then
- echo "This does not seem to be a GCC CVS tree!"
+# Check whether this indeed looks like a local SVN tree.
+if [ ! -d .svn ]; then
+ echo "This does not seem to be a GCC SVN tree!"
exit
fi
set -- $UPDATE_OPTIONS ${1+"$@"}
fi
-chat "Updating CVS tree"
+chat "Updating SVN tree"
-$GCC_CVS -q ${silent+-Q} update ${1+"$@"}
+$GCC_SVN ${silent+-q} --non-interactive update ${1+"$@"}
if [ $? -ne 0 ]; then
(touch_files_reexec)
- echo "CVS update of full tree failed." >&2
+ echo "SVN update of full tree failed." >&2
exit 1
fi
+rm -f LAST_UPDATED gcc/REVISION
+
+revision=`svn info | awk '/Revision:/ { print $2 }'`
+branch=`svn info | sed -ne "/URL:/ {
+s,.*/trunk,trunk,
+s,.*/branches/,,
+s,.*/tags/,,
+p
+}"`
{
date
- TZ=UTC date
+ echo "`TZ=UTC date` (revision $revision)"
} > LAST_UPDATED
+
+echo "[$branch revision $revision]" > gcc/REVISION
+
touch_files_reexec