aboutsummaryrefslogtreecommitdiff
path: root/contrib/gcc_update
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/gcc_update')
-rwxr-xr-xcontrib/gcc_update42
1 files changed, 31 insertions, 11 deletions
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 7e0e837e1af..cab6c47ec12 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -19,6 +19,9 @@
# If the first parameter is --list, a list of the generated files and
# their dependencies will be printed; --help prints this message.
#
+# If the first parameter is --silent, this script prints nothing other
+# than error messages; the second parameter is then interpreted as above.
+#
# Examples:
#
# contrib/gcc_update -r gcc_latest_snapshot
@@ -29,7 +32,7 @@
# contrib/gcc_update --list
#
#
-# (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation
+# (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
@@ -51,6 +54,15 @@ UPDATE_OPTIONS=-Pd
# Arrange for the value of $0 to be available for functions
self=$0
+# This function prints its arguments to standard output unless
+# "silent" is set.
+unset silent
+chat () {
+ if [ -z "$silent" ]; then
+ echo "$@"
+ fi
+}
+
# This function prints a list of all generated files, along with their
# dependencies. Note that only one target is supported per line: the
# colon is stripped from the output.
@@ -125,7 +137,7 @@ touch_files () {
echo ':' >> Makefile.$$
echo ' @for f in $? $@; do test -f $$f || exit 0; done; \' >> Makefile.$$
echo ' echo Touching $@...; \' >> Makefile.$$
- echo ' echo Touching $@... 1>&2; \' >> Makefile.$$
+ chat ' echo Touching $@... 1>&2; \' >> Makefile.$$
echo ' touch $@' >> Makefile.$$
files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$
@@ -148,21 +160,21 @@ touch_files () {
# this script. By re-execing it, we ensure that the appropriate
# dependencies and rules will be used.
touch_files_reexec () {
- echo "Adjusting file timestamps"
- exec ${CONFIG_SHELL-/bin/sh} $self --touch
+ chat "Adjusting file timestamps"
+ exec ${CONFIG_SHELL-/bin/sh} $self ${silent+"--silent"} --touch
}
# This functions applies a patch to an existing tree.
apply_patch () {
- if [ -f $1 ]; then
+ if [ -f "$1" ]; then
echo "Applying patch file $1"
- case "$1" in
+ case $1 in
*gz)
- gzip -d -c $1 | patch -p1 ;;
+ gzip -d -c "$1" | patch -p1 ;;
*bz2)
- bzip2 -d -c $1 | patch -p1 ;;
+ bzip2 -d -c "$1" | patch -p1 ;;
*)
- cat $1 | patch -p1 ;;
+ patch -p1 < "$1";;
esac
fi
touch_files_reexec
@@ -175,6 +187,13 @@ if [ ! -f gcc/version.c ]; then
fi
case "$1" in
+--silent)
+ silent=t
+ shift
+ ;;
+esac
+
+case "$1" in
# First of all, check whether we are going to process a patch.
--patch)
if test "$#" != 2; then
@@ -228,8 +247,9 @@ else
set -- $UPDATE_OPTIONS ${1+"$@"}
fi
-echo "Updating CVS tree"
-$GCC_CVS -q update ${1+"$@"}
+chat "Updating CVS tree"
+
+$GCC_CVS -q ${silent+-Q} update ${1+"$@"}
if [ $? -ne 0 ]; then
(touch_files_reexec)
echo "CVS update of full tree failed." >&2