.
D 2010-09-27T16:02:46
L KitCreator
P 34f0c1488d6fbe9d92ae9125457eafb0aa125f75
U rkeene
W 4129
<i>Tclkit Building Made Trivial</i>
<p>KitCreator is a simple build system for creating a <a href="http://www.equi4.com/tclkit/">Tclkit</a>. 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 <a href="http://www.equi4.com/tclkit/download.html">pre-existing Tclkit</a>. See also locally built pre-built <a href="http://rkeene.org/projects/info/wiki/Tclkits">Tclkits</a>.</p>
<p>A <a href="http://www.equi4.com/tclkit/">Tclkit</a> 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 <i>Starpack</i>, 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.</p>
<p>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.</p>
<p>Download:
<ul>
<li><a href="http://www.rkeene.org/devel/kitcreator-0.4.0.2408.tar.gz">KitCreator v0.4.0.2408</a> (<a href="http://www.rkeene.org/devel/kitcreator/kitbuild/0.4.0.2408/">Build Log</a>)</li>
</ul>
</p>
<hr>
<p>
<b>Some examples:</b>
<ol type="1">
<li>Create a Tclkit:
<ol type="a">
<li><tt>$ ./kitcreator</tt></li>
</ol>
</li>
<li>Create a Tclkit for Tcl 8.5.9:
<ol type="a">
<li><tt>$ ./kitcreator 8.5.9</tt></li>
</ol>
</li>
<li>Create a Tclkit for Tcl from CVS HEAD:
<ol type="a">
<li><tt>$ ./kitcreator cvs_HEAD</tt></li>
</ol>
</li>
<li>Compile a 64-bit Tclkit:
<ol type="a">
<li><tt>$ ./kitcreator --enable-64bit</tt></li>
</ol>
</li>
<li>Cross-compile a Tclkit:
<ol type="a">
<li>Bootstrap (optional, you can use an existing Tclkit):
<ol type="i">
<li><tt>$ ./kitcreator</tt></li>
<li><tt>$ mv tclkit-8.4.19 tclkit-local</tt></li>
<li><tt>$ TCLKIT="$(pwd)/tclkit-local"</tt></li>
<li><tt>$ export TCLKIT</tt></li>
</ol>
</li>
<li>Cross-compile:
<ol type="i">
<li><tt>$ CC=mipsel-linux-uclibc-gcc</tt></li>
<li><tt>$ CXX=false</tt></li>
<li><tt>$ AR=mipsel-linux-uclibc-ar</tt></li>
<li><tt>$ RANLIB=mipsel-linux-uclibc-ranlib</tt></li>
<li><tt>$ export CC CXX AR RANLIB</tt></li>
<li><tt>$ ./kitcreator --host=mipsel-linux-uclibc</tt></li>
</ol>
</li>
</ol>
</li>
<li>Compile a 64-bit Tclkit 8.5.8 using SunStudio 12.1 on Solaris/x86:
<ol type="a">
<li><tt>$ CC='/opt/sunstudio12.1/bin/cc -m64'</tt></li>
<li><tt>$ CXX='/opt/sunstudio12.1/bin/CC -m64'</tt></li>
<li><tt>$ PATCH='gpatch'</tt></li>
<li><tt>$ export CC CXX PATCH</tt></li>
<li><tt>$ ./kitcreator 8.5.8 --enable-64bit</tt></li>
</ol>
</li>
<li>To clean up post-build:
<ol type="a">
<li><tt>$ ./kitcreator clean</tt></li>
</ol>
</li>
<li>Create a Tclkit without Metakit4 support (falls back to Zip for storage):
<ol type="a">
<li><tt>$ KITCREATOR_PKGS='tk itcl'</tt></li>
<li><tt>$ export KITCREATOR_PKGS</tt></li>
<li><tt>$ ./kitcreator</tt></li>
</ol>
</li>
<li>Create a Tclkit with Metakit4 support, but using Zip for storage:
<ol type="a">
<li><tt>$ ./kitcreator --enable-kit-storage=zip</tt></li>
</ol>
</li>
</ol>
</p>
Z 60db30a7e3975483a6acffaffb1988ef