#!/bin/sh
#
# download_f2c
#
# Unpacks a directory full of f2c stuff obtained from netlib, naming
# the directory f2c-YYYYMMDD (YYYYMMDD being the current date),
# leaving it in current working directory.
#
# This shell script downloads the tarball from netlib, unpacks everything,
# and strips off the redundant files, leaving a bare-bones (but fully
# reproducible) f2c source directory.  (You must have yacc/bison to rebuild
# gram.c, by the way.)
#
# (C) 1999 Free Software Foundation
# Originally by James Craig Burley <craig@jcb-sc.com>, September 1999.
#
# 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
#
# FIXME: Replace WHOAMI with whatever is the canonical way to
# obtain the user's email address these days.

dir=f2c-`date +%Y%m%d`
if [ ! -d $dir ]
then
  mkdir $dir
fi
cd $dir

echo Preparing $dir...

if [ ! -d tmp ]
then
  mkdir tmp
fi

if [ ! -f tmp/f2c.tar ]
then
  cd tmp
  echo Downloading f2c.tar via ftp...
  ftp -n netlib.bell-labs.com <<EOF
  user ftp WHOAMI
  type binary
  cd netlib
  get f2c.tar
  quit
EOF
  cd ..
fi

echo Unpacking f2c.tar...

tar xf tmp/f2c.tar
cd f2c
find . -name "*.gz" -print | sed -e "s:^\(.*\).gz:rm -f \1.Z:g" | sh
mv src libf77.gz libi77.gz f2c.1t.gz f2c.h.gz changes.gz disclaimer.gz readme.gz permission.gz ..
cd ..
rm -fr f2c
gunzip *.gz
(cd src; rm -f MD5 MD5.gz gram.c.gz .depend .depend.gz f2c.1.gz index.html index.html.gz; gunzip *.gz)
sh libf77 > /dev/null && rm libf77
rm -f libF77/xsum0.out libF77/libF77.xsum
sh libi77 > /dev/null && rm libi77
rm -f libI77/xsum0.out libI77/libI77.xsum
rm -f src/xsum0.out
touch src/xsum.out
cmp f2c.h src/f2c.h && rm -fv src/f2c.h
cmp src/readme src/README && rm -fv src/readme

echo Deleting f2c.tar...
rm tmp/f2c.tar
rmdir tmp

cd ..

echo Latest f2c now in $dir.
