Introduction

3-Oct-2014: added Windows tclkit 8.6.2 files and note about upx problems on recent Windows 7 x64 versions.

20-Mar-2011: updated to follow the fossil repository sources

9-Sep-2010: tcl 8.5.9 released - new tclkits available

TclKit is a single-file executable that provides a complete Tcl and Tk runtime and can execute both normal tcl scripts or script archive files known as starkits.

Kitgen build system

I have moved from the previous tclkit build system (genkit) to kitgen. This makes use of vlerq-based vqtcl instead of metakit. I've added a NMAKE compatible set of makefiles to this system and can use this to build ix86 or amd64 binaries from the CVS HEAD checkouts.

A word about file naming: the kitgen build system produces three types of file, tclkit-cli, tclkit-gui and tclkit-dyn. For windows the -dyn which contains a dynamically loadable version of Tk is not much use so I only produce -cli (command-line interface, aka tclkitsh) and -gui which is the fully gui version. Some of the 8.4 binaries are built with the genkit system and don't include -cli or -gui, but instead are named tclkit or tclkitsh (for the command-line version).

If you want to use kitgen yourself you can checkout the code from github or from my git repository. Read the Makefile and config.sh files to get started. The build instructions should work ok.

Continuous Integration Tclkit Builds

I use Jenkins to automate builds of the current development versions of Tcl and Tk into Tclkit binaries on Linux 64bit and on Windows. The Jenkins page for each build has links the the build artifacts which may be downloaded for testing.

The Linux build uses a clean checkout of kitgen, tcl and tk from the github repositories (fossil has no Jenkins support so we use git mirrors) and configures the build makefile using config.sh current/linux-x86_64 thread mk cli dyn.

The Windows build uses Microsoft Visual C++ 6.0 and nmake to make use of the Makefile.vc included with kitgen.

Building and linking to stardll or basekit dlls

I've written up how to link dynamically to a stardll (that is a tclkit as a shared library) which might be very useful for applications that embed tcl. See building basekits with kitgen.

Windows AuthentiCode signed starkits

I've been doing some testing of creating signed tclkit and starpack binaries for Vista using the Windows AuthentiCode signing. The 8.5 tclkits released here use a patched version of vqtcl that supports signed binaries. The signing process appends a certificate to the end of the binary which interferes with the metakit/vqtcl reader which expects to find a metakit tail. The patch checks for the presence of a certificate section in the Windows PE header data and adjusts the metakit data region as required. So far this has not been ported back to metakit itself hence this is only available for vqtcl-based tclkits (ie: those built using kitgen).

As I'm too poor to buy a code-signing certificate from Verisign or some other recognised certificate-authority so I made a CA certificate for myself and issued a signing certificate from this authority. This means that if you want to test out verification of my signatures you need to import the CA certificate into the local machine trusted CA store. If you intend to do this for real you will have to buy a real AuthentiCode certificate.

Files

All files have detached GPG signatures. You can get my GPG key or lookup pat thoyts in the keyservers (key id is 39F7028B7D9CCE79).

 

 
Valid XHTML 1.0! Valid CSS! Viewable with any browser