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
		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.

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







<
<







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



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
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





# 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







>
>
>
>







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






KITSHVERS="0.0"
BUILDDIR="$(pwd)/build/kitsh-${KITSHVERS}"
OUTDIR="$(pwd)/out"
INSTDIR="$(pwd)/inst"
OTHERPKGSDIR="$(pwd)/../"
export KITSHVERS BUILDDIR OUTDIR INSTDIR OTHERPKGSDIR












>
>
>
>
>







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




		echo 'Running: echo | ./runkit'
		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







>
>
>
|







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 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
}

set kitfile [lindex $argv 0]
set vfsdir [lindex $argv 1]
if {[lindex $argv 2] != ""} {
	set opt_compression [lindex $argv 2]
}






# 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]} {







>
>
>
>
>







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
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<