mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-21 19:00:42 +08:00
7a19950eda
* egcs_update: Test return values of 'cvs update'. Propogate to caller as exit values. From-SVN: r25021
107 lines
2.8 KiB
Bash
Executable File
107 lines
2.8 KiB
Bash
Executable File
#! /bin/sh
|
|
#
|
|
# Update a local CVS tree from the egcs repository, with an emphasis
|
|
# on treating generated files correctly, so that autoconf, bison et
|
|
# al are not required for the ``end'' user.
|
|
#
|
|
# By default all command-line options are passed to `cvs update` in
|
|
# addition to $UPDATE_OPTIONS (defined below). If the first parameter
|
|
# reads --nostdflags, $UPDATE_OPTIONS as well as this parameter itself
|
|
# are omitted.
|
|
#
|
|
# Examples:
|
|
#
|
|
# contrib/egcs_update -r egcs_latest_snapshot
|
|
# contrib/egcs_update -A
|
|
# contrib/egcs_update --nostdflags -P -r egcs_1_1_branch gcc/testsuite
|
|
#
|
|
#
|
|
# (C) 1998 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
|
|
|
|
|
|
UPDATE_OPTIONS=-P
|
|
# Add -d to create any directories that exist in the repository but not
|
|
# locally.
|
|
# Add -A to reset any sticky tags, dates, or `-k' options.
|
|
|
|
|
|
echo "Current directory is `pwd`."
|
|
|
|
# First of all, check whether this indeed looks like a local CVS of egcs.
|
|
if [ ! -d CVS ] || [ ! -f gcc/version.c ]; then
|
|
echo "This does not seem to be an egcs CVS tree!"
|
|
exit
|
|
fi
|
|
|
|
# Check command-line options
|
|
|
|
if [ x"${1}"x = x"--nostdflags"x ]; then
|
|
shift
|
|
else
|
|
set -- $UPDATE_OPTIONS ${1+"$@"}
|
|
fi
|
|
|
|
|
|
echo "Pass 1: Updating autoconf and bison generated files"
|
|
# Do a CVS update on those files that exist in CVS directories. libg++
|
|
# makes sense to drop into the tree, but it isn't CVS-controlled.
|
|
X=`for i in \`find . -name configure.in -o -name '*.y'\`
|
|
do
|
|
D=\`dirname $i\`/CVS
|
|
if [ -f $i -a -d $D ]; then
|
|
echo $i
|
|
fi
|
|
done`
|
|
cvs -q update $X
|
|
if [ $? -ne 0 ]; then
|
|
echo "CVS update of generated files failed." >&2
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Pass 2: Updating full tree"
|
|
cvs -q update ${1+"$@"}
|
|
if [ $? -ne 0 ]; then
|
|
echo "CVS update of full tree failed." >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "Pass 3: Fixing local tree"
|
|
# Please also update the FAQ accordingly if you change the list of
|
|
# files below. Note that generated files should be touched only
|
|
# after the corresponding *.y files.
|
|
touch `find . -name configure -print`
|
|
touch `find texinfo -name Makefile.in -print`
|
|
touch `find texinfo -name \*.pot -print`
|
|
touch `find texinfo -name \*.gmo -print`
|
|
for f in gcc/c-parse.y \
|
|
gcc/c-parse.h \
|
|
gcc/c-parse.c \
|
|
gcc/cstamp-h.in \
|
|
gcc/c-gperf.h \
|
|
gcc/cexp.c \
|
|
gcc/cp/parse.c \
|
|
gcc/cp/parse.h \
|
|
gcc/objc/objc-parse.y \
|
|
gcc/objc/objc-parse.c \
|
|
gcc/java/parse.h \
|
|
gcc/java/parse.c \
|
|
gcc/java/parse-scan.c \
|
|
libf2c/libU77/stamp-h.in \
|
|
contrib/fixinc/fixincl.x \
|
|
contrib/fixinc/inclhack.sh \
|
|
contrib/fixinc/fixincl.sh \
|
|
gcc/fixinc/fixincl.x \
|
|
gcc/fixinc/inclhack.sh \
|
|
gcc/fixinc/fixincl.sh
|
|
do
|
|
if [ -f $f ]; then
|
|
touch $f
|
|
fi
|
|
done
|