download_f2c   [plain text]

# 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 <>, 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
# 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 ]
  mkdir $dir
cd $dir

echo Preparing $dir...

if [ ! -d tmp ]
  mkdir tmp

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

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.