Update of "KitCreator"

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.


Some examples:

  1. Create a Tclkit:
    1. $ ./kitcreator
  2. Create a Tclkit for Tcl 8.5.9:
    1. $ ./kitcreator 8.5.9
  3. Create a Tclkit for Tcl from CVS HEAD:
    1. $ ./kitcreator cvs_HEAD
  4. Compile a 64-bit Tclkit:
    1. $ ./kitcreator --enable-64bit
  5. Cross-compile a Tclkit:
    1. Bootstrap (optional, you can use an existing Tclkit):
      1. $ ./kitcreator
      2. $ mv tclkit-8.4.19 tclkit-local
      3. $ TCLKIT="$(pwd)/tclkit-local"
      4. $ export TCLKIT
    2. Cross-compile:
      1. $ CC=mipsel-linux-uclibc-gcc
      2. $ CXX=false
      3. $ AR=mipsel-linux-uclibc-ar
      4. $ RANLIB=mipsel-linux-uclibc-ranlib
      5. $ export CC CXX AR RANLIB
      6. $ ./kitcreator --host=mipsel-linux-uclibc
  6. Compile a 64-bit Tclkit 8.5.8 using SunStudio 12.1 on Solaris/x86:
    1. $ CC='/opt/sunstudio12.1/bin/cc -m64'
    2. $ CXX='/opt/sunstudio12.1/bin/CC -m64'
    3. $ PATCH='gpatch'
    4. $ export CC CXX PATCH
    5. $ ./kitcreator 8.5.8 --enable-64bit
  7. To clean up post-build:
    1. $ ./kitcreator clean
  8. Create a Tclkit without Metakit4 support (falls back to Zip for storage):
    1. $ KITCREATOR_PKGS='tk itcl'
    2. $ export KITCREATOR_PKGS
    3. $ ./kitcreator
  9. Create a Tclkit with Metakit4 support, but using Zip for storage:
    1. $ ./kitcreator --enable-kit-storage=zip