head	1.1;
branch	1.1.1;
access;
symbols
	RELENG_9_1_0_RELEASE:1.1.1.2
	RELENG_9_1:1.1.1.2.0.52
	RELENG_9_1_BP:1.1.1.2
	RELENG_8_3_0_RELEASE:1.1.1.2
	RELENG_8_3:1.1.1.2.0.50
	RELENG_8_3_BP:1.1.1.2
	RELENG_9_0_0_RELEASE:1.1.1.2
	RELENG_9_0:1.1.1.2.0.48
	RELENG_9_0_BP:1.1.1.2
	RELENG_9:1.1.1.2.0.46
	RELENG_9_BP:1.1.1.2
	RELENG_7_4_0_RELEASE:1.1.1.2
	RELENG_8_2_0_RELEASE:1.1.1.2
	RELENG_7_4:1.1.1.2.0.44
	RELENG_7_4_BP:1.1.1.2
	RELENG_8_2:1.1.1.2.0.42
	RELENG_8_2_BP:1.1.1.2
	RELENG_8_1_0_RELEASE:1.1.1.2
	RELENG_8_1:1.1.1.2.0.40
	RELENG_8_1_BP:1.1.1.2
	RELENG_7_3_0_RELEASE:1.1.1.2
	RELENG_7_3:1.1.1.2.0.38
	RELENG_7_3_BP:1.1.1.2
	RELENG_8_0_0_RELEASE:1.1.1.2
	RELENG_8_0:1.1.1.2.0.36
	RELENG_8_0_BP:1.1.1.2
	RELENG_8:1.1.1.2.0.34
	RELENG_8_BP:1.1.1.2
	RELENG_7_2_0_RELEASE:1.1.1.2
	RELENG_7_2:1.1.1.2.0.32
	RELENG_7_2_BP:1.1.1.2
	RELENG_7_1_0_RELEASE:1.1.1.2
	RELENG_6_4_0_RELEASE:1.1.1.2
	RELENG_7_1:1.1.1.2.0.30
	RELENG_7_1_BP:1.1.1.2
	RELENG_6_4:1.1.1.2.0.28
	RELENG_6_4_BP:1.1.1.2
	RELENG_7_0_0_RELEASE:1.1.1.2
	RELENG_6_3_0_RELEASE:1.1.1.2
	RELENG_7_0:1.1.1.2.0.26
	RELENG_7_0_BP:1.1.1.2
	RELENG_6_3:1.1.1.2.0.24
	RELENG_6_3_BP:1.1.1.2
	RELENG_7:1.1.1.2.0.22
	RELENG_7_BP:1.1.1.2
	RELENG_6_2_0_RELEASE:1.1.1.2
	RELENG_6_2:1.1.1.2.0.20
	RELENG_6_2_BP:1.1.1.2
	RELENG_5_5_0_RELEASE:1.1.1.2
	RELENG_5_5:1.1.1.2.0.18
	RELENG_5_5_BP:1.1.1.2
	RELENG_6_1_0_RELEASE:1.1.1.2
	RELENG_6_1:1.1.1.2.0.16
	RELENG_6_1_BP:1.1.1.2
	RELENG_6_0_0_RELEASE:1.1.1.2
	RELENG_6_0:1.1.1.2.0.14
	RELENG_6_0_BP:1.1.1.2
	RELENG_6:1.1.1.2.0.12
	RELENG_6_BP:1.1.1.2
	RELENG_5_4_0_RELEASE:1.1.1.2
	RELENG_5_4:1.1.1.2.0.10
	RELENG_5_4_BP:1.1.1.2
	RELENG_5_3_0_RELEASE:1.1.1.2
	RELENG_5_3:1.1.1.2.0.8
	RELENG_5_3_BP:1.1.1.2
	RELENG_5:1.1.1.2.0.6
	RELENG_5_BP:1.1.1.2
	RELENG_5_2_1_RELEASE:1.1.1.2
	RELENG_5_2_0_RELEASE:1.1.1.2
	RELENG_5_2:1.1.1.2.0.4
	RELENG_5_2_BP:1.1.1.2
	RELENG_5_1_0_RELEASE:1.1.1.2
	RELENG_5_1:1.1.1.2.0.2
	RELENG_5_1_BP:1.1.1.2
	RELENG_5_0_0_RELEASE:1.1.1.1
	RELENG_5_0:1.1.1.1.0.2
	RELENG_5_0_BP:1.1.1.1
	gcc_3_2_1:1.1.1.1
	FSF:1.1.1;
locks; strict;
comment	@# @;


1.1
date	2002.12.04.15.15.05;	author obrien;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2002.12.04.15.15.05;	author obrien;	state Exp;
branches;
next	1.1.1.2;

1.1.1.2
date	2003.03.26.18.12.00;	author kan;	state dead;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@#! /bin/sh
#
# Update a local CVS 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
# 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,
# only generated files that appear to be out of date in the local tree
# will be touched.
#
# If the first parameter is --list, a list of the generated files and
# their dependencies will be printed; --help prints this message.
#
# 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 --patch some-patch
# contrib/gcc_update --touch
# contrib/gcc_update --list
#
#
# (C) 1998, 1999, 2000, 2001 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


# 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.

######## Anything below shouldn't be changed by regular users.

# Arrange for the value of $0 to be available for functions
self=$0

# 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.
files_and_dependencies () {
    sed -e 's/ *#.*//' -e '/^$/d' -e 's/://' <<\EOF
# All automake dependencies within texinfo
# In fact, not all, since we do not care about sub-directories that
# we do not build.  In particular, *.po and *.gmo are not touched.
texinfo/aclocal.m4: texinfo/configure.in texinfo/acinclude.m4
texinfo/Makefile.in: texinfo/Makefile.am texinfo/configure.in texinfo/aclocal.m4
texinfo/configure: texinfo/configure.in texinfo/aclocal.m4
texinfo/stamp-h.in: texinfo/configure.in texinfo/aclocal.m4 texinfo/acconfig.h
texinfo/lib/Makefile.in: texinfo/lib/Makefile.am texinfo/configure.in texinfo/aclocal.m4
texinfo/makeinfo/Makefile.in: texinfo/makeinfo/Makefile.am texinfo/configure.in texinfo/aclocal.m4
texinfo/util/Makefile.in: texinfo/util/Makefile.am texinfo/configure.in texinfo/aclocal.m4
# Now, proceed to gcc automatically generated files
gcc/configure: gcc/configure.in
gcc/cstamp-h.in: gcc/configure.in gcc/acconfig.h
gcc/config.in: gcc/cstamp-h.in
gcc/fixinc/fixincl.x: gcc/fixinc/fixincl.tpl gcc/fixinc/inclhack.def
# And then, language-specific files
gcc/f/intdoc.texi: gcc/f/intdoc.in gcc/f/intdoc.c gcc/f/intrin.h gcc/f/intrin.def
gcc/ada/treeprs.ads: gcc/ada/treeprs.adt gcc/ada/sinfo.ads gcc/ada/xtreeprs.adb
gcc/ada/einfo.h: gcc/ada/einfo.ads gcc/ada/einfo.adb gcc/ada/xeinfo.adb
gcc/ada/sinfo.h: gcc/ada/sinfo.ads gcc/ada/xsinfo.adb
gcc/ada/nmake.adb: gcc/ada/sinfo.ads gcc/ada/nmake.adt gcc/ada/xnmake.adb
gcc/ada/nmake.ads: gcc/ada/sinfo.ads gcc/ada/nmake.adt gcc/ada/xnmake.adb
# And libraries, at last
libchill/configure: libchill/configure.in
libf2c/configure: libf2c/configure.in
libf2c/libF77/configure: libf2c/libF77/configure.in
libf2c/libI77/configure: libf2c/libI77/configure.in
libf2c/libI77/stamp-h.in: libf2c/libI77/configure.in
libf2c/libI77/config.h.in: libf2c/libI77/configure.in libf2c/libI77/stamp-h.in
libf2c/libU77/configure: libf2c/libU77/configure.in
libf2c/libU77/stamp-h.in: libf2c/libU77/configure.in libf2c/libU77/acconfig.h
libobjc/configure: libobjc/configure.in
# fastjar
fastjar/aclocal.m4: fastjar/configure.in
fastjar/Makefile.in: fastjar/Makefile.am fastjar/configure.in fastjar/aclocal.m4
fastjar/configure: fastjar/configure.in fastjar/aclocal.m4
fastjar/stamp-h.in: fastjar/configure.in fastjar/aclocal.m4
boehm-gc/aclocal.m4: boehm-gc/configure.in boehm-gc/acinclude.m4
boehm-gc/Makefile.in: boehm-gc/Makefile.am boehm-gc/configure.in boehm-gc/aclocal.m4
boehm-gc/configure: boehm-gc/configure.in boehm-gc/aclocal.m4
libjava/aclocal.m4: libjava/configure.in libjava/acinclude.m4
libjava/Makefile.in: libjava/Makefile.am libjava/configure.in libjava/aclocal.m4
libjava/configure: libjava/configure.in libjava/aclocal.m4
libjava/libltdl/aclocal.m4: libjava/libltdl/configure.in libjava/libltdl/acinclude.m4
libjava/libltdl/Makefile.in: libjava/libltdl/Makefile.am libjava/libltdl/configure.in libjava/libltdl/aclocal.m4
libjava/libltdl/configure: libjava/libltdl/configure.in libjava/libltdl/aclocal.m4
libjava/libltdl/stamp-h.in: libjava/libltdl/configure.in libjava/libltdl/aclocal.m4 libjava/libltdl/acconfig.h
EOF
}


# This function touches generated files such that the ``end'' user does
# not have to rebuild them.
touch_files () {
    rm -f Makefile.$$
    echo 'all: \' > Makefile.$$
    files_and_dependencies | sed 's, .*, \\,' >> Makefile.$$
    echo '; @@true' >> Makefile.$$
    files_and_dependencies | sed 's, ,: ,' >> Makefile.$$
    files_and_dependencies | sed 's, .*, \\,' >> Makefile.$$
    echo ':' >> Makefile.$$
    echo '	@@for f in $?; do test -f $$f || exit 0; done; \' >> Makefile.$$
    echo '	echo Touching $@@...; \' >> Makefile.$$
    echo '	echo Touching $@@... 1>&2; \' >> Makefile.$$
    echo '	touch $@@' >> Makefile.$$
    files_and_dependencies | sed 's,[^ ]* ,,;s,$, :,' >> Makefile.$$
    while ${MAKE-make} -f Makefile.$$ all | grep . > /dev/null; do
      sleep 1
    done 2>&1
    rm -f Makefile.$$
}


# Whenever we update the tree or install a patch, we may be modifying
# 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
}

# 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 ;;
	*bz2)
	    bzip2 -d -c $1 | patch -p1 ;;
	*)
	    cat $1 | patch -p1 ;;
	esac
    fi
    touch_files_reexec
}

# Check whether this indeed looks like a local tree.
if [ ! -f gcc/version.c ]; then
    echo "This does not seem to be a GCC tree!"
    exit
fi

case "$1" in
# First of all, check whether we are going to process a patch.
--patch)
    if test "$#" != 2; then
        echo "$1" expects only one argument >&2
	exit 1
    fi
    apply_patch "${2}"
    exit $?
    ;;

--touch)
    if test "$#" != 1; then
        echo "$1" does not expect any argument >&2
	exit 1
    fi
    touch_files
    exit $?
    ;;

--list)
    if test "$#" != 1; then
        echo "$1" does not expect any argument >&2
	exit 1
    fi
    files_and_dependencies | sed 's/ /: /'
    exit $?
    ;;

--help)
    sed -e '1,2d' -e '/^UPDATE_OPTIONS=/{i\
\

p
}' \
	-e '/^$/,$d' -e 's/#//' -e 's/^ //' < $0
    exit $?
    ;;

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!"
    exit
fi

# Check command-line options
if [ x"${1}"x = x"--nostdflags"x ]; then
    shift
else
    set -- $UPDATE_OPTIONS ${1+"$@@"}
fi

echo "Updating CVS tree"
cvs -q update ${1+"$@@"}
if [ $? -ne 0 ]; then
    (touch_files_reexec)
    echo "CVS update of full tree failed." >&2
    exit 1
fi

{
  date
  TZ=UTC date
} > LAST_UPDATED
touch_files_reexec
@


1.1.1.1
log
@Gcc 3.2.1 release virgin vendor import. (19-Nov-2002)
@
text
@@


1.1.1.2
log
@Remove files incidentally imported from the wrong place during
3.2.1 import. They are not used by any of our system GCC versions
and will be physically removed from repository soon.

Reviewed by:	obrien
@
text
@@

