#! /bin/sh
#
# Script to generate the NEWS file from online release notes.
# Contributed by Joseph Myers <jsm28@cam.ac.uk>.
#
# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
# 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 2, 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 COPYING.  If not, write to
# the Free Software Foundation, 59 Temple Place - Suite 330,
# Boston, MA 02111-1307, USA.

website=http://gcc.gnu.org/
files="gcc-4.0/index.html gcc-4.0/changes.html
    gcc-3.4/index.html gcc-3.4/changes.html
    gcc-3.3/index.html gcc-3.3/changes.html
    gcc-3.2/index.html gcc-3.2/changes.html
    gcc-3.1/index.html gcc-3.1/changes.html
    gcc-3.0/gcc-3.0.html gcc-3.0/features.html gcc-3.0/caveats.html
    gcc-2.95/index.html gcc-2.95/features.html gcc-2.95/caveats.html
    egcs-1.1/index.html egcs-1.1/features.html egcs-1.1/caveats.html
    egcs-1.0/index.html egcs-1.0/features.html egcs-1.0/caveats.html"

set -e

cat <<EOF
This file contains information about GCC releases which has been generated
automatically from the online release notes.  It covers releases of GCC
(and the former EGCS project) since EGCS 1.0, on the line of development
that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
see ONEWS.

EOF

header="======================================================================"

echo $header

for file in $files; do
    wfile=$website$file
    echo $wfile
    # We lie to Lynx about the kind of terminal in use because we
    # want to get consistent output everywhere, and we want this
    # script to work even when it is not run interactively.
    env TERM=vt100 lynx -dump $wfile
    echo $header
done
