#! /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, 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.

website=http://gcc.gnu.org/
files="
    gcc-4.2/index.html gcc-4.2/changes.html
    gcc-4.1/index.html gcc-4.1/changes.html
    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
