@@ -1,9 +1,9 @@ #! /bin/bash TCLVERS="8.4.19" -if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | grep '^cvs_' >/dev/null; then +if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | egrep '^(cvs|fossil)_' >/dev/null; then TCLVERS="$1" shift fi export TCLVERS @@ -20,14 +20,16 @@ mode="distclean" fi # Define the list of all packages, for cleaning purposes -KITCREATOR_ALLPKGS="kitsh tcl tclvfs zlib tk itcl mk4tcl thread kitdll" +KITCREATOR_ALLPKGS="kitsh tcl tclvfs zlib tk itcl mk4tcl thread" for pkg in ${KITCREATOR_ALLPKGS}; do rm -f "${pkg}/build.log" rm -rf "${pkg}/out" "${pkg}/inst" "${pkg}/build" + + rm -rf "${pkg}/src"/tmp-* if [ "${mode}" = "distclean" ]; then rm -rf "${pkg}/src" fi done @@ -60,10 +62,15 @@ ## If building KitDLL, define it as our target if echo " ${KITCREATOR_PKGS} " | grep ' kitdll ' >/dev/null 2>/dev/null; then KITCREATOR_PKGS="$(echo " ${KITCREATOR_PKGS} " | sed 's@ kitdll @ @g;s@^ *@@;s@ *$@@;s@ *@ @g')" KITTARGET="kitdll" fi + +# If the user manually requested "--enable-kitdll", make it so +if echo "x $@ " | grep ' [-][-]enable-kitdll ' >/dev/null 2>/dev/null; then + KITTARGET="kitdll" +fi ## If building KitDLL and Tk, must do Tk statically ### (Well, we don't HAVE to, but it would defeat much of the purpose) if [ "${KITTARGET}" = "kitdll" ]; then if echo " ${KITCREATOR_PKGS} " | grep ' tk ' >/dev/null 2>/dev/null; then @@ -83,13 +90,40 @@ export STATICMK4 fi fi fi +# Find Windows resource-related files +if [ -f "kit.ico" ]; then + KITCREATOR_ICON="$(pwd)/kit.ico" +else + KITCREATOR_ICON="$(echo "$(pwd)/kitsh/buildsrc"/kitsh-*/kit.ico)" +fi +if [ -f "kit.rc" ]; then + KITCREATOR_RC="$(pwd)/kit.rc" +else + KITCREATOR_RC="$(echo "$(pwd)/kitsh/buildsrc"/kitsh-*/kit.rc)" +fi +export KITCREATOR_ICON KITCREATOR_RC + +# Determine how we invoke a Tcl interpreter +if [ -z "${TCLSH_NATIVE}" ]; then + TCLSH_NATIVE="false" +fi +for testsh in "${TCLSH_NATIVE}" tclsh tclsh8.4 tclsh8.5 tclsh8.6 "${TCLKIT:-tclkit}"; do + if echo 'exit 0' | "${testsh}" >/dev/null 2>/dev/null; then + TCLSH_NATIVE="${testsh}" + + break + fi +done +export TCLSH_NATIVE + +# Do build failedpkgs="" buildfailed="0" -for pkg in tcl tclvfs zlib ${KITCREATOR_PKGS} "${KITTARGET}"; do +for pkg in tcl tclvfs zlib ${KITCREATOR_PKGS} kitsh; do echo -n "Building ${pkg} ..." failed="0" ( cd "${pkg}" >/dev/null 2>/dev/null || exit 1 @@ -122,9 +156,9 @@ if [ "${buildfailed}" != "0" ]; then echo 'WARNING: Build is likely incomplete or failed.' >&2 fi -cp 'kitdll/build'/kitdll-*/libtclkit* . >/dev/null 2>/dev/null +cp 'kitsh/build'/kitsh-*/libtclkit* . >/dev/null 2>/dev/null cp 'kitsh/build'/kitsh-*/kit "tclkit-${TCLVERS}" >/dev/null 2>/dev/null exit "${buildfailed}"