summaryrefslogtreecommitdiff
path: root/maintainer-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'maintainer-scripts')
-rw-r--r--maintainer-scripts/ChangeLog959
-rw-r--r--maintainer-scripts/README6
-rw-r--r--maintainer-scripts/crontab7
-rwxr-xr-xmaintainer-scripts/gcc_release768
-rwxr-xr-xmaintainer-scripts/maintainer-addresses37
-rwxr-xr-xmaintainer-scripts/update_version_svn85
-rwxr-xr-xmaintainer-scripts/update_web_docs_libstdcxx_svn46
-rwxr-xr-xmaintainer-scripts/update_web_docs_svn225
8 files changed, 2133 insertions, 0 deletions
diff --git a/maintainer-scripts/ChangeLog b/maintainer-scripts/ChangeLog
new file mode 100644
index 000000000..79257ff7b
--- /dev/null
+++ b/maintainer-scripts/ChangeLog
@@ -0,0 +1,959 @@
+2013-04-12 Release Manager
+
+ * GCC 4.6.4 released.
+
+2012-03-01 Release Manager
+
+ * GCC 4.6.3 released.
+
+2011-11-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_svn: Make $DOCSDIR group writable after
+ creating it.
+
+2011-10-26 Release Manager
+
+ * GCC 4.6.2 released.
+
+2011-06-27 Release Manager
+
+ * GCC 4.6.1 released.
+
+2011-03-25 Release Manager
+
+ * GCC 4.6.0 released.
+
+2011-02-07 Joseph Myers <joseph@codesourcery.com>
+
+ * update_web_docs_svn: Generate libquadmath-vers.texi.
+
+2011-01-31 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_version_svn (FILES): Merge with datestamp_FILES.
+ (SVNROOT2): Introduce and use.
+
+2011-01-30 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_version_svn (SVN): Remove obsolete comment.
+ (CURR_DATE): Fix description.
+ Fix description of checkout procedure.
+
+2010-12-18 Tobias Burnus <burnus@net-b.de>
+
+ * update_web_docs_svn (MANUALS): Add libquadmath.
+
+2010-12-08 Ian Lance Taylor <iant@google.com>
+
+ * gcc_release: Add support for releasing Go as a separate
+ tarball.
+
+2010-12-08 Ian Lance Taylor <iant@google.com>
+
+ * update_web_docs_svn (MANUALS): Add gccgo.
+
+2010-12-08 Ian Lance Taylor <iant@google.com>
+
+ * README: Change "CVS" to "Subversion".
+
+2010-08-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (snapshot_print): Also include an sha1 hash for
+ every tarball. Slightly tweak indentation.
+
+2010-08-15 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (CVSROOT): Remove all occurrences.
+
+2010-08-14 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (snapshot_print): Include md5 hash for every tarball
+ in the README file and notification mail.
+
+2010-08-01 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_libstdcxx_svn: Do not compress generated .html
+ files any more.
+
+2010-06-24 Joseph Myers <joseph@codesourcery.com>
+
+ * update_web_docs_svn: Also pass -I option pointing to ada/ source
+ directory for Ada manual.
+
+2010-04-16 Joseph Myers <joseph@codesourcery.com>
+
+ * crontab: Enable 4.6 snapshots.
+
+2010-04-07 Joseph Myers <joseph@codesourcery.com>
+
+ * crontab: Switch 4.5 snapshots to 4.5 branch.
+
+2010-03-31 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc_release (build_tarfiles): Make directories mode 755, not
+ 777.
+
+2009-10-10 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_svn: Update BUGURL to http://gcc.gnu.org/bugs/.
+
+2009-10-03 Diego Novillo <dnovillo@google.com>
+
+ * gcc_release (JAVA_DIRS): Remove zlib.
+
+2009-04-23 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_svn: Redirect output of texi2dvi to /dev/null.
+
+2009-04-09 Jakub Jelinek <jakub@redhat.com>
+
+ * gcc_release: Change copyright header to refer to version
+ 3 of the GNU General Public License and to point readers at the
+ COPYING3 file and the FSF's license web page.
+ * maintainer-addresses: Likewise.
+
+2009-04-08 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_svn: Run this script under plain /bin/sh
+ as opposed to /bin/sh -x.
+
+2009-03-30 Joseph Myers <joseph@codesourcery.com>
+
+ * update_version_svn (IGNORE_BRANCHES): Add 4.2 branch.
+
+2009-03-28 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Stop 4.2 snapshots.
+ Spread out 4.3, 4.4, and 4.5 snapshots more evenly.
+
+2009-03-27 Mark Mitchell <mark@codesourcery.com>
+
+ * crontab: Add 4.4 branch snapshots.
+
+2009-02-21 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_version_svn (ADD_BRANCHES): Remove autovect-branch
+ and document format.
+
+2009-01-17 Richard Guenther <rguenther@suse.de>
+
+ * gcc_release (JAVA_DIRS): Remove fastjar.
+
+2008-10-04 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release: Fix a couple of comments.
+
+2008-07-04 Joseph Myers <joseph@codesourcery.com>
+
+ * crontab: Remove 4.1 snapshots job.
+ * update_version: Remove.
+ * gcc_release: Remove support for g77 and release status in
+ version.c.
+ * update_version_svn: Ignore 4.1 branch. Remove support for
+ updating files other than DATESTAMP.
+ * update_web_docs_svn: Remove support for g77 manual.
+
+2008-02-18 Jakub Jelinek <jakub@redhat.com>
+
+ * crontab: Add 4.3 branch. Set trunk to 4.4.
+
+2008-01-28 Joseph Myers <joseph@codesourcery.com>
+
+ * gcc_release (build_sources): Pass --disable-multilib to
+ gcc_build.
+ (SVN): Don't use full path.
+
+2008-01-21 Jonathan Wakely <jwakely.gcc@gmail.com>
+
+ * update_web_docs_libstdcxx_svn: "docs" dir moved to "doc".
+
+2007-10-01 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release: Do not include copies of faq.html in releases,
+ and remove all the explicit support code to pull in web pages.
+
+2007-08-21 Paul Brook <paul@codesourcery.com>
+ Nathan Sidwell <nathan@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+ Joseph Myers <joseph@codesourcery.com>
+
+ * gcc_release: Do not include copies of bugs.html in releases.
+ * update_web_docs_svn: Set VERSION_PACKAGE and BUGURL in
+ gcc-vers.texi.
+
+2007-07-06 Joseph Myers <joseph@codesourcery.com>
+
+ * update_web_docs_svn: Use -o with makeinfo, texi2dvi and texi2pdf
+ commands.
+
+2007-06-28 Mike Stump <mrs@apple.com>
+
+ * gcc_release: Update for Objective-C++.
+
+2007-05-28 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Adjust placement of release candidates.
+
+2007-04-01 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_web_docs_svn (MANUALS): Move towards the top of the
+ script. Reformat for easier editing/diffing.
+
+2006-03-31 Tobias Burnus <burnus@net-b.de>
+
+ * update_web_docs_svn: Build also gfc-internals.
+
+2007-02-25 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * update_version_svn (IGNORE_BRANCHES): Add 4_0-branch.
+
+2007-01-29 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: No longer build snapshots for 4.0.x.
+
+2007-01-21 Tobias Burnus <burnus@net-b.de>
+
+ * update_web_docs_svn: Build also libgomp documentation.
+
+2007-01-05 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Spread snapshots more evenly throughout the week, and
+ in "ascending" order. Build all at the same time of the day.
+
+2006-10-20 Mark Mitchell <mark@codesourcery.com>
+
+ * crontab: Add 4.2 branch. Set trunk to 4.3.
+
+2006-09-17 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (LC_ALL): Default to C.
+
+2006-03-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
+
+ * crontab: Don't build snapshot for 3.4.x anymore.
+ * update_version_svn (IGNORE_BRANCHES): Add 3_4-branch.
+
+2006-01-12 Ben Elliston <bje@au.ibm.com>
+
+ * update_version_svn (ADD_BRANCHES): Remove dfp-branch.
+
+2005-12-16 Joseph S. Myers <joseph@codesourcery.com>
+
+ * update_web_docs_svn: Remove unnecessary files from source tree.
+ Use set -e.
+ * doc_exclude, update_web_docs, update_web_docs_libstdcxx: Remove.
+
+2005-12-16 Mark Mitchell <mark@codesourcery.com>
+
+ * update_web_docs_svn: Set @srcdir in gcc-vers.texi.
+
+2005-11-18 Mark Mitchell <mark@codesourcery.com>
+
+ * crontab: Add 4.1 branch entry.
+
+2005-11-06 Joseph S. Myers <joseph@codesourcery.com>
+
+ * gcc_release: Further update for SVN. Don't set EXPORTTAG or
+ EXPORTDATE; always determine SVNREV the same way. Correct message
+ about what sources are being retrived. Include branch information
+ in LAST_UPDATED.
+ * crontab: Don't include initial / in branch name.
+
+2005-11-05 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc_release: Always determine revision number from date or tag,
+ and use that, instead of fragile date based export.
+ Put back setting of non-local CVSROOT.
+
+2005-11-05 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc_release: Make tags go in /tags.
+ Don't tag for snapshots.
+ Determine revision number of export and put into snapshot
+ announcement.
+
+2005-11-03 Daniel Berlin <dberlin@dberlin.org>
+
+ * gcc_release: Update for SVN
+ * crontab: Update for new gcc_release
+
+2005-10-26 Daniel Berlin <dberlin@dberlin.org>
+
+ * update_web_docs_svn: Use -q to quiet svn.
+
+2005-10-26 Daniel Berlin <dberlin@dberlin.org>
+
+ * crontab: Update to reflect reality
+
+2005-10-01 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release (build_sources): If trying to apply a tag that
+ already exists, issue an error message and exit.
+
+2005-09-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ PR other/23693
+ * update_web_docs: Add PDF support. Correct check of DEV-PHASE.
+
+2005-09-30 Joseph S. Myers <joseph@codesourcery.com>
+
+ * update_web_docs_old: Remove.
+
+2005-08-14 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release: Update with FSF address.
+
+2005-07-26 Janis Johnson <janis187@us.ibm.com>
+
+ * update_version (ADD_BRANCHES): Add dfp-branch.
+
+2005-05-21 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Spread snapshot building more evenly throughout the
+ week.
+
+2005-05-19 Joseph S. Myers <joseph@codesourcery.com>
+
+ * crontab: Don't build 3.3 branch snapshots.
+ * update_version (IGNORE_BRANCHES): Add gcc-3_3-branch.
+
+2005-03-15 Zack Weinberg <zack@codesourcery.com>
+
+ * README: Update.
+ * gcc_release: Update gcc/DEV-PHASE if that file exists, instead
+ of gcc/version.c.
+ * update_version: Handle updating gcc/DATESTAMP.
+ * update_web_docs: Generate gcc-vers.texi first.
+
+2005-03-10 Ranjit Mathew <rmathew@hotmail.com>
+
+ * gcc_release (ADA_DIRS): Add "gnattools".
+
+2005-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * crontab: Adjust for 4.0 branch.
+
+2004-12-30 Sebastian Pop <pop@cri.ensmp.fr>
+
+ * update_version (ADD_BRANCHES): Replace lno-branch with
+ autovect-branch.
+
+2004-09-11 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Rename GCC 3.5 snapshots to GCC 4.0 snapshots.
+
+2004-08-14 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release (build_sources): Add comment header to generated
+ MD5SUMS.
+
+2004-08-06 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release (snapshot_print): Accept arguments. Don't use echo -e.
+ (announce_snapshot): Update for above. Don't use echo -e.
+
+2004-08-03 Kelley Cook <kcook@gcc.gnu.org>
+
+ * maintainer-scripts (snapshot_print): New function.
+ (announce_snapshot): Generate announcment on the fly.
+ Use a directory link for LATEST.
+ * snapshot-README: Delete.
+ * snapshot-index.html: Delete.
+
+2004-06-09 Paolo Bonzini <bonzini@gnu.org>
+
+ * gcc_release (build_sources): Move the libcpp gmo files
+ to the source directory.
+
+2004-06-03 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcc_release (maybe_build_tarfile): New function.
+ (build_tarfiles): Use maybe_build_tarfile.
+
+2004-05-21 Paolo Carlini <pcarlini@suse.de>
+
+ * gcc_release (build_sources): Generate the NEWS file in toplevel.
+
+2004-05-17 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release (build_sources): Change CRCs from brik to md5sum.
+
+2004-05-16 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Add GCC 3.5 snapshots, currenty run on Sundays.
+
+2004-05-13 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_web_docs: Also remove old .gz files from subdirectories
+ on the 15th of the month.
+
+2004-05-13 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_web_docs (MANUALS): Add gfortran.
+
+2004-05-13 Arnaud Charlet <charlet@act-europe.fr>
+
+ * update_web_docs: Fix generation of Ada docs.
+
+2004-05-13 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_version (ADD_BRANCHES): Remove tree-ssa-20020619-branch.
+
+ * gcc_release (DIFF): Remove -3 option.
+
+2003-07-26 Paul Brook <paul@nowt.org>
+
+ * gcc_release: Add gcc-fortran.
+ * snapshot-README: Ditto.
+ * snapshot-index.html: Ditto.
+
+2004-05-02 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Move GCC 3.4 snapshots from Wednesday afternoon to
+ Friday night, where gcc.gnu.org has less load.
+
+2004-05-02 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Adjust temporary directory used for snapshot generation.
+ Move GCC 3.3 snapshots to Wednesday 22:32, where gcc.gnu.org has
+ less load.
+
+2004-04-19 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release (build_sources): Do not use "-F" to tag sources.
+
+2004-04-07 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release (build_sources): Do not use "-r" and "-D" at the
+ same time with "cvs export".
+
+2004-03-27 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release: Fix sanity check for argument of -p command-line
+ options. In snapshot mode, only generate diffs against the previous
+ snapshot if the user did not specify any old tarball explictly.
+
+2004-03-25 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (FTP_PATH): Use /var/ftp instead of ~ftp, and
+ only set at a single place.
+
+2004-03-14 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (SNAPSHOTS_DIR): New variable. Use it.
+ (announce_snapshot): Use it.
+
+2004-03-14 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (announce_snapshot): Use changedir instead of
+ plain cd.
+
+2004-02-10 Arnaud Charlet <charlet@act-europe.fr>
+
+ * gcc_release: Add libada as part of ADA_DIRS.
+
+2004-01-21 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * crontab: Make 3.4 snapshots from the new 3.4 release branch.
+
+2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release (build_sources): Delete call to make f77.rebuilt.
+
+2004-01-17 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * snapshot-README: Mention how the snapshot was generated.
+ * snapshot-index.html: Ditto. Further sync with snapshot-README.
+
+2004-01-03 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_web_docs: Create tarballs of documentation sources and
+ HTML docs.
+
+2004-01-02 Gerald Pfeifer <gp@suse.de>
+
+ * update_version: Add some documentation.
+
+2004-01-02 Pop Sébastian <pop@gauvain.u-strasbg.fr>
+
+ * update_version (ADD_BRANCHES): Add lno-branch.
+
+2003-11-02 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * maintainer-addresses: New script.
+
+2003-10-24 Kelley Cook <kcook@gcc.gnu.org>
+
+ * gcc_release (build_sources): Use --enable-generated-files-in-srcdir.
+
+2003-09-22 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (announce_snapshot): Restructure processing
+ of snapshot-README and snapshot-index.html and add a new
+ substitution for @EXPORT@.
+
+2003-08-24 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (build_sources): Create/update the LAST_UPDATED file
+ in the source directory with information how sources were obtained.
+
+2003-08-16 Gerald Pfeifer <gerald@pfeifer.com>
+
+ * gcc_release (build_sources): Use two new variables EXPORTTAG and
+ EXPORTDATE to make the extraction of sources more transparent and
+ also allow snapshots (off mainline) without a tag.
+
+2003-08-08 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Correct logic for updating version.c. Put
+ prereleases into a subdirectory.
+
+2003-07-29 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * crontab: Update invocation of gcc_release according to the
+ previous changes there. Add automatic 3.4 snapshots from mainline.
+
+2003-07-23 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (usage): Document that -s now takes symbolic name
+ and branch of the snapshot as parameters.
+ Implement this as part of command-line processing.
+ (BRANCH): Remove default initialization for snapshots.
+ (CVSBRANCH): Ditto.
+ Do not lay down a CVS tag if generating a snapshot from mainline.
+
+2003-07-19 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (announce_snapshot): Use ${RELEASE} instead
+ of ${BRANCH}-${DATE} to refer to the snapshot directory.
+ Put README file into the snapshot directory.
+
+ (RELEASE): Define as ${BRANCH}-${DATE} for snapshots.
+ (FTP_PATH): Use ${RELEASE} in case of snapshots.
+ (TAG): Ditto.
+ (OLD_TARS): Adjust to new directory scheme for snapshots.
+
+2003-07-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (announce_snapshot): Add substitution of @RELEASE@
+ for README and index.html.
+ * snapshot-README: Use it.
+ * snapshot-index.html: Ditto.
+
+2003-07-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (announce_snapshot): Add substitution of @BRANCH@
+ for README and index.html. Remove substitution of @LONG_DATE@.
+ Put index.html into the respective snapshot directory.
+ Adjust subject of the notification mail to the new naming scheme
+ for CVS tags.
+ Adjust name of the LATEST-IS-... files to the new naming scheme
+ for snapshot directories.
+ (FTP_PATH): Ditto.
+ (LAST_DIR): Ditto.
+ (LAST_LONG_DATE): Remove.
+
+ * snapshot-README: Adjust to the new naming schemes for directories
+ and snapshots per se.
+ Dynamically fill in the respective branch instead of hardcoding it.
+
+ * snapshot-index.html: Replace individual links to diffs with a
+ general link to the diff/ subdirectory.
+ Mention the concrete snapshot in <title> and <h1>.
+ Adjust links to the new location of index.html.
+
+2003-07-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Move handling of complex modes directly after
+ switch handling.
+ (TAG): Include the branch name as part of snapshot CVS tags.
+
+2003-07-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Execute gcc.gnu.org-only operations which are
+ related to diff generation only if diffs have been requested.
+ (build_sources): Improve tracing and an error message related
+ to tagging.
+
+2003-07-01 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (BRANCH): Rename to...
+ (CVSBRANCH): ...new macro, and use BRANCH for the variant users
+ will see.
+ (FTP_BRANCH): For snapshots, include ${BRANCH} in the last part
+ of the directory name.
+ Use .snapshot_date-${BRANCH} instead of .snapshot_date.
+
+2003-06-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Command "all" now creates .gz files only for
+ releases and pre-releases.
+
+2003-06-27 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_sources): Do not include gnats.html any longer.
+ Make an error message more descriptive.
+
+2003-06-25 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Factor the updating of links and READMEs on the
+ FTP server and sending mail for snapshots into a...
+ (announce_snapshot): ...new function.
+ Add informative output for both.
+
+2003-06-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release: Do not update gcc_latest_snapshot tag any longer.
+
+2003-06-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * snapshot-index.html: Use F77 instead of G77 front end.
+ Remove link to CodeSourcery snapshots which was not up-to-date.
+ Do not refer to gcc-bugs@gcc.gnu.org any longer.
+
+ * snapshot-README: Use F77 front end instead of G77 language.
+
+2003-06-17 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_tarfile): Build .bz2 files instead of .gz files.
+ (build_bz2): Rename to build_gzip and create .gz files from .bz2
+ files instead of the other way around.
+ (build_gzip): New function.
+ (build_diffs): Build .bz2 files instead of .gz files.
+ (build_diff): Use .bz2 files instead of .gz files.
+ Make an error message independent of the compression format.
+ (MODE_BZIP2): Rename to MODE_GZIP. Related changes to the
+ invocation of this script.
+ (MODE_GZIP): New variable.
+ (OLD_TARS): Use .bz2 archive of the previous snapshot.
+
+2003-06-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * snapshot-README: Use GCC instead of gcc, C++ front end instead of
+ g++ language, and note that Java includes a run time.
+ * snapshot.index.html: Ditto.
+
+2003-06-10 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_diff): Properly use ${TAR} instead of
+ hard-coded tar.
+
+2003-05-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * snapshot-index.html: Refer to .bz2 files instead of .gz files.
+ Simplify the note on not using unannounced snapshots.
+
+2003-05-28 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * snapshot-README: Refer to .bz2 files instead of .gz files.
+ Add a note on where to find the diff files.
+ Simplify the note on not using unannounced snapshots.
+ Remove documentation of the gcc_latest_snapshot tag.
+
+2003-05-27 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_diffs): Add diagnostics in case we cannot
+ generate a specific diff file.
+
+2003-05-24 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (build_sources): Only update ChangeLog files which
+ do not yet contain the entry we are going to add.
+ Fix typo in added ChangeLog entries.
+
+2003-05-20 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (upload_files): Put diff files into a "diffs"
+ subdirectory
+
+2003-05-18 Nathanael Nerode <neroden@gcc.gnu.org>
+
+ * gcc_release: GNU CC -> GCC.
+
+2003-05-12 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * gcc_release (usage): Print more detailed description of all
+ command-line options.
+
+2003-05-09 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_version (ADD_BRANCHES): Add, set to MAIN and
+ tree-ssa-20020619-branch.
+ (BRANCHES): Always consider branches given by $ADD_BRANCHES.
+
+2003-05-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_version (textstring_FILES): Only version.c needs to be
+ updated, now that we do not consider older branches any more.
+
+2003-05-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_version (IGNORE_BRANCHES): Add.
+ (BRANCHES): Do not consider branches matching $IGNORE_BRANCHES.
+
+2003-05-02 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_version: Add a trace of which branch we are currently
+ working on.
+
+2002-12-16 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Make snapshots from the GCC 3.3 branch.
+ * snapshot-README: Update.
+
+2002-09-23 Zack Weinberg <zack@codesourcery.com>
+
+ * update_version: Do not check in files which are unchanged.
+ * gcc_release: Only update the version in gcc/version.c.
+
+2002-09-17 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_web_docs (MANUALS): Add fastjar.
+
+2002-09-08 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * gcc_release: Make snapshots come from the mainline.
+ * snapshot-README: Update.
+
+2002-08-28 Joseph S. Myers <jsm@polyomino.org.uk>
+
+ * update_web_docs: Remove support for generating g77_news.html and
+ g77_bugs.html.
+ * update_web_docs_old: Likewise. Remove support for generating
+ thanks.html.
+
+2002-07-28 Andreas Jaeger <aj@suse.de>
+
+ * gcc_release: Update comment.
+
+ * snapshot-README: Snapshots are taken from GCC 3.2 branch.
+
+2002-07-28 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Use the 3.2 branch for snapshots.
+
+2002-05-31 Florian Weimer <fw@deneb.enyo.de>
+
+ * update_web_docs (MANUALS): Include various flavours of the GNAT
+ User Guide.
+
+2002-05-27 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_version (textstring_FILES): Change gcc/ada/gnatvsn.ads to
+ gcc/gcc/ada/gnatvsn.ads.
+
+2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Add gcc/ada/gnatvsn.ads to list of files in which
+ release status is updated.
+ * update_version (textstring_FILES): Add gcc/ada/gnatvsn.ads.
+
+2002-05-21 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Do upload files when local.
+
+ * snapshot-README, snapshot-index.html: Remove chill.
+
+2002-05-08 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Correct upload handling.
+
+2002-04-22 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release (build_diffs): Remove reference to Chill.
+
+2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs (MANUALS): Remove chill. Add gnat_rm.
+
+2002-04-19 Kelley R. Cook (kelly.r.cook@gm.com)
+
+ * gcc_release: Set TZ to UTC0.
+
+2002-04-15 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release (build_tarfiles): Do not build Chill tarfiles.
+ (CHILL_DIRS): Remove.
+
+2002-03-10 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Build diffs for ada and chill. Make "bzip2" a new
+ major mode.
+
+2002-03-06 Phil Edwards <pme@gcc.gnu.org>
+
+ * update_version: Don't indent the version string.
+
+2002-03-05 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * snapshot-README: Note that snapshots come from the 3.1 branch.
+ Update list of files.
+
+2002-03-03 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Make snapshots come from the 3.1 branch.
+
+2002-02-25 Mark Mitchell <mark@codesourcery.com>
+
+ * update_version: Automatically update version files on all
+ branches.
+ * crontab: Only invoke update_version once.
+
+2002-02-23 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Revert change to -p interface. Allow for local and
+ remote cases in creating directories. Give an error if -p
+ argument names a directory.
+
+2002-02-21 Mark Mitchell <mark@codesourcery.com>
+
+ * gcc_release: Correct handling of diff-generation. Add
+ "diffs" major mode.
+
+2002-02-08 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Substitute dates in snapshot-README and
+ snapshot-index.html files rather than directly using the old files
+ on the FTP site. Set QMAILHOST.
+
+2002-02-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * snapshot-index.html: Improve markup.
+
+2002-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * snapshot-README, snapshot-index.html: Use expressions such as
+ @DATE@ rather than hardcoded dates.
+
+ * snapshot-README, snapshot-index.html: New files.
+
+2002-01-06 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_web_docs (contrib_file): Remove.
+ Also removing special handling of thanks.html.
+
+2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Use makeinfo --html instead of texi2html.
+ Remove support for pre-3.1 GCC versions. Build online docs for
+ gccint manual.
+
+2001-12-17 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs_old: Copy from update_web_docs. Add comment
+ that this is for GCC 3.0.x and earlier versions.
+
+2001-11-19 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Add /usr/local/bin to path when local.
+
+2001-11-06 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Set SOURCEDIR so that install manual can be
+ found when running install.texi2html.
+
+ * gcc_release: Don't require a username if running locally.
+
+2001-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Eliminate warnings about keeping files from web
+ page preprocessing.
+
+ * update_web_docs: Allow for the same file name in different
+ directories.
+
+2001-10-29 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Generate libiberty and gnat-style manuals.
+
+2001-10-24 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * gcc_release: Build snapshots from mainline. Generate Ada and
+ Chill tarballs. Correct error check when building diffs. Check
+ for errors when building bzip2 files.
+ * crontab: Use /sourceware/snapshot-tmp for building snapshots.
+
+2001-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * crontab: Build weekly snapshots.
+
+ * gcc_release: Copy from 3.0 branch. Add support for building the
+ weekly snapshots on gcc.gnu.org.
+
+2001-08-28 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Also check out texinfo.tex from
+ gcc/doc/include.
+
+2001-08-06 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_web_docs (PREPROCESS): Rename to WWWPREPROCESS.
+ Preprocess the entire web site, not just the install docs.
+
+2001-06-25 Phil Edwards <pme@sources.redhat.com>
+
+ * update_version: Add command-line argument capability, also
+ bump version for libstdc++-v3, and exit with the return code from
+ the cvs commit.
+ * crontab: Call update_version with arguments instead of
+ calling update_branch_version.
+ * update_branch_version: Remove.
+
+2001-06-08 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_web_docs: Only update the install documentation for the
+ CVS HEAD.
+
+2001-06-07 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs, doc_exclude: Check out files that may be in the
+ Attic. Check out texinfo.tex. Don't generate anything from
+ c-tree.texi. Generate PostScript output from manuals.
+
+2001-06-04 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * update_web_docs (WWWBASE_PREFORMATTED, PREPROCESS): New
+ variables.
+ Fix a comment and add another one.
+ Generate the installation documentation in HTML format from
+ gcc/doc/install.texi.
+
+2001-05-03 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Don't generate HTML from gxxint.texi. Don't
+ run texi2html on manuals that aren't present.
+
+2001-03-18 Phil Edwards <pme@sources.redhat.com>
+
+ * update_web_docs_libstdcxx: New script.
+ * crontab: Call said script.
+
+2001-03-18 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_version, update_branch_version: Check out with gcc
+ directory instead of using egcs link.
+
+2001-03-17 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Don't strip leading -r from argument following
+ -r, or leading -d from argument following -d. Bug pointed out by
+ Matt Kraai.
+
+ * update_web_docs: Handle -r and -d options to generate docs for a
+ release or branch in a subdirectory. Determine names of G77 news
+ and bugs files and contributors file after updated docs have been
+ installed, not before. Don't remove files from a subdirectory.
+ Don't generate manuals for gcov (included in the GCC manual) or
+ iostream (obsolete). Do generate manuals for cppinternals, gcj
+ and porting. Update regular expressions for detecting whether
+ files have really changed when regenerated.
+
+2001-03-15 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * update_web_docs: Use /usr/local/bin/texi2html rather than
+ gccadmin's local copy.
+
+2001-03-10 Joseph S. Myers <jsm28@cam.ac.uk>
+
+ * crontab, doc_exclude, update_branch_version, update_version,
+ update_web_docs: New files (as currently used by gccadmin).
+ * README: New file.
diff --git a/maintainer-scripts/README b/maintainer-scripts/README
new file mode 100644
index 000000000..9f5b71f30
--- /dev/null
+++ b/maintainer-scripts/README
@@ -0,0 +1,6 @@
+This directory contains various files used by the gccadmin account on
+gcc.gnu.org, mainly for automated tasks such as the daily update of
+the date in gcc/DATESTAMP. There isn't presently any scheme for files
+checked in here to be automatically checked out and used by gccadmin,
+so the files in Subversion and those used by gccadmin must be kept in
+sync manually.
diff --git a/maintainer-scripts/crontab b/maintainer-scripts/crontab
new file mode 100644
index 000000000..8809acd14
--- /dev/null
+++ b/maintainer-scripts/crontab
@@ -0,0 +1,7 @@
+16 0 * * * sh /home/gccadmin/scripts/update_version_svn
+50 0 * * * sh /home/gccadmin/scripts/update_web_docs_svn
+55 0 * * * sh /home/gccadmin/scripts/update_web_docs_libstdcxx_svn
+32 22 * * 0 sh /home/gccadmin/scripts/gcc_release -s 4.3:branches/gcc-4_3-branch -l -d /sourceware/snapshot-tmp/gcc all
+32 22 * * 2 sh /home/gccadmin/scripts/gcc_release -s 4.4:branches/gcc-4_4-branch -l -d /sourceware/snapshot-tmp/gcc all
+32 22 * * 4 sh /home/gccadmin/scripts/gcc_release -s 4.5:branches/gcc-4_5-branch -l -d /sourceware/snapshot-tmp/gcc all
+32 22 * * 6 sh /home/gccadmin/scripts/gcc_release -s 4.6:trunk -l -d /sourceware/snapshot-tmp/gcc all
diff --git a/maintainer-scripts/gcc_release b/maintainer-scripts/gcc_release
new file mode 100755
index 000000000..0c40313f8
--- /dev/null
+++ b/maintainer-scripts/gcc_release
@@ -0,0 +1,768 @@
+#! /bin/sh
+
+########################################################################
+#
+# File: gcc_release
+# Author: Jeffrey Law, Bernd Schmidt, Mark Mitchell
+# Date: 2001-05-25
+#
+# Contents:
+# Script to create a GCC release.
+#
+# Copyright (c) 2001, 2002, 2006, 2009, 2010 Free Software Foundation.
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+#
+########################################################################
+
+########################################################################
+# Notes
+########################################################################
+
+# Here is an example usage of this script, to create a GCC 3.0.2
+# prerelease:
+#
+# gcc_release -r 3.0.2
+#
+# This script will automatically use the head of the release branch
+# to generate the release.
+
+########################################################################
+# Functions
+########################################################################
+
+# Issue the error message given by $1 and exit with a non-zero
+# exit code.
+
+error() {
+ echo "gcc_release: error: $1"
+ exit 1
+}
+
+# Issue the informational message given by $1.
+
+inform() {
+ echo "gcc_release: $1"
+}
+
+# Issue a usage message explaining how to use this script.
+
+usage() {
+cat <<EOF
+gcc_release -r release [-f] [further options]
+gcc_release -s name:svnbranch [further options]
+
+Options:
+
+ -r release Version of the form X.Y or X.Y.Z.
+ -s name:svnbranch Create a snapshot, not a real release.
+
+ -d destination Local working directory where we will build the release
+ (default=${HOME}).
+ -f Create a final release (and update ChangeLogs,...).
+ -l Indicate that we are running on gcc.gnu.org.
+ -p previous-tarball Location of a previous tarball (to generate diff files).
+ -t tag Tag to mark the release in SVN.
+ -u username Username for upload operations.
+EOF
+ exit 1
+}
+
+# Change to the directory given by $1.
+
+changedir() {
+ cd $1 || \
+ error "Could not change directory to $1"
+}
+
+# Each of the arguments is a directory name, relative to the top
+# of the source tree. Return another name for that directory, relative
+# to the working directory.
+
+adjust_dirs() {
+ for x in $@; do
+ echo `basename ${SOURCE_DIRECTORY}`/$x
+ done
+}
+
+# Build the source tree that will be the basis for the release
+# in ${WORKING_DIRECTORY}/gcc-${RELEASE}.
+
+build_sources() {
+ # If the WORKING_DIRECTORY already exists, do not risk destroying it.
+ if [ -r ${WORKING_DIRECTORY} ]; then
+ error "\`${WORKING_DIRECTORY}' already exists"
+ fi
+ # Create the WORKING_DIRECTORY.
+ mkdir "${WORKING_DIRECTORY}" \
+ || error "Could not create \`${WORKING_DIRECTORY}'"
+ changedir "${WORKING_DIRECTORY}"
+
+ # If this is a final release, make sure that the ChangeLogs
+ # and version strings are updated.
+ if [ ${FINAL} -ne 0 ]; then
+ inform "Updating ChangeLogs and version files"
+
+ ${SVN} -q co "${SVNROOT}/${SVNBRANCH}" "`basename ${SOURCE_DIRECTORY}`" ||\
+ error "Could not check out release sources"
+ for x in `find ${SOURCE_DIRECTORY} -name ChangeLog`; do
+ # Update this ChangeLog file only if it does not yet contain the
+ # entry we are going to add. (This is a safety net for repeated
+ # runs of this script for the same release.)
+ if ! grep "GCC ${RELEASE} released." ${x} > /dev/null ; then
+ cat - ${x} > ${x}.new <<EOF
+${LONG_DATE} Release Manager
+
+ * GCC ${RELEASE} released.
+
+EOF
+ mv ${x}.new ${x} || \
+ error "Could not update ${x}"
+ (changedir `dirname ${x}` && \
+ ${SVN} -q ci -m 'Mark ChangeLog' `basename ${x}`) || \
+ error "Could not commit ${x}"
+ fi
+ done
+
+ # Update gcc/DEV-PHASE.
+
+ [ `cat ${SOURCE_DIRECTORY}/gcc/BASE-VER` = ${RELEASE} ] || \
+ error "Release number ${RELEASE} does not match BASE-VER"
+ (changedir ${SOURCE_DIRECTORY}/gcc && \
+ : > DEV-PHASE && \
+ ${SVN} -q ci -m 'Mark as release' DEV-PHASE) || \
+ error "Could not update DEV-PHASE"
+
+ # Make sure we tag the sources for a final release.
+ TAG="tags/gcc_`echo ${RELEASE} | tr . _`_release"
+
+ rm -rf ${SOURCE_DIRECTORY}
+ fi
+
+ # Tag the sources.
+ if [ -n "${TAG}" ]; then
+ inform "Tagging sources as ${TAG}"
+ # We don't want to overwrite an existing tag. So, if the tag
+ # already exists, issue an error message; the release manager can
+ # manually remove the tag if appropriate.
+ echo "${SVN} ls ${SVNROOT}/${TAG}/ChangeLog"
+ if ${SVN} ls "${SVNROOT}/${TAG}/ChangeLog"; then
+ error "Tag ${TAG} already exists"
+ fi
+ ${SVN} -m "Tagging source as ${TAG}" cp "${SVNROOT}/${SVNBRANCH}" "${SVNROOT}/${TAG}" || \
+ error "Could not tag sources"
+ SVNBRANCH=${TAG}
+ fi
+ SVNREV=`${SVN} info "${SVNROOT}/${SVNBRANCH}"|awk '/Revision:/ {print $2}'`
+
+ # Export the current sources.
+ inform "Retrieving sources (svn export -r ${SVNREV} ${SVNROOT}/${SVNBRANCH})"
+
+ ${SVN} -q export -r${SVNREV} "${SVNROOT}/${SVNBRANCH}" "`basename ${SOURCE_DIRECTORY}`" ||\
+ error "Could not retrieve sources"
+
+ # Run gcc_update on them to set up the timestamps nicely, and (re)write
+ # the LAST_UPDATED file containing the SVN tag/revision used.
+ changedir "gcc-${RELEASE}"
+ contrib/gcc_update --touch
+ echo "Obtained from SVN: ${SVNBRANCH} revision ${SVNREV}" > LAST_UPDATED
+
+ # For a prerelease or real release, we need to generate additional
+ # files not present in SVN.
+ changedir "${SOURCE_DIRECTORY}"
+ if [ $SNAPSHOT -ne 1 ]; then
+ # Generate the documentation.
+ inform "Building install docs"
+ SOURCEDIR=${SOURCE_DIRECTORY}/gcc/doc
+ DESTDIR=${SOURCE_DIRECTORY}/INSTALL
+ export SOURCEDIR
+ export DESTDIR
+ ${SOURCE_DIRECTORY}/gcc/doc/install.texi2html
+
+ # Regenerate the NEWS file.
+ contrib/gennews > NEWS || \
+ error "Could not regenerate NEWS files"
+
+ # Now, we must build the compiler in order to create any generated
+ # files that are supposed to go in the source directory. This is
+ # also a good sanity check to make sure that the release builds
+ # on at least one platform.
+ inform "Building compiler"
+ OBJECT_DIRECTORY=../objdir
+ contrib/gcc_build -d ${SOURCE_DIRECTORY} -o ${OBJECT_DIRECTORY} \
+ -c "--enable-generated-files-in-srcdir --disable-multilib" build || \
+ error "Could not rebuild GCC"
+ fi
+
+ # Move message catalogs to source directory.
+ mv ../objdir/gcc/po/*.gmo gcc/po/
+ [ -f libcpp/po/cpplib.pot ] && mv ../objdir/libcpp/po/*.gmo libcpp/po/
+
+ # Create a "MD5SUMS" file to use for checking the validity of the release.
+ echo \
+"# This file contains the MD5 checksums of the files in the
+# gcc-"${RELEASE}".tar.bz2 tarball.
+#
+# Besides verifying that all files in the tarball were correctly expanded,
+# it also can be used to determine if any files have changed since the
+# tarball was expanded or to verify that a patchfile was correctly applied.
+#
+# Suggested usage:
+# md5sum -c MD5SUMS | grep -v \"OK$\"
+" > MD5SUMS
+
+ find . -type f |
+ sed -e 's:^\./::' -e '/MD5SUMS/d' |
+ sort |
+ xargs md5sum >>MD5SUMS
+}
+
+# Build a single tarfile. The first argument is the name of the tarfile
+# to build, without any suffixes. They will be added automatically. The
+# rest of the arguments are files or directories to include, and possibly
+# other arguments to tar.
+
+build_tarfile() {
+ # Get the name of the destination tar file.
+ TARFILE="$1.tar.bz2"
+ shift
+
+ # Build the tar file itself.
+ (${TAR} cf - "$@" | ${BZIP2} > ${TARFILE}) || \
+ error "Could not build tarfile"
+ FILE_LIST="${FILE_LIST} ${TARFILE}"
+}
+
+# Build a single tarfile if any of the directories listed exist,
+# but not if none of them do (because that component doesn't exist
+# on this branch).
+maybe_build_tarfile() {
+ dest=$1
+ shift
+ dir_exists=0
+ for maybe_dir in "$@"; do
+ if [ -d "$maybe_dir" ]; then
+ dir_exists=1
+ fi
+ done
+ if [ $dir_exists = 1 ]; then
+ build_tarfile "$dest" "$@"
+ else
+ echo "Not building $dest tarfile"
+ fi
+}
+
+# Build the various tar files for the release.
+
+build_tarfiles() {
+ inform "Building tarfiles"
+
+ changedir "${WORKING_DIRECTORY}"
+
+ # The GNU Coding Standards specify that all files should
+ # world readable.
+ chmod -R a+r ${SOURCE_DIRECTORY}
+ # And that all directories have mode 755.
+ find ${SOURCE_DIRECTORY} -type d -exec chmod 755 {} \;
+
+ # Build one huge tarfile for the entire distribution.
+ build_tarfile gcc-${RELEASE} `basename ${SOURCE_DIRECTORY}`
+
+ # Now, build one for each of the languages.
+ maybe_build_tarfile gcc-ada-${RELEASE} ${ADA_DIRS}
+ maybe_build_tarfile gcc-g++-${RELEASE} ${CPLUSPLUS_DIRS}
+ maybe_build_tarfile gcc-fortran-${RELEASE} ${FORTRAN95_DIRS}
+ maybe_build_tarfile gcc-go-${RELEASE} ${GO_DIRS}
+ maybe_build_tarfile gcc-java-${RELEASE} ${JAVA_DIRS}
+ maybe_build_tarfile gcc-objc-${RELEASE} ${OBJECTIVEC_DIRS}
+ maybe_build_tarfile gcc-testsuite-${RELEASE} ${TESTSUITE_DIRS}
+
+ # The core is everything else.
+ EXCLUDES=""
+ for x in ${ADA_DIRS} ${CPLUSPLUS_DIRS} ${FORTRAN95_DIRS}\
+ ${GO_DIRS} ${JAVA_DIRS} ${OBJECTIVEC_DIRS} ${TESTSUITE_DIRS}; do
+ EXCLUDES="${EXCLUDES} --exclude $x"
+ done
+ build_tarfile gcc-core-${RELEASE} ${EXCLUDES} \
+ `basename ${SOURCE_DIRECTORY}`
+}
+
+# Build .gz files.
+build_gzip() {
+ for f in ${FILE_LIST}; do
+ target=${f%.bz2}.gz
+ (${BZIP2} -d -c $f | ${GZIP} > ${target}) || error "Could not create ${target}"
+ done
+}
+
+# Build diffs against an old release.
+build_diffs() {
+ old_dir=${1%/*}
+ old_file=${1##*/}
+ old_vers=${old_file%.tar.bz2}
+ old_vers=${old_vers#gcc-}
+ inform "Building diffs against version $old_vers"
+ for f in gcc gcc-ada gcc-g++ gcc-fortran gcc-go gcc-java gcc-objc gcc-testsuite gcc-core; do
+ old_tar=${old_dir}/${f}-${old_vers}.tar.bz2
+ new_tar=${WORKING_DIRECTORY}/${f}-${RELEASE}.tar.bz2
+ if [ ! -e $old_tar ]; then
+ inform "$old_tar not found; not generating diff file"
+ elif [ ! -e $new_tar ]; then
+ inform "$new_tar not found; not generating diff file"
+ else
+ build_diff $old_tar gcc-${old_vers} $new_tar gcc-${RELEASE} \
+ ${f}-${old_vers}-${RELEASE}.diff.bz2
+ fi
+ done
+}
+
+# Build an individual diff.
+build_diff() {
+ changedir "${WORKING_DIRECTORY}"
+ tmpdir=gccdiff.$$
+ mkdir $tmpdir || error "Could not create directory $tmpdir"
+ changedir $tmpdir
+ (${BZIP2} -d -c $1 | ${TAR} xf - ) || error "Could not unpack $1 for diffs"
+ (${BZIP2} -d -c $3 | ${TAR} xf - ) || error "Could not unpack $3 for diffs"
+ ${DIFF} $2 $4 > ../${5%.bz2}
+ if [ $? -eq 2 ]; then
+ error "Trouble making diffs from $1 to $3"
+ fi
+ ${BZIP2} ../${5%.bz2} || error "Could not generate ../$5"
+ changedir ..
+ rm -rf $tmpdir
+ FILE_LIST="${FILE_LIST} $5"
+}
+
+# Upload the files to the FTP server.
+upload_files() {
+ inform "Uploading files"
+
+ changedir "${WORKING_DIRECTORY}"
+
+ # Make sure the directory exists on the server.
+ if [ $LOCAL -eq 0 ]; then
+ ${SSH} -l ${GCC_USERNAME} ${GCC_HOSTNAME} \
+ mkdir -p "${FTP_PATH}/diffs"
+ UPLOAD_PATH="${GCC_USERNAME}@${GCC_HOSTNAME}:${FTP_PATH}"
+ else
+ mkdir -p "${FTP_PATH}/diffs" \
+ || error "Could not create \`${FTP_PATH}'"
+ UPLOAD_PATH=${FTP_PATH}
+ fi
+
+ # Then copy files to their respective (sub)directories.
+ for x in gcc*.gz gcc*.bz2; do
+ if [ -e ${x} ]; then
+ # Make sure the file will be readable on the server.
+ chmod a+r ${x}
+ # Copy it.
+ case ${x} in
+ *.diff.*)
+ SUBDIR="diffs/";
+ ;;
+ *)
+ SUBDIR="";
+ esac
+ ${SCP} ${x} ${UPLOAD_PATH}/${SUBDIR} \
+ || error "Could not upload ${x}"
+ fi
+ done
+}
+
+# Print description if snapshot exists.
+snapshot_print() {
+ if [ -e ${RELEASE}/$1 ]; then
+ hash=`openssl md5 ${RELEASE}/$1 | sed -e 's#(.*)##' -e 's# *= *#=#'`
+ hash2=`openssl sha1 ${RELEASE}/$1 | sed -e 's#(.*)##' -e 's# *= *#=#'`
+
+ printf " %-37s%s\n\n %s\n %s\n\n" "$1" "$2" "$hash" "$hash2" \
+ >> ${SNAPSHOT_README}
+
+ echo " <tr><td><a href=\"$1\">$1</a></td>" >> ${SNAPSHOT_INDEX}
+ echo " <td>$2</td></tr>" >> ${SNAPSHOT_INDEX}
+ fi
+}
+
+# Announce a snapshot, both on the web and via mail.
+announce_snapshot() {
+ inform "Updating links and READMEs on the FTP server"
+
+ TEXT_DATE=`date --date=$DATE +%B\ %d,\ %Y`
+ SNAPSHOT_README=${RELEASE}/README
+ SNAPSHOT_INDEX=${RELEASE}/index.html
+
+ changedir "${SNAPSHOTS_DIR}"
+ echo \
+"Snapshot gcc-"${RELEASE}" is now available on
+ ftp://gcc.gnu.org/pub/gcc/snapshots/"${RELEASE}"/
+and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.
+
+This snapshot has been generated from the GCC "${BRANCH}" SVN branch
+with the following options: "svn://gcc.gnu.org/svn/gcc/${SVNBRANCH} revision ${SVNREV}"
+
+You'll find:
+" > ${SNAPSHOT_README}
+
+ echo \
+"<html>
+
+<head>
+<title>GCC "${RELEASE}" Snapshot</title>
+</head>
+
+<body>
+<h1>GCC "${RELEASE}" Snapshot</h1>
+
+<p>The <a href =\"http://gcc.gnu.org/\">GCC Project</a> makes
+periodic snapshots of the GCC source tree available to the public
+for testing purposes.</p>
+
+<p>If you are planning to download and use one of our snapshots, then
+we highly recommend you join the GCC developers list. Details for
+how to sign up can be found on the GCC project home page.</p>
+
+<p>This snapshot has been generated from the GCC "${BRANCH}" SVN branch
+with the following options: <code>"svn://gcc.gnu.org/svn/gcc/${SVNBRANCH} revision ${SVNREV}"</code></p>
+
+<table>" > ${SNAPSHOT_INDEX}
+
+ snapshot_print gcc-${RELEASE}.tar.bz2 "Complete GCC (includes all of below)"
+ snapshot_print gcc-core-${RELEASE}.tar.bz2 "C front end and core compiler"
+ snapshot_print gcc-ada-${RELEASE}.tar.bz2 "Ada front end and runtime"
+ snapshot_print gcc-fortran-${RELEASE}.tar.bz2 "Fortran front end and runtime"
+ snapshot_print gcc-g++-${RELEASE}.tar.bz2 "C++ front end and runtime"
+ snapshot_print gcc-go-${RELEASE}.tar.bz2 "Go front end and runtime"
+ snapshot_print gcc-java-${RELEASE}.tar.bz2 "Java front end and runtime"
+ snapshot_print gcc-objc-${RELEASE}.tar.bz2 "Objective-C front end and runtime"
+ snapshot_print gcc-testsuite-${RELEASE}.tar.bz2 "The GCC testsuite"
+
+ echo \
+"Diffs from "${BRANCH}"-"${LAST_DATE}" are available in the diffs/ subdirectory.
+
+When a particular snapshot is ready for public consumption the LATEST-"${BRANCH}"
+link is updated and a message is sent to the gcc list. Please do not use
+a snapshot before it has been announced that way." >> ${SNAPSHOT_README}
+
+ echo \
+"</table>
+<p>Diffs from "${BRANCH}"-"${LAST_DATE}" are available in the
+<a href=\"diffs/\">diffs/ subdirectory</a>.</p>
+
+<p>When a particular snapshot is ready for public consumption the LATEST-"${BRANCH}"
+link is updated and a message is sent to the gcc list. Please do not use
+a snapshot before it has been announced that way.</p>
+
+<hr />
+
+<address>
+<a href=\"mailto:gcc@gcc.gnu.org\">gcc@gcc.gnu.org</a>
+<br />
+Last modified "${TEXT_DATE}"
+</address>
+</body>
+
+</html>" >> ${SNAPSHOT_INDEX}
+
+ rm -f LATEST-${BRANCH}
+ ln -s ${RELEASE} LATEST-${BRANCH}
+
+ inform "Sending mail"
+
+ export QMAILHOST=gcc.gnu.org
+ mail -s "gcc-${RELEASE} is now available" gcc@gcc.gnu.org < ${SNAPSHOT_README}
+}
+
+########################################################################
+# Initialization
+########################################################################
+
+LC_ALL=C
+export LC_ALL
+
+# Today's date.
+DATE=`date "+%Y%m%d"`
+LONG_DATE=`date "+%Y-%m-%d"`
+
+SVN=${SVN:-svn}
+# The CVS server containing the GCC repository.
+SVN_SERVER="gcc.gnu.org"
+# The path to the repository on that server.
+SVN_REPOSITORY="/svn/gcc"
+# The username to use when connecting to the server.
+SVN_USERNAME="${USER}"
+
+# The machine to which files will be uploaded.
+GCC_HOSTNAME="gcc.gnu.org"
+# The name of the account on the machine to which files are uploaded.
+GCC_USERNAME="gccadmin"
+# The directory in which the files will be placed (do not use ~user syntax).
+FTP_PATH=/var/ftp/pub/gcc
+# The directory in which snapshots will be placed.
+SNAPSHOTS_DIR=${FTP_PATH}/snapshots
+
+# The major number for the release. For release `3.0.2' this would be
+# `3'
+RELEASE_MAJOR=""
+# The minor number for the release. For release `3.0.2' this would be
+# `0'.
+RELEASE_MINOR=""
+# The revision number for the release. For release `3.0.2' this would
+# be `2'.
+RELEASE_REVISION=""
+# The complete name of the release.
+RELEASE=""
+
+# The name of the branch from which the release should be made, in a
+# user-friendly form.
+BRANCH=""
+
+# The name of the branch from which the release should be made, as used
+# for our version control system.
+SVNBRANCH=""
+
+# The tag to apply to the sources used for the release.
+TAG=""
+
+# The old tarballs from which to generate diffs.
+OLD_TARS=""
+
+# The directory that will be used to construct the release. The
+# release itself will be placed in a subdirectory of this directory.
+DESTINATION=${HOME}
+# The subdirectory.
+WORKING_DIRECTORY=""
+# The directory that will contain the GCC sources.
+SOURCE_DIRECTORY=""
+
+# The directories that should be part of the various language-specific
+# tar files. These are all relative to the top of the source tree.
+ADA_DIRS="gcc/ada libada gnattools"
+CPLUSPLUS_DIRS="gcc/cp libstdc++-v3"
+FORTRAN95_DIRS="gcc/fortran libgfortran"
+GO_DIRS="gcc/go libgo libffi"
+JAVA_DIRS="gcc/java libjava libffi boehm-gc"
+OBJECTIVEC_DIRS="gcc/objc gcc/objcp libobjc"
+TESTSUITE_DIRS="gcc/testsuite"
+
+# Non-zero if this is the final release, rather than a prerelease.
+FINAL=0
+
+# Non-zero if we are building a snapshot, and don't build gcc or
+# include generated files.
+SNAPSHOT=0
+
+# Non-zero if we are running locally on gcc.gnu.org, and use local CVS
+# and copy directly to the FTP directory.
+LOCAL=0
+
+# Major operation modes.
+MODE_GZIP=0
+MODE_DIFFS=0
+MODE_SOURCES=0
+MODE_TARFILES=0
+MODE_UPLOAD=0
+
+# List of archive files generated; used to create .gz files from .bz2.
+FILE_LIST=""
+
+# Programs we use.
+
+BZIP2="${BZIP2:-bzip2}"
+CVS="${CVS:-cvs -f -Q -z9}"
+DIFF="${DIFF:-diff -Nrcpad}"
+ENV="${ENV:-env}"
+GZIP="${GZIP:-gzip --best}"
+SCP="${SCP:-scp -p}"
+SSH="${SSH:-ssh}"
+TAR="${TAR:-tar}"
+
+########################################################################
+# Command Line Processing
+########################################################################
+
+# Parse the options.
+while getopts "d:fr:u:t:p:s:l" ARG; do
+ case $ARG in
+ d) DESTINATION="${OPTARG}";;
+ r) RELEASE="${OPTARG}";;
+ t) TAG="${OPTARG}";;
+ u) SVN_USERNAME="${OPTARG}";;
+ f) FINAL=1;;
+ s) SNAPSHOT=1
+ BRANCH=${OPTARG%:*}
+ SVNBRANCH=${OPTARG#*:}
+ ;;
+ l) LOCAL=1
+ SCP=cp
+ PATH=~:/usr/local/bin:$PATH;;
+ p) OLD_TARS="${OLD_TARS} ${OPTARG}"
+ if [ ! -f ${OPTARG} ]; then
+ error "-p argument must name a tarball"
+ fi;;
+ \?) usage;;
+ esac
+done
+shift `expr ${OPTIND} - 1`
+
+# Handle the major modes.
+while [ $# -ne 0 ]; do
+ case $1 in
+ diffs) MODE_DIFFS=1;;
+ gzip) MODE_GZIP=1;;
+ sources) MODE_SOURCES=1;;
+ tarfiles) MODE_TARFILES=1;;
+ upload) MODE_UPLOAD=1;;
+ all) MODE_SOURCES=1; MODE_TARFILES=1; MODE_DIFFS=1; MODE_UPLOAD=1;
+ if [ $SNAPSHOT -ne 1 ]; then
+ # Only for releases and pre-releases.
+ MODE_GZIP=1;
+ fi
+ ;;
+ *) error "Unknown mode $1";;
+ esac
+ shift
+done
+
+# Perform consistency checking.
+if [ ${LOCAL} -eq 0 ] && [ -z ${SVN_USERNAME} ]; then
+ error "No username specified"
+fi
+
+if [ ! -d ${DESTINATION} ]; then
+ error "\`${DESTINATION}' is not a directory"
+fi
+
+if [ $SNAPSHOT -eq 0 ]; then
+ if [ -z ${RELEASE} ]; then
+ error "No release number specified"
+ fi
+
+ # Compute the major and minor release numbers.
+ RELEASE_MAJOR=`echo $RELEASE | awk --assign FS=. '{ print $1; }'`
+ RELEASE_MINOR=`echo $RELEASE | awk --assign FS=. '{ print $2; }'`
+ RELEASE_REVISION=`echo $RELEASE | awk --assign FS=. '{ print $3; }'`
+
+ if [ -z "${RELEASE_MAJOR}" ] || [ -z "${RELEASE_MINOR}" ]; then
+ error "Release number \`${RELEASE}' is invalid"
+ fi
+
+ # Compute the full name of the release.
+ if [ -z "${RELEASE_REVISION}" ]; then
+ RELEASE="${RELEASE_MAJOR}.${RELEASE_MINOR}"
+ else
+ RELEASE="${RELEASE_MAJOR}.${RELEASE_MINOR}.${RELEASE_REVISION}"
+ fi
+
+ # Compute the name of the branch, which is based solely on the major
+ # and minor release numbers.
+ SVNBRANCH="branches/gcc-${RELEASE_MAJOR}_${RELEASE_MINOR}-branch"
+
+ # If this is not a final release, set various parameters accordingly.
+ if [ ${FINAL} -ne 1 ]; then
+ RELEASE="${RELEASE}-RC-${DATE}"
+ FTP_PATH="${SNAPSHOTS_DIR}/${RELEASE}"
+ else
+ FTP_PATH="${FTP_PATH}/releases/gcc-${RELEASE}/"
+ fi
+else
+ RELEASE=${BRANCH}-${DATE}
+ FTP_PATH="${FTP_PATH}/snapshots/${RELEASE}"
+
+ # If diffs are requested when building locally on gcc.gnu.org, we (usually)
+ # know what the last snapshot date was and take the corresponding tarballs,
+ # unless the user specified tarballs explicitly.
+ if [ $MODE_DIFFS -ne 0 ] && [ $LOCAL -ne 0 ] && [ -z "${OLD_TARS}" ]; then
+ LAST_DATE=`cat ~/.snapshot_date-${BRANCH}`
+ OLD_TARS=${SNAPSHOTS_DIR}/${BRANCH}-${LAST_DATE}/gcc-${BRANCH}-${LAST_DATE}.tar.bz2
+ fi
+fi
+
+# Compute the name of the WORKING_DIRECTORY and the SOURCE_DIRECTORY.
+WORKING_DIRECTORY="${DESTINATION}/gcc-${RELEASE}"
+SOURCE_DIRECTORY="${WORKING_DIRECTORY}/gcc-${RELEASE}"
+
+# Recompute the names of all the language-specific directories,
+# relative to the WORKING_DIRECTORY.
+ADA_DIRS=`adjust_dirs ${ADA_DIRS}`
+CPLUSPLUS_DIRS=`adjust_dirs ${CPLUSPLUS_DIRS}`
+FORTRAN95_DIRS=`adjust_dirs ${FORTRAN95_DIRS}`
+GO_DIRS=`adjust_dirs ${GO_DIRS}`
+JAVA_DIRS=`adjust_dirs ${JAVA_DIRS}`
+OBJECTIVEC_DIRS=`adjust_dirs ${OBJECTIVEC_DIRS}`
+TESTSUITE_DIRS=`adjust_dirs ${TESTSUITE_DIRS}`
+
+# Set up SVNROOT.
+if [ $LOCAL -eq 0 ]; then
+ SVNROOT="svn+ssh://${SVN_USERNAME}@${SVN_SERVER}${SVN_REPOSITORY}"
+else
+ SVNROOT="file:///svn/gcc"
+fi
+export SVNROOT
+
+########################################################################
+# Main Program
+########################################################################
+
+# Set the timezone to UTC
+TZ="UTC0"
+export TZ
+
+# Build the source directory.
+
+if [ $MODE_SOURCES -ne 0 ]; then
+ build_sources
+fi
+
+# Build the tar files.
+
+if [ $MODE_TARFILES -ne 0 ]; then
+ build_tarfiles
+fi
+
+# Build diffs
+
+if [ $MODE_DIFFS -ne 0 ]; then
+ # Possibly build diffs.
+ if [ -n "$OLD_TARS" ]; then
+ for old_tar in $OLD_TARS; do
+ build_diffs $old_tar
+ done
+ fi
+fi
+
+# Build gzip files
+if [ $MODE_GZIP -ne 0 ]; then
+ build_gzip
+fi
+
+# Upload them to the FTP server.
+if [ $MODE_UPLOAD -ne 0 ]; then
+ upload_files
+
+ # For snapshots, make some further updates.
+ if [ $SNAPSHOT -ne 0 ] && [ $LOCAL -ne 0 ]; then
+ announce_snapshot
+
+ # Update snapshot date file.
+ changedir ~
+ echo $DATE > .snapshot_date-${BRANCH}
+
+ # Remove working directory
+ rm -rf ${WORKING_DIRECTORY}
+ fi
+fi
diff --git a/maintainer-scripts/maintainer-addresses b/maintainer-scripts/maintainer-addresses
new file mode 100755
index 000000000..944b0c119
--- /dev/null
+++ b/maintainer-scripts/maintainer-addresses
@@ -0,0 +1,37 @@
+#! /usr/bin/perl -w -T
+#
+# Extract all maintainers' addresses from the GCC MAINTAINERS file, only
+# skipping those addresses specified in $OMIT.
+#
+# Copyright (c) 2003, 2009 Free Software Foundation.
+#
+# Written by Gerald Pfeifer <gerald@pfeifer.com>, June 2003/October 2003
+#
+# This file is part of GCC.
+#
+# GCC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3, or (at your option)
+# any later version.
+#
+# GCC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GCC; see the file COPYING3. If not see
+# <http://www.gnu.org/licenses/>.
+
+my $OMIT='rms@gnu.org|config-patches@gnu.org';
+
+( @ARGV == 1 && -e $ARGV[0] ) || die "usage: $0 MAINTAINERS";
+
+while( <> ) {
+ chomp;
+
+ if( /([\w\d.+-]+@[\w\d.-]+)/ ) {
+ my $addr=$1;
+ printf $addr."\n" if( not $addr =~ /$OMIT/ );
+ }
+}
diff --git a/maintainer-scripts/update_version_svn b/maintainer-scripts/update_version_svn
new file mode 100755
index 000000000..20fd2b194
--- /dev/null
+++ b/maintainer-scripts/update_version_svn
@@ -0,0 +1,85 @@
+#!/bin/sh
+#
+# Update the current version date in all files in the tree containing
+# it. Consider all release branches except those matching the regular
+# expression in $IGNORE_BRANCHES, and also consider those branches listed
+# in the space separated list in $ADD_BRANCHES.
+
+SVNROOT=${SVNROOT:-"file:///svn/gcc"}
+IGNORE_BRANCHES='gcc-(2_95|3_0|3_1|3_2|3_3|3_4|4_0|4_1|4_2)-branch'
+ADD_BRANCHES='HEAD'
+
+# Run this from /tmp.
+export SVNROOT
+/bin/rm -rf /tmp/$$
+/bin/mkdir /tmp/$$
+cd /tmp/$$
+
+SVN=${SVN:-/usr/bin/svn}
+
+# Compute the branches which we should update.
+BRANCHES=`$SVN ls $SVNROOT/branches \
+ | sed -e 's/\///' \
+ | egrep 'gcc-[0-9]+_[0-9]+-branch$' \
+ | egrep -v $IGNORE_BRANCHES`
+# Always update the mainline.
+BRANCHES="${BRANCHES} ${ADD_BRANCHES}"
+
+# This is put into the datestamp files.
+CURR_DATE=`/bin/date +"%Y%m%d"`
+
+datestamp_FILES="gcc/DATESTAMP"
+
+
+# Assume all will go well.
+RESULT=0
+for BRANCH in $BRANCHES; do
+ echo "Working on \"$BRANCH\"."
+ # Check out the files on the branch. HEAD is in a different namespace.
+ if test "$BRANCH" = HEAD; then
+ SVNROOT2=${SVNROOT}/trunk
+ else
+ SVNROOT2=${SVNROOT}/branches/${BRANCH}
+ fi
+
+ for i in $datestamp_FILES; do
+ ${SVN} -q co -N ${SVNROOT2}/`dirname $i` `basename $i`
+ done
+
+ # There are no files to commit yet.
+ COMMIT_FILES=""
+
+ for file in $datestamp_FILES; do
+ dirname=`basename $file`
+ file=`basename $file`
+ file="$dirname/$file"
+ if test -f $file; then
+ echo ${CURR_DATE} > $file.new
+
+ if /usr/bin/cmp -s $file $file.new; then
+ rm -f $file.new
+ else
+ mv -f $file.new $file
+ COMMIT_FILES="$COMMIT_FILES $file"
+ fi
+ fi
+ done
+
+ if test -n "$COMMIT_FILES"; then
+ for i in $COMMIT_FILES; do
+ echo "Attempting to commit $i"
+ if ! ${SVN} commit -m "Daily bump." $i; then
+ # If we could not commit the files, indicate failure.
+ RESULT=1
+ fi
+ done
+ fi
+
+ # Remove the files.
+ for i in $datestamp_FILES; do
+ rm -rf /tmp/$$/`basename $i`
+ done
+done
+
+/bin/rm -rf /tmp/$$
+exit $RESULT
diff --git a/maintainer-scripts/update_web_docs_libstdcxx_svn b/maintainer-scripts/update_web_docs_libstdcxx_svn
new file mode 100755
index 000000000..514243ddf
--- /dev/null
+++ b/maintainer-scripts/update_web_docs_libstdcxx_svn
@@ -0,0 +1,46 @@
+#!/bin/sh
+
+
+# "sh update_web_docs_libstdcxx.sh"
+# Checks out a copy of the libstdc++-v3 "inner" documentation and puts
+# it in the onlinedocs area. For an initial description of "inner"
+# docs, see the thread starting with
+# http://gcc.gnu.org/ml/libstdc++/2000-11/msg00475.html
+#
+# Id: update_v3_web_docs.sh,v 1.4 2000/12/25 05:02:14 pedwards Exp
+#####################################################################
+
+SVNROOT=${SVNROOT:-"file:///svn/gcc"}
+GETTHIS='libstdc++-v3/doc/html'
+WWWDIR=/www/gcc/htdocs/onlinedocs/libstdc++
+#WWWDIR=/tmp/fake-onlinedocs-testing
+
+
+## No more changes should be needed. Ha, right, whatever.
+#####################################################################
+
+
+PATH=/usr/local/bin:$PATH
+export SVNROOT
+
+test -d $WWWDIR || /bin/mkdir $WWWDIR
+test -d $WWWDIR || { echo something is very wrong ; exit 1; }
+
+WORKDIR=/tmp/v3-doc-update.$$
+/bin/rm -rf $WORKDIR
+/bin/mkdir $WORKDIR
+cd $WORKDIR
+
+
+# checkout all the HTML files, get down into an interesting directory
+svn -q export $SVNROOT/trunk/$GETTHIS doc
+cd doc
+rm -f Makefile
+
+# copy the tree to the onlinedocs area, preserve directory structure
+#find . -depth -print | cpio -pdv $WWWDIR
+find . -depth -print | cpio -pd $WWWDIR > /dev/null 2>&1
+
+cd /
+/bin/rm -rf $WORKDIR
+
diff --git a/maintainer-scripts/update_web_docs_svn b/maintainer-scripts/update_web_docs_svn
new file mode 100755
index 000000000..cfc33c42b
--- /dev/null
+++ b/maintainer-scripts/update_web_docs_svn
@@ -0,0 +1,225 @@
+#!/bin/sh
+
+# Generate HTML documentation from GCC Texinfo docs.
+# This version is for GCC 3.1 and later versions.
+
+set -e
+
+# Run this from /tmp.
+SVNROOT=${SVNROOT:-"file:///svn/gcc"}
+export SVNROOT
+
+PATH=/usr/local/bin:$PATH
+
+MANUALS="cpp
+ cppinternals
+ fastjar
+ gcc
+ gccgo
+ gccint
+ gcj
+ gfortran
+ gfc-internals
+ gnat_ug_unx
+ gnat_ug_vms
+ gnat_ug_vxw
+ gnat_ug_wnt
+ gnat_ugn_unw
+ gnat-style
+ gnat_rm
+ libgomp
+ libquadmath
+ libiberty
+ porting"
+
+WWWBASE=/www/gcc/htdocs
+WWWBASE_PREFORMATTED=/www/gcc/htdocs-preformatted
+WWWPREPROCESS='/www/gcc/bin/preprocess -r'
+
+# Process options -rrelease and -ddirectory
+RELEASE=""
+SUBDIR=""
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -r*)
+ if [ -n "$RELEASE" ]; then
+ echo "Multiple releases specified" >&2
+ exit 1
+ fi
+ RELEASE="${1#-r}"
+ if [ -z "$RELEASE" ]; then
+ shift
+ RELEASE="$1"
+ if [ -z "$RELEASE" ]; then
+ echo "No release specified with -r" >&2
+ exit 1
+ fi
+ fi
+ ;;
+ -d*)
+ if [ -n "$SUBDIR" ]; then
+ echo "Multiple subdirectories specified" >&2
+ exit 1
+ fi
+ SUBDIR="${1#-d}"
+ if [ -z "$SUBDIR" ]; then
+ shift
+ SUBDIR="$1"
+ if [ -z "$SUBDIR" ]; then
+ echo "No subdirectory specified with -d" >&2
+ exit 1
+ fi
+ fi
+ ;;
+ *)
+ echo "Unknown argument \"$1\"" >&2
+ exit 1
+ ;;
+ esac
+ shift
+done
+
+if [ -n "$RELEASE" ] && [ -z "$SUBDIR" ]; then
+ echo "Release specified without subdirectory" >&2
+ exit 1
+fi
+
+if [ -z "$SUBDIR" ]; then
+ DOCSDIR=$WWWBASE/onlinedocs
+else
+ DOCSDIR=$WWWBASE/onlinedocs/$SUBDIR
+fi
+
+if [ ! -d $DOCSDIR ]; then
+ mkdir $DOCSDIR
+ chmod g+w $DOCSDIR
+fi
+
+if [ -z "$RELEASE" ]; then
+ RELEASE=trunk
+fi
+
+WORKDIR=/tmp/gcc-doc-update.$$
+
+rm -rf $WORKDIR
+mkdir $WORKDIR
+cd $WORKDIR
+if [ "$RELEASE" = "trunk" ]; then
+ svn -q export $SVNROOT/$RELEASE gcc
+else
+ svn -q export $SVNROOT/tags/$RELEASE gcc
+fi
+
+# Remove all unwanted files. This is needed (a) to build the Ada
+# generator programs with the installed library, not the new one and
+# (b) to avoid packaging all the sources instead of only documentation
+# sources.
+find gcc -type f \( -name '*.texi' \
+ -o -path gcc/gcc/doc/install.texi2html \
+ -o -path gcc/gcc/doc/include/texinfo.tex \
+ -o -path gcc/gcc/ada/xgnatugn.adb \
+ -o -path gcc/gcc/ada/ug_words \
+ -o -path gcc/gcc/BASE-VER \
+ -o -path gcc/gcc/DEV-PHASE \
+ -o -print0 \) | xargs -0 rm -f
+
+# Build a tarball of the sources.
+tar cf docs-sources.tar gcc
+
+# The directory to pass to -I; this is the one with texinfo.tex
+# and fdl.texi.
+includedir=gcc/gcc/doc/include
+
+# Generate gnat_ugn_unw
+
+if [ -f gcc/gcc/ada/xgnatugn.adb ]; then
+ gnatmake -q gcc/gcc/ada/xgnatugn
+ ./xgnatugn unw gcc/gcc/ada/gnat_ugn.texi \
+ gcc/gcc/ada/ug_words gnat_ugn_unw.texi
+fi
+
+# Generate gcc-vers.texi.
+(
+ echo "@set version-GCC $(cat gcc/gcc/BASE-VER)"
+ if [ "$(cat gcc/gcc/DEV-PHASE)" = "experimental" ]; then
+ echo "@set DEVELOPMENT"
+ else
+ echo "@clear DEVELOPMENT"
+ fi
+ echo "@set srcdir $WORKDIR/gcc/gcc"
+ echo "@set VERSION_PACKAGE (GCC)"
+ echo "@set BUGURL @uref{http://gcc.gnu.org/bugs/}"
+) > $includedir/gcc-vers.texi
+
+# Generate libquadmath-vers.texi.
+echo "@set BUGURL @uref{http://gcc.gnu.org/bugs/}" \
+ > $includedir/libquadmath-vers.texi
+
+# Now convert the relevant files from texi to HTML, PDF and PostScript.
+for file in $MANUALS; do
+ filename=`find . -name ${file}.texi`
+ if [ "${filename}" ]; then
+ includes="-I ${includedir} -I `dirname ${filename}`"
+ if [ "$file" = "gnat_ugn_unw" ]; then
+ includes="$includes -I gcc/gcc/ada"
+ fi
+ makeinfo --html $includes -o ${file} ${filename}
+ tar cf ${file}-html.tar ${file}/*.html
+ texi2dvi $includes -o ${file}.dvi ${filename} </dev/null >/dev/null && dvips -o ${file}.ps ${file}.dvi
+ texi2pdf $includes -o ${file}.pdf ${filename} </dev/null
+ mkdir -p $DOCSDIR/$file
+ fi
+done
+
+# Then build a gzipped copy of each of the resulting .html, .ps and .tar files
+for file in */*.html *.ps *.pdf *.tar; do
+ cat $file | gzip --best > $file.gz
+done
+
+# On the 15th of the month, wipe all the old files from the
+# web server.
+today=`date +%d`
+if test $today = 15; then
+ find $DOCSDIR -type f -maxdepth 1 -print | grep -v index.html | xargs rm
+ for m in $MANUALS; do
+ rm -f $DOCSDIR/$m/*.html $DOCSDIR/$m/*.html.gz
+ done
+fi
+
+# And copy the resulting files to the web server
+for file in */*.html *.ps *.pdf *.tar; do
+ if [ -f $DOCSDIR/$file ]; then
+ cat $DOCSDIR/$file |
+ sed -e '/^<meta name=generator/d' \
+ -e '/^%DVIPSSource:/d' > file1
+ fi
+ cat $file |
+ sed -e '/^<meta name=generator/d' \
+ -e '/^%DVIPSSource:/d' > file2
+ if cmp -s file1 file2; then
+ :
+ else
+ cp $file $DOCSDIR/$file
+ cp $file.gz $DOCSDIR/$file.gz
+ fi
+done
+
+cd $DOCSDIR
+
+# Finally, generate the installation documentation
+if [ "$RELEASE" = "trunk" ]; then
+ SOURCEDIR=$WORKDIR/gcc/gcc/doc
+ DESTDIR=$WWWBASE_PREFORMATTED/install
+ export SOURCEDIR
+ export DESTDIR
+ $WORKDIR/gcc/gcc/doc/install.texi2html
+
+ # Preprocess the entire web site, not just the install docs!
+ echo "Invoking $WWWPREPROCESS"
+ $WWWPREPROCESS |grep -v '^ Warning: Keeping'
+fi
+
+# Clean up behind us.
+
+rm -rf $WORKDIR