#! /bin/sh

# Typical usage:
#    mkdir /tmp/graphics
#    ./mkdistrib `pwd`/.. /tmp/graphics
#    # check it looks ok
#    rm -rf /tmp/graphics

SRCDIR=$1
DSTDIR=$2
VERSION="2.0.3"

TMP=/tmp
GDIR=graphics-$VERSION
TMPROOT=$TMP/$GDIR
TMPDOCS=$TMPROOT/doc
TMPDEMO=$TMPROOT/demos
TMPSOE=$TMPROOT/demos/SOE
TMPSOEBITS=$TMPROOT/demos/SOE/book
TMPLIB=$TMPROOT/lib
TMPXLIB=$TMPLIB/x11
TMPWINLIB=$TMPLIB/win32
TMPTEST=$TMPROOT/test

if (test "!" -d "$SRCDIR") then
  echo "Bogus srcdir $SRCDIR";
  exit 1;
fi

if (test "!" -d "$DSTDIR") then
  echo "Bogus dstdir $DSTDIR";
  exit 1;
fi

# No longer needed: we include StdDIS in the CVS tree (bad, bad, bad!)
# if (test "!" -r "$HOME/local/greencard-2.0/lib/hugs/StdDIS.gc") then
#   echo "Can't find StdDIS in $HOME/local/greencard-2.0/lib/hugs/StdDIS.gc";
#   exit 1;
# fi

if (test "!" -r "$HOME/Win32.zip") then
  echo "Can't find $HOME/Win32.zip";
  exit 1;
fi

echo "Building release in $DSTDIR from $SRCDIR"

################################################################
# Building the distribution source tree
################################################################

echo "Building distribution source tree in $TMPROOT"

rm -rf $TMPROOT
mkdir  $TMPROOT
mkdir  $TMPLIB
mkdir  $TMPXLIB
mkdir  $TMPWINLIB
mkdir  $TMPTEST
mkdir  $TMPDEMO
mkdir  $TMPSOE
mkdir  $TMPSOEBITS
mkdir  $TMPDOCS

echo "Populating distribution source tree"

sed $SRCDIR/License > $TMPROOT/License -e "s/@VERSION@/$VERSION/g"
sed $SRCDIR/Readme  > $TMPROOT/Readme  -e "s/@VERSION@/$VERSION/g"
sed $SRCDIR/Install > $TMPROOT/Install -e "s/@VERSION@/$VERSION/g"
echo $VERSION       > $TMPROOT/Version
echo                > $TMPROOT/Version-$VERSION

cp $SRCDIR/doc/*.tex                  $TMPDOCS
cp $SRCDIR/doc/*.bib                  $TMPDOCS

make -C $SRCDIR/lib/x11 StdDIS.c X.c Xlib.c
cp $SRCDIR/lib/x11/Makefile            $TMPXLIB
cp $SRCDIR/lib/x11/*.gc                $TMPXLIB
cp $SRCDIR/lib/x11/*.h                 $TMPXLIB
cp $SRCDIR/lib/x11/*.c                 $TMPXLIB
cp $SRCDIR/lib/x11/*.hs                $TMPXLIB

cp $SRCDIR/lib/win32/*.hs              $TMPWINLIB

cp $SRCDIR/test/Tests.hs               $TMPTEST

cp $SRCDIR/demos/*.hs                  $TMPDEMO
cp $SRCDIR/demos/SOE/README            $TMPSOE
cp $SRCDIR/demos/SOE/*.lhs             $TMPSOE
cp $SRCDIR/demos/SOE/book/*.lhs        $TMPSOEBITS

(cd $SRCDIR/doc; latex Graphics > /dev/null; bibtex Graphics; latex Graphics > /dev/null; latex Graphics > /dev/null)
cp $SRCDIR/doc/Graphics.dvi           $TMPDOCS

################################################################
# Building the web pages and download directory
################################################################

echo "Building web pages"
(cd $DSTDIR; runhugs -P$HOME/local/htmllib: $SRCDIR/distrib/Webpage.hs)

echo "Building fresh download directory"
rm -rf $DSTDIR/downloads
mkdir  $DSTDIR/downloads

cp $TMPROOT/License $DSTDIR/downloads/License.txt
cp $TMPROOT/Readme  $DSTDIR/downloads/Readme.txt
cp $TMPROOT/Install $DSTDIR/downloads/Install.txt
cp $TMPROOT/Version $DSTDIR/downloads/Version.txt
cp $TMPROOT/Version-$VERSION $DSTDIR/downloads/Version-$VERSION.txt

cp    $TMPDOCS/Graphics.dvi $DSTDIR/downloads/graphics-$VERSION.dvi
dvips $DSTDIR/downloads/graphics-$VERSION.dvi -o $DSTDIR/downloads/graphics-$VERSION.ps
gzip  -c $DSTDIR/downloads/graphics-$VERSION.ps >> $DSTDIR/downloads/graphics-$VERSION.ps.gz

echo "Building tar file"
(cd $TMP; tar zcf $DSTDIR/downloads/graphics-$VERSION.src.tar.gz $GDIR)
echo "Building zip file"
(cd $TMP; zip -rq9 $DSTDIR/downloads/graphics-$VERSION.src.zip $GDIR)

cp $HOME/Win32.zip $DSTDIR/downloads

# tar zcvf $DSTDIR/downloads/graphics-$VERSION.bin.linux.tar.gz ??
# tar zcvf $DSTDIR/downloads/graphics-$VERSION.bin.freebsd.tar.gz ??

(cd $DSTDIR/downloads; ln -s graphics-$VERSION.src.tar.gz graphics-current.bin.src.tar.gz)
(cd $DSTDIR/downloads; ln -s graphics-$VERSION.src.zip graphics-current.bin.src.zip)

echo "Contents of $TMPROOT"
ls -sRF --color $TMPROOT

echo "Contents of $DSTDIR"
ls -sRF --color $DSTDIR

################################################################
# End
################################################################
