Check-in [37850a79ad]
Overview
Comment:More fixes to make native Windows builds work.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | winFixes
Files: files | file ages | folders
SHA1: 37850a79ad789b0d6266d04d85c9d1f1d44b5d17
User & Date: mistachkin on 2013-10-31 02:43:32
Other Links: branch diff | manifest | tags
Context
2013-11-05
08:09
Update versions of the thread and zlib packages. check-in: 0f67789517 user: mistachkin tags: winFixes
2013-10-31
02:43
More fixes to make native Windows builds work. check-in: 37850a79ad user: mistachkin tags: winFixes
2013-10-20
03:11
Updated icon (courtesy of C. Shults) check-in: ef6ac5d932 user: rkeene tags: trunk
Changes

Modified README from [2bc0f41d6f] to [4484aed13d].

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
137
138
139
140
141
142
143


144
145
146
147
148
149
150







-
-







		packages from Tcl build.  This excludes the following packages:
			tcltest

		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.

--------------------

Modified kitcreator from [b1de5629ac] to [87e5c86889].

13
14
15
16
17
18
19




20
21
22
23
24
25
26
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30







+
+
+
+







TCLVERS="8.6.1"
if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | egrep '^(cvs|fossil)_' >/dev/null; then
	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
		echo "Please remember to run 'build/pre.sh' if you expect this build to work." >&2
	fi

Modified kitsh/build.sh from [d39ebd9770] to [644f3a91bd].

1
2
3
4
5
6
7
8
9
10
11
12





13
14
15
16
17
18
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24












+
+
+
+
+







#! /usr/bin/env bash

if [ ! -f 'build.sh' ]; then
	echo 'ERROR: This script must be run from the directory it is in' >&2

	exit 1
fi
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"
OTHERPKGSDIR="$(pwd)/../"
export KITSHVERS BUILDDIR OUTDIR INSTDIR OTHERPKGSDIR
201
202
203
204
205
206
207



208

209
210
211
212
213
214
215
206
207
208
209
210
211
212
213
214
215

216
217
218
219
220
221
222
223







+
+
+
-
+







		## Bootstrap (cannot cross-compile)
		### Call installer
		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

		TCL_LIBRARY="$(pwd)/starpack.vfs/lib/tcl${TCLVERS2}"
		export TCL_LIBRARY

		echo 'Running: echo | ./runkit'
		echo 'Running: echo | ./runkit setup.tcl'
		echo | ./runkit setup.tcl || exit 1
	fi

	# Cleanup
	if [ "${KITTARGET}" = "kitdll" ]; then
		## Remove built interpreters if we are building KitDLL --
		## they're just tiny stubs anyway

Modified kitsh/buildsrc/kitsh-0.0/installvfs.tcl from [5bb6ad9ccb] to [ea792ed6a5].

9
10
11
12
13
14
15





16
17
18
19
20
21
22
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27







+
+
+
+
+







}

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

if {[string match "*KIT_STORAGE_ZIP*" $data]} {

Deleted tcl/patchscripts/minbuild-nooo.sh version [5b6fd738e8].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75











































































-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
#! /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