Artifact ID: | 5c53f1232785164ec918b56f1f8c7f032b4878eb |
---|---|
Page Name: | KitCreator |
Date: | 2010-09-27 16:02:46 |
Original User: | rkeene |
Parent: | 34f0c1488d6fbe9d92ae9125457eafb0aa125f75 (diff) |
Next | eb2821eaeaf08640c015ee5508ff17ab6c8be182 |
Tclkit Building Made Trivial
KitCreator is a simple build system for creating a Tclkit. It was created to ease creation of Tclkits. If you just want to use Tcl on your platform, it is recommended that you use a pre-existing Tclkit. See also locally built pre-built Tclkits.
A Tclkit is, briefly, a single-file executable that contains Tcl (both the interpreter, and all the resources it requires to operate) and other Tcl-related packages (Tk, Incr Tcl, etc). A tclkit can be used to create a Starpack, which is the Tclkit plus the resources required for your Tcl-based application in a single file. This makes application delivery easy and consistent as it will be a single file that the user runs to use the application. Additionally, since a Tclkit is generic, any Tclkit from any platform can be used as the base for a Starpack. That is, from GNU/Linux you can take the Tclkit for AIX and add your application to produce a native executable for AIX.
KitCreator can be used to cross-compile a Tclkit, however you may need to have a working Tclkit for your native system first. KitCreator can be used to create this local boot-strap Tclkit.
Download:
Some examples:
- Create a Tclkit:
- $ ./kitcreator
- Create a Tclkit for Tcl 8.5.9:
- $ ./kitcreator 8.5.9
- Create a Tclkit for Tcl from CVS HEAD:
- $ ./kitcreator cvs_HEAD
- Compile a 64-bit Tclkit:
- $ ./kitcreator --enable-64bit
- Cross-compile a Tclkit:
- Bootstrap (optional, you can use an existing Tclkit):
- $ ./kitcreator
- $ mv tclkit-8.4.19 tclkit-local
- $ TCLKIT="$(pwd)/tclkit-local"
- $ export TCLKIT
- Cross-compile:
- $ CC=mipsel-linux-uclibc-gcc
- $ CXX=false
- $ AR=mipsel-linux-uclibc-ar
- $ RANLIB=mipsel-linux-uclibc-ranlib
- $ export CC CXX AR RANLIB
- $ ./kitcreator --host=mipsel-linux-uclibc
- Bootstrap (optional, you can use an existing Tclkit):
- Compile a 64-bit Tclkit 8.5.8 using SunStudio 12.1 on Solaris/x86:
- $ CC='/opt/sunstudio12.1/bin/cc -m64'
- $ CXX='/opt/sunstudio12.1/bin/CC -m64'
- $ PATCH='gpatch'
- $ export CC CXX PATCH
- $ ./kitcreator 8.5.8 --enable-64bit
- To clean up post-build:
- $ ./kitcreator clean
- Create a Tclkit without Metakit4 support (falls back to Zip for storage):
- $ KITCREATOR_PKGS='tk itcl'
- $ export KITCREATOR_PKGS
- $ ./kitcreator
- Create a Tclkit with Metakit4 support, but using Zip for storage:
- $ ./kitcreator --enable-kit-storage=zip