Overview
Comment: | Allow building a TclKit on Win32 using MinGW against Tcl/Tk 8.6.1. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: | a063fafd1f01e5002c6c2bad9ef613a504be8825 |
User & Date: | mistachkin on 2013-09-25 03:12:38 |
Other Links: | manifest | tags |
Context
2013-09-25
| ||
04:30 | Removed dead code check-in: 4816a85fc1 user: rkeene tags: trunk | |
03:12 | Allow building a TclKit on Win32 using MinGW against Tcl/Tk 8.6.1. check-in: a063fafd1f user: mistachkin tags: trunk | |
2013-09-24
| ||
22:18 | Fix Win32 portability issue in the VFS installation script regarding the 'null' device name. Closed-Leaf check-in: ad6d2d103e user: mistachkin tags: tcl-8.6.1-MinGW-Win32 | |
2013-09-22
| ||
14:43 | Corrected issue with performing checks using wrong compiler check-in: 6874e769d6 user: rkeene tags: trunk | |
Changes
Modified README from [43ef200174] to [2bc0f41d6f].
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
..
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
--------------- Usage: kitcreator [{build | retry | clean | distclean}] [{<version> | cvs_<tag> | fossil_<tag>}] [<configure_option> ...] Where: version is a Tcl version number (e.g., 8.5.14) tag is a CVS or fossil release tag (e.g., HEAD) configure_option option to pass to subordinate configure scripts (e.g., --enable-64bit) Default is to create a Tclkit from Tcl version 8.5.14 Examples: 1. Create a Tclkit: a. $ ./kitcreator 2. Create a Tclkit for Tcl 8.5.8: a. $ ./kitcreator 8.5.8 3. Create a Tclkit for Tcl from CVS HEAD: a. $ ./kitcreator cvs_HEAD 4. Compile a 64-bit Tclkit: a. $ ./kitcreator --enable-64bit ................................................................................ v. $ export CC CXX AR RANLIB vi. $ ./kitcreator --host=mipsel-linux-uclibc Note: When cross-compiling, the Tcl configure script may be unable to determine which serial support method to use. If you want serial support in a cross-compiled tclkit, specify it manually, e.g.: $ ./kitcreator CFLAGS=-DUSE_TERMIOS=1 -host=mipsel-linux-uclibc 6. Compile a 64-bit Tclkit 8.5.8 using SunStudio 12.1 on Solaris/x86: a. $ CC='/opt/sunstudio12.1/bin/cc -m64' b. $ CXX='/opt/sunstudio12.1/bin/CC -m64' c. $ PATCH='gpatch' c. $ export CC CXX PATCH d. $ ./kitcreator 8.5.8 --enable-64bit 7. To clean up post-build: a. $ ./kitcreator clean 8. Create a Tclkit without Metakit4 support (falls back to Zip for storage): a. KITCREATOR_PKGS='tk itcl' b. export KITCREATOR_PKGS |
|
|
|
|
|
|
|
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
..
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
--------------- Usage: kitcreator [{build | retry | clean | distclean}] [{<version> | cvs_<tag> | fossil_<tag>}] [<configure_option> ...] Where: version is a Tcl version number (e.g., 8.6.1) tag is a CVS or fossil release tag (e.g., HEAD) configure_option option to pass to subordinate configure scripts (e.g., --enable-64bit) Default is to create a Tclkit from Tcl version 8.6.1 Examples: 1. Create a Tclkit: a. $ ./kitcreator 2. Create a Tclkit for Tcl 8.5.15: a. $ ./kitcreator 8.5.15 3. Create a Tclkit for Tcl from CVS HEAD: a. $ ./kitcreator cvs_HEAD 4. Compile a 64-bit Tclkit: a. $ ./kitcreator --enable-64bit ................................................................................ v. $ export CC CXX AR RANLIB vi. $ ./kitcreator --host=mipsel-linux-uclibc Note: When cross-compiling, the Tcl configure script may be unable to determine which serial support method to use. If you want serial support in a cross-compiled tclkit, specify it manually, e.g.: $ ./kitcreator CFLAGS=-DUSE_TERMIOS=1 -host=mipsel-linux-uclibc 6. Compile a 64-bit Tclkit 8.5.15 using SunStudio 12.1 on Solaris/x86: a. $ CC='/opt/sunstudio12.1/bin/cc -m64' b. $ CXX='/opt/sunstudio12.1/bin/CC -m64' c. $ PATCH='gpatch' c. $ export CC CXX PATCH d. $ ./kitcreator 8.5.15 --enable-64bit 7. To clean up post-build: a. $ ./kitcreator clean 8. Create a Tclkit without Metakit4 support (falls back to Zip for storage): a. KITCREATOR_PKGS='tk itcl' b. export KITCREATOR_PKGS |
Modified build/test/test from [7efabc4a20] to [b14ccbc368].
1 2 3 4 5 6 7 8 9 10 |
#! /bin/bash VERSIONS="8.5.14 8.6.0 cvs_HEAD" # Find the base directory for x in 1 2 3 4 __fail__; do if [ "${x}" = "__fail__" ]; then echo 'Unable to find KitCreator, aborting.' >&2 exit 1 |
| |
1 2 3 4 5 6 7 8 9 10 |
#! /bin/bash VERSIONS="8.5.15 8.6.1 cvs_HEAD" # Find the base directory for x in 1 2 3 4 __fail__; do if [ "${x}" = "__fail__" ]; then echo 'Unable to find KitCreator, aborting.' >&2 exit 1 |
Modified kitcreator from [f33d7d8aef] to [e99d7e9821].
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
clean|distclean|build|retry)
mode="$1"
shift
;;
esac
# Determine which Tcl version to build
TCLVERS="8.5.14"
if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | egrep '^(cvs|fossil)_' >/dev/null; then
TCLVERS="$1"
shift
fi
export TCLVERS
|
| |
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
clean|distclean|build|retry)
mode="$1"
shift
;;
esac
# Determine which Tcl version to build
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
|
Modified kitsh/buildsrc/kitsh-0.0/installvfs.tcl from [b17724e7c3] to [5bb6ad9ccb].
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
vfs::unmount /kit
}
"zip" {
set kitfd [open $kitfile a+]
fconfigure $kitfd -translation binary
cd $vfsdir
set zipfd [open "|zip -r - [glob *] 2> /dev/null"]
fconfigure $zipfd -translation binary
fcopy $zipfd $kitfd
close $kitfd
if {[catch {
close $zipfd
|
> > > > > | |
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 |
vfs::unmount /kit } "zip" { set kitfd [open $kitfile a+] fconfigure $kitfd -translation binary cd $vfsdir if {$tcl_platform(platform) eq "windows"} { set null NUL } else { set null /dev/null } set zipfd [open "|zip -r - [glob *] 2> $null"] fconfigure $zipfd -translation binary fcopy $zipfd $kitfd close $kitfd if {[catch { close $zipfd |
Added tcl/patches/all/tcl-all-fix-stat64-bug2233954-mingw.diff version [7ba98178f8].
> > > > > > > > > > > > |
1 2 3 4 5 6 7 8 9 10 11 12 |
diff -uNr Tcl_Source_Code-e7b4aca82756056a/generic/tcl.h Tcl_Source_Code-e7b4aca82756056a-bug2233954/generic/tcl.h --- Tcl_Source_Code-e7b4aca82756056a/generic/tcl.h 2012-02-11 07:44:35.000000000 -0800 +++ Tcl_Source_Code-e7b4aca82756056a-bug2233954/generic/tcl.h 2012-02-14 07:29:01.000000000 -0800 @@ -454,6 +454,8 @@ typedef struct __stat64 Tcl_StatBuf; # elif (defined(_MSC_VER) && (_MSC_VER < 1400)) || defined(_USE_32BIT_TIME_T) typedef struct _stati64 Tcl_StatBuf; +# elif defined(__MINGW32_VERSION) + typedef struct _stati64 Tcl_StatBuf; # else typedef struct _stat32i64 Tcl_StatBuf; # endif /* _MSC_VER < 1400 */ |
Modified tcl/patches/all/tcl-all-fix-stat64-bug2233954-newer.diff from [9340be2758] to [1be8821eac].
1 2 3 4 5 6 7 8 9 10 11 12 13 |
diff -uNr tclfossil_trunk.orig//generic/tcl.h tclfossil_trunk-1rsk//generic/tcl.h --- tclfossil_trunk.orig//generic/tcl.h 2012-05-04 16:11:58.000000000 -0500 +++ tclfossil_trunk-1rsk//generic/tcl.h 2012-05-06 17:33:17.487466336 -0500 @@ -475,6 +475,9 @@ /* Here is a 4-byte gap */ } Tcl_StatBuf; #elif defined(HAVE_STRUCT_STAT64) +# ifdef HAVE_SYS_STAT_H +# include <sys/stat.h> +# endif typedef struct stat64 Tcl_StatBuf; #else typedef struct stat Tcl_StatBuf; |
| |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
diff -uNr tclfossil_trunk.orig//generic/tcl.h tclfossil_trunk-1rsk//generic/tcl.h
--- tclfossil_trunk.orig//generic/tcl.h 2012-05-04 16:11:58.000000000 -0500
+++ tclfossil_trunk-1rsk//generic/tcl.h 2012-05-06 17:33:17.487466336 -0500
@@ -475,6 +475,9 @@
/* Here is a 4-byte gap */
} Tcl_StatBuf;
#elif defined(HAVE_STRUCT_STAT64) && !defined(__APPLE__)
+# ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+# endif
typedef struct stat64 Tcl_StatBuf;
#else
typedef struct stat Tcl_StatBuf;
|