aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorGerald Pfeifer <pfeifer@dbai.tuwien.ac.at>1999-07-05 12:22:15 +0200
committerGerald Pfeifer <gerald@gcc.gnu.org>1999-07-05 10:22:15 +0000
commit9d59f3071fe2cfa08960063b0d1c78f86d4b5e0e (patch)
treedb0eede5663a4957a266d49075654ec6c29ed822 /contrib
parentaf076391718fc76aa651c641e67663f8e295b395 (diff)
downloadgcc-9d59f3071fe2cfa08960063b0d1c78f86d4b5e0e.zip
gcc-9d59f3071fe2cfa08960063b0d1c78f86d4b5e0e.tar.gz
gcc-9d59f3071fe2cfa08960063b0d1c78f86d4b5e0e.tar.bz2
egcs_update (touch_files, [...]): New functions.
* egcs_update (touch_files, apply_patch): New functions. Use them. New command-line option --patch. Split test of local tree into two parts. Add comments. Co-Authored-By: Jerry Quinn <jquinn@nortelnetworks.com> From-SVN: r27946
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog7
-rwxr-xr-xcontrib/egcs_update120
2 files changed, 88 insertions, 39 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index 1ebc18d..935ba29 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,10 @@
+1999-07-05 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+ Jerry Quinn <jquinn@nortelnetworks.com>
+
+ * egcs_update (touch_files, apply_patch): New functions.
+ Use them. New command-line option --patch. Split test of local
+ tree into two parts. Add comments.
+
1999-07-03 Alexandre Oliva <oliva@dcc.unicamp.br>
* test_summary: If Target is `unix{*}', append the Target variants
diff --git a/contrib/egcs_update b/contrib/egcs_update
index 6882b23..169b2aa 100755
--- a/contrib/egcs_update
+++ b/contrib/egcs_update
@@ -9,14 +9,18 @@
# 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.
+#
# Examples:
#
# contrib/egcs_update -r egcs_latest_snapshot
# contrib/egcs_update -A
# contrib/egcs_update --nostdflags -P -r egcs_1_1_branch gcc/testsuite
+# contrib/egcs_update --patch some-patch
#
#
-# (C) 1998 Free Software Foundation
+# (C) 1998-1999 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
@@ -24,22 +28,92 @@
# its license can be downloaded from http://www.gnu.org/copyleft/gpl.html
+# Default options used when updating via CVS.
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.
+# This function touches generated files such that the ``end'' user does
+# not have to rebuild them.
+#
+# 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_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
+}
+
+
+# This functions applies a patch to an existing tree.
+apply_patch()
+{
+ if [ -f $1 ]; then
+ echo "Applying patch file $1"
+ case "$1" in
+ *gz)
+ gzip -d -c $1 | patch -p1 ;;
+ *)
+ cat $1 | patch -p1 ;;
+ esac
+ fi
+ echo "Updating file timestamps"
+ touch_files
+}
+
+
+# This is where the actual processing starts.
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
+# Check whether this indeed looks like a local tree.
+if [ ! -f gcc/version.c ]; then
+ echo "This does not seem to be an egcs tree!"
+ exit
fi
-# Check command-line options
+# First of all, check whether we are going to process a patch.
+if [ x"${1}"x = x"--patch"x ]; then
+ apply_patch ${2}
+ exit 0
+fi
+
+# Check whether this indeed looks like a local CVS tree.
+if [ ! -d CVS ]; 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
@@ -63,7 +137,6 @@ if [ $? -ne 0 ]; then
exit 1
fi
-
echo "Pass 2: Updating full tree"
cvs -q update ${1+"$@"}
if [ $? -ne 0 ]; then
@@ -72,35 +145,4 @@ if [ $? -ne 0 ]; then
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
+touch_files