#!/bin/bash
TCLV=8.5.14
TCLSH=tclsh8.5
TCLLIB=1.15
INSTALLDIR=/opt/local/libexec/macports

#
# External programs:
#   curl
#   make
#   mkdir (supporting mkdir -p)
#   rm
#   shasum
#   tar (supporting zxvf)


clean=0
while [ x"$1" != x ]; do
    case $1 in
	clean) clean=1
	    shift
	    continue;;
	*)  echo "argument '$1' ignored"
	    shift
	    continue;;
    esac
done


mkdir -p ${INSTALLDIR}
cd ${INSTALLDIR}

TGZFILE=tcl${TCLV}-src.tar.gz
if [ $clean == "1" ]; then 
    rm -rf ${TGZFILE} tcl${TCLV} 
    # We assume that INSTALLDIR/{include,bin,lib,share} was just installed by this script
    rm -rf ${INSTALLDIR}/include ${INSTALLDIR}/bin ${INSTALLDIR}/lib ${INSTALLDIR}/share
else 
    #
    # 1) Fetch Tcl sources from sourceforge
    # 2) Unpack the tar file
    # 3) configure, build, install Tcl as private copy of MacPorts
    #    under /opt/local/share/macports
    #
    if [ ! -f ${TGZFILE} ]; then 
	curl -L -o ${TGZFILE} http://sourceforge.net/projects/tcl/files/Tcl/${TCLV}/tcl${TCLV}-src.tar.gz/download

	if [ "$(shasum ${TGZFILE})" == "9bc452eec453c2ed37625874b9011563db687b07  ${TGZFILE}"  ]; then
	    echo "Checksum $(shasum ${TGZFILE}) OK"
	else
	    echo "$(shasum ${TGZFILE}) NOT OK"
	    exit -1
	fi
    fi

    if [ ! -d tcl${TCLV} ]; then 
	tar zxvf ${TGZFILE}
    fi

    if [ ! -x bin/${TCLSH} ]; then 
	cd tcl${TCLV}/unix
	./configure --prefix=${INSTALLDIR} --enable-threads
	make
	make install
	cd ${INSTALLDIR}
    fi
fi


TGZFILE=tcllib-${TCLLIB}.tar.gz
if [ $clean == "1" ]; then 
    rm -rf ${TGZFILE} tcllib-${TCLLIB}
else 

    #
    # Fetch Tcllib, which can make several things in macports easier,
    # e.g. using the 8.6 compatible "try" package
    #
    if [ ! -f tcllib-${TCLLIB}.tar.gz ]; then 
	curl -L -o ${TGZFILE} http://sourceforge.net/projects/tcllib/files/tcllib/${TCLLIB}/tcllib-${TCLLIB}.tar.gz/download

	if [ "$(shasum ${TGZFILE})" == "ae1866e6ce982a2989e53adc636f6745465b8cfa  ${TGZFILE}"  ]; then
	    echo "Checksum $(shasum ${TGZFILE}) OK"
	else
	    echo "$(shasum ${TGZFILE}) NOT OK"
	    exit -1
	fi
    fi

    if [ ! -d tcllib-${TCLLIB} ]; then 
	tar zxvf ${TGZFILE}
	cd tcllib-${TCLLIB}
	./configure --prefix=${INSTALLDIR}
	make install
	cd ${INSTALLDIR}
    fi

    echo ""
    echo "Installed Tcl $TCLV and tcllib-${TCLLIB} in ${INSTALLDIR}"
    echo "tclsh is ${INSTALLDIR}/bin/${TCLSH}"
    echo "You might want to use this shell in /opt/local/bin/port"
    echo "(change in the script /usr/bin/tclsh to ${INSTALLDIR}/bin/${TCLSH})"
    echo ""
fi



