#! /bin/bash
TCLVERS="8.4.19"
export TCLVERS
mode="build"
if [ "$1" = "clean" ]; then
shift
mode="clean"
fi
if [ "$1" = "distclean" ]; then
shift
mode="distclean"
fi
CONFIGUREEXTRA="$@"
export CONFIGUREEXTRA
failedpkgs=""
buildfailed="0"
for pkg in tcl tk itcl mk4tcl tclvfs kitsh; do
if [ "${mode}" = "distclean" ]; then
rm -rf "${pkg}/src"
fi
if [ "${mode}" = "clean" -o "${mode}" = "distclean" ]; then
rm -f "${pkg}/build.log"
rm -rf "${pkg}/out" "${pkg}/inst" "${pkg}/build"
continue
fi
failed="0"
(
cd "${pkg}" || exit 1
./build.sh > build.log 2>&1 || exit 1
) || failed="1"
if [ "${failed}" = "1" ]; then
failedpkgs="${failedpkgs} ${pkg}"
fi
case "${pkg}" in
tcl)
TCLCONFIGDIR=$(find "$(pwd)/tcl/build" -name tclConfig.sh | head -1 | sed 's@/[^/]*$@@')
export TCLCONFIGDIR
;;
esac
if [ "${failed}" = "1" ]; then
buildfailed="1"
fi
done
if [ "${mode}" = "clean" -o "${mode}" = "distclean" ]; then
rm -f tclkit-*
exit 0
fi
if [ -n "${failedpkgs}" ]; then
echo "Failed to build:${failedpkgs}"
fi
if [ "${buildfailed}" != "0" ]; then
echo 'WARNING: Build is likely incomplete or failed.' >&2
fi
cp 'kitsh/build'/kitsh-*/kit "tclkit-${TCLVERS}"
exit "${buildfailed}"