Index: README ================================================================== --- README +++ README @@ -139,12 +139,10 @@ Additionally, any bundled packages (in the "pkgs" directory) are excluded. This typically includes (as of Tcl 8.6): itcl thread - Also, TclOO is removed from Tcl 8.6 forcefully. - Kitsh Configure Options: 1. --enable-kit-storage={zip|mk4|auto} Specify which type of storage to use with the Tclkit. The default is to auto-detect. Auto-detection uses Mk4 if available and built statically, otherwise it falls back to Zip. Index: kitcreator ================================================================== --- kitcreator +++ kitcreator @@ -15,10 +15,14 @@ TCLVERS="$1" shift fi export TCLVERS + +# Determine the two part Tcl version +TCLVERS2=$(echo ${TCLVERS} | cut -d. -f1,2) +export TCLVERS2 # Verify that "pre.sh" has been run if this is a development snapshot of # KitCreator if [ -f 'build/pre.sh' ]; then if ! find 'kitsh/buildsrc/' -name configure -type f 2>/dev/null | grep configure >/dev/null; then Index: kitsh/build.sh ================================================================== --- kitsh/build.sh +++ kitsh/build.sh @@ -8,10 +8,15 @@ if [ -z "${TCLVERS}" ]; then echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi +if [ -z "${TCLVERS2}" ]; then + echo 'ERROR: The TCLVERS2 environment variable is not set' >&2 + + exit 1 +fi KITSHVERS="0.0" BUILDDIR="$(pwd)/build/kitsh-${KITSHVERS}" OUTDIR="$(pwd)/out" INSTDIR="$(pwd)/inst" @@ -203,11 +208,14 @@ cp kit runkit echo "set argv [list {${KITTARGET_NAME}} starpack.vfs {${ENABLECOMPRESSION}}]" > setup.tcl echo 'if {[catch { clock seconds }]} { proc clock args { return 0 } }' >> setup.tcl echo 'source installvfs.tcl' >> setup.tcl - echo 'Running: echo | ./runkit' + TCL_LIBRARY="$(pwd)/starpack.vfs/lib/tcl${TCLVERS2}" + export TCL_LIBRARY + + echo 'Running: echo | ./runkit setup.tcl' echo | ./runkit setup.tcl || exit 1 fi # Cleanup if [ "${KITTARGET}" = "kitdll" ]; then Index: kitsh/buildsrc/kitsh-0.0/installvfs.tcl ================================================================== --- kitsh/buildsrc/kitsh-0.0/installvfs.tcl +++ kitsh/buildsrc/kitsh-0.0/installvfs.tcl @@ -11,10 +11,15 @@ set kitfile [lindex $argv 0] set vfsdir [lindex $argv 1] if {[lindex $argv 2] != ""} { set opt_compression [lindex $argv 2] } + +# On Windows, use the ".exe" file extension +if {$tcl_platform(platform) eq "windows"} { + set kitfile [file rootname $kitfile].exe +} # Determine what storage mechanism is being used set fd [open Makefile.common r] set data [read $fd] close $fd DELETED tcl/patchscripts/minbuild-nooo.sh Index: tcl/patchscripts/minbuild-nooo.sh ================================================================== --- tcl/patchscripts/minbuild-nooo.sh +++ /dev/null @@ -1,75 +0,0 @@ -#! /usr/bin/env bash - -# Only apply to minimal builds -if [ -z "${KITCREATOR_MINBUILD}" ]; then - exit 0 -fi - -# Only apply if the Tcl being built actually includes OO as part of Tcl -if [ ! -f 'generic/tclOO.c' ]; then - exit 0 -fi - -# Apply OO-removing patch -patch -p1 << _EOF_ ---- tclcvs_HEAD/generic/tclBasic.c 2012-09-07 16:01:14.000000000 -0500 -+++ tclcvs_HEAD-OOremoved/generic/tclBasic.c 2012-09-09 13:44:06.618912251 -0500 -@@ -820,8 +820,6 @@ - * Create unsupported commands for debugging bytecode and objects. - */ - -- Tcl_CreateObjCommand(interp, "::tcl::unsupported::disassemble", -- Tcl_DisassembleObjCmd, NULL, NULL); - Tcl_CreateObjCommand(interp, "::tcl::unsupported::representation", - Tcl_RepresentationCmd, NULL, NULL); - ---- tclcvs_HEAD/generic/tclProc.c 2012-09-07 16:01:14.000000000 -0500 -+++ tclcvs_HEAD-OOremoved/generic/tclProc.c 2012-09-09 13:45:16.634913713 -0500 -@@ -2857,6 +2857,7 @@ - *---------------------------------------------------------------------- - */ - -+#if 0 - int - Tcl_DisassembleObjCmd( - ClientData dummy, /* Not used. */ -@@ -3072,6 +3073,7 @@ - Tcl_SetObjResult(interp, TclDisassembleByteCodeObj(codeObjPtr)); - return TCL_OK; - } -+#endif - - /* - * Local Variables: ---- tclcvs_HEAD/generic/tclVar.c 2012-09-07 16:01:14.000000000 -0500 -+++ tclcvs_HEAD-OOremoved/generic/tclVar.c 2012-09-09 13:34:22.138912414 -0500 -@@ -6360,6 +6360,7 @@ - return; - } - -+#if 0 - if (iPtr->varFramePtr->isProcCallFrame & FRAME_IS_METHOD) { - CallContext *contextPtr = iPtr->varFramePtr->clientData; - Method *mPtr = contextPtr->callPtr->chain[contextPtr->index].mPtr; -@@ -6382,6 +6383,7 @@ - } - } - } -+#endif - Tcl_DeleteHashTable(&addedTable); - } - -_EOF_ - -# Further remove OO -cd generic - -# Remove calls to TclOOInit() -sed 's@TclOOInit(interp)@TCL_OK@' tclBasic.c > tclBasic.c.new -cat tclBasic.c.new > tclBasic.c -rm -f tclBasic.c.new - -# Rmove all TclOO* related compilation units, to be sure to catch all removals -for file in tclOO*.[ch]; do - > "${file}" -done Index: thread/build.sh ================================================================== --- thread/build.sh +++ thread/build.sh @@ -9,11 +9,11 @@ echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi -THREADVERS="2.6.5" +THREADVERS="2.7.0" SRC="src/thread-${THREADVERS}.tar.gz" SRCURL="http://sourceforge.net/projects/tcl/files/Thread%20Extension/${THREADVERS}/thread${THREADVERS}.tar.gz/download" BUILDDIR="$(pwd)/build/thread${THREADVERS}" OUTDIR="$(pwd)/out" INSTDIR="$(pwd)/inst" Index: zlib/build.sh ================================================================== --- zlib/build.sh +++ zlib/build.sh @@ -9,17 +9,19 @@ echo 'ERROR: The TCLVERS environment variable is not set' >&2 exit 1 fi -ZLIBVERS="1.2.3" +ZLIBVERS="1.2.8" SRC="src/zlib-${ZLIBVERS}.tar.gz" SRCURL="http://sourceforge.net/projects/libpng/files/zlib/${ZLIBVERS}/zlib-${ZLIBVERS}.tar.gz/download" BUILDDIR="$(pwd)/build/zlib-${ZLIBVERS}" OUTDIR="$(pwd)/out" INSTDIR="$(pwd)/inst" -export ZLIBVERS SRC SRCURL BUILDDIR OUTDIR INSTDIR +PATCHSCRIPTDIR="$(pwd)/patchscripts" +PATCHDIR="$(pwd)/patches" +export ZLIBVERS SRC SRCURL BUILDDIR OUTDIR INSTDIR PATCHSCRIPTDIR PATCHDIR # Set configure options for this sub-project LDFLAGS="${KC_ZLIB_LDFLAGS}" CFLAGS="${KC_ZLIB_CFLAGS}" CPPFLAGS="${KC_ZLIB_CPPFLAGS}" @@ -47,13 +49,32 @@ else cp -rp ../buildsrc/* './' fi cd "${BUILDDIR}" || exit 1 - # ZLIB Expects AR to contain options - AR="${AR:-ar} rcu" - export AR + + # Apply patches if needed + for patch in "${PATCHDIR}/all"/zlib-${ZLIBVERS}-*.diff "${PATCHDIR}/all"/zlib-all-*.diff "${PATCHDIR}/${ZLIBVERS}"/zlib-${ZLIBVERS}-*.diff; do + if [ ! -f "${patch}" ]; then + continue + fi + + echo "Applying: ${patch}" + ${PATCH:-patch} -p1 < "${patch}" + done + + + # Apply patch scripts if needed + for patchscript in "${PATCHSCRIPTDIR}"/*.sh; do + if [ -f "${patchscript}" ]; then + echo "Running patch script: ${patchscript}" + + ( + . "${patchscript}" + ) + fi + done # If we are building for KitDLL, compile with '-fPIC' if [ "${KITTARGET}" = "kitdll" ]; then CFLAGS="${CFLAGS} -fPIC" export CFLAGS @@ -62,16 +83,16 @@ # We don't pass CONFIGUREEXTRA here, since this isn't a GNU autoconf # script and will puke echo "Running: ./configure --prefix=\"${INSTDIR}\" --libdir=\"${INSTDIR}/lib\"" ./configure --prefix="${INSTDIR}" --libdir="${INSTDIR}/lib" - echo "Running: ${MAKE:-make} AR=\"${AR}\"" - ${MAKE:-make} AR="${AR}" || exit 1 + echo "Running: ${MAKE:-make}" + ${MAKE:-make} || exit 1 - echo "Running: ${MAKE:-make} install AR=\"${AR}\"" - ${MAKE:-make} install AR="${AR}" + echo "Running: ${MAKE:-make} install" + ${MAKE:-make} install # We don't really care too much about failure in zlib exit 0 ) || exit 1 exit 0 ADDED zlib/patches/1.2.8/zlib-1.2.8-enable-configure.diff Index: zlib/patches/1.2.8/zlib-1.2.8-enable-configure.diff ================================================================== --- /dev/null +++ zlib/patches/1.2.8/zlib-1.2.8-enable-configure.diff @@ -0,0 +1,14 @@ +diff -uNr zlib-1.2.8.orig/configure zlib-1.2.8/configure +--- zlib-1.2.8.orig/configure 2013-03-23 22:30:09 -0700 ++++ zlib-1.2.8/configure 2013-11-05 00:33:39 -0800 +@@ -191,10 +191,6 @@ + CYGWIN* | Cygwin* | cygwin* | OS/2*) + EXE='.exe' ;; + MINGW* | mingw*) +-# temporary bypass +- rm -f $test.[co] $test $test$shared_ext +- echo "Please use win32/Makefile.gcc instead." | tee -a configure.log +- leave 1 + LDSHARED=${LDSHARED-"$cc -shared"} + LDSHAREDLIBC="" + EXE='.exe' ;;