#! /bin/sh
#
# Script to generate the NEWS file from online release notes.
# Contributed by Joseph Myers <jsm28@cam.ac.uk>.
#
# Copyright (C) 2000-2017 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 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 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-7/index.html gcc-7/changes.html
    gcc-6/index.html gcc-6/changes.html
    gcc-5/index.html gcc-5/changes.html
    gcc-4.9/index.html gcc-4.9/changes.html
    gcc-4.8/index.html gcc-4.8/changes.html
    gcc-4.7/index.html gcc-4.7/changes.html
    gcc-4.6/index.html gcc-4.6/changes.html
    gcc-4.5/index.html gcc-4.5/changes.html
    gcc-4.4/index.html gcc-4.4/changes.html
    gcc-4.3/index.html gcc-4.3/changes.html
    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/index.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
