The system can generate Tclkit Lite executables, Tcl packages, starkits and starpacks for different operating systems. Tested are Linux, SunOS, Windows and Irix. Tclkit Lite: http://www.equi4.com/tclkit/tclkitlite.html
Current version uses tcl/tk 8.5.6 and tcl/tk 8.6b1
For additional information please use the following links:
available from http://sourceforge.net/projects/kbskit
bwidget-1.8.0 gridplus-2.3 icons-1.2 Img1.3 itcl3.4 itk3.4 iwidgets4.0.2 Memchan2.2.1 mentry-3.2 ral0.8.8 sqlite3.6.7 tablelist-4.10 tcllib1.11 tclx8.4 tdom0.8.2 thread2.6.5 tkcon tklib0.4 Tktable2.9 treectrl2.2.3 trofs0.4.4 udp1.0.8 wcb-3.1 xotcl1.6.2
./kbs.tcl -r install kbskit-8.5 ./kbs.tcl -r install tksqlite ./kbs.tcl -r -builddir=b86 install kbskit-8.6
./kbs.tcl -r install kbspkg-8.5
./kbs.tcl gui
./kbs.tcl doc
./kbs.tcl
Kitgen Build System (0.2.6 Revision: 1.13 ) kbs.tcl ?options? mode ?args? options: -pkgfile=?file? contain used Package definitions (default is 'sources/kbskit-8.5/kbskit.kbs') -builddir=?dir? build directory, used with [Builddir] (default is './build$tcl_platform(os)') -CC=?command? set configuration variable _(CC) (default is 'gcc' or existing environment variable 'CC') -i -ignore ignore errors and proceed (default is disabled) -r -recursive recursive Require packages (default is disabled) -v -verbose display running commands and command output --enable-symbols --disable-symbols set configuration variable _(SYMBOLS) --enable-64bit --disable-64bit set configuration variable _(64BIT) --enable-threads --disable-threads set configuration variable _(THREADS) --enable-aqua --disable-aqua set configuration variable _(AQUA) mode: help this text version return current version doc create documentation gui start graphical user interface list ?pattern? list packages matching pattern (default is *) require package .. return call trace of packages sources package .. get package source files (under sources/) configure package .. create [Makedir] (in [Builddir]) and configure package make package .. make package (in [Makedir]) install package .. install package (in [Builddir]) test package .. test package clean package .. remove make targets distclean package .. remove [Makedir] package is used for glob style matching against available packages (Beware, you need to hide the special meaning of * like foo\*) The following configuration variables can be used: _(64BIT) = --disable-64bit _(AQUA) = --enable-aqua _(CC) = gcc _(DIR) = unix _(SHARED) = --enable-shared _(STATIC) = --disable-shared _(SYMBOLS) = --disable-symbols _(THREADS) = --enable-threads _(TZDATA) = --with-tzdata
The following external programs are needed:
To build under Windows you need the msys system and put the kbs-sources inside the msys tree (/home/..).
msys: http://sourceforge.net/project/showfiles.php?group_id=10894
This work is under BSD license (see file 'license.terms')
The Tclkit-specific sources are license free; they just have a copyright. Hold the author(s) harmless and any lawful use is permitted.
This does *not* apply to any of the sources of the other major Open Source Software used in Tclkit, which each have very liberal BSD/MIT-like licenses:
The extensions used each have their own licenses. Please see their sources.
This work is based on the Kitgen system (http://www.equi4.com/tclkit/kitgen.html ) and ideas and code about a kitgen build system by Jean-Claude Wippler.
With thanks to John Ousterhout for creating Tcl/Tk, Matt Newman and Vince Darley for developing the virtual file system, and the members of the Tcl Core Team for diligently maintaining and taking forward the Tcl/Tk code base plus extensions.
LV 2007 June 22
In my resultSunOS/bin directory, I see the following:
tclkit8.5-cli tclkit8.5-dyn tclkit8.5-gui
So, what are the differences between these three "tclkit"s ...
RZ This is because of kitgen and its sources from jcw and according to [L1 ]
I even tried a minimal tclkitsh but did not really finish the kbs.tcl build process code to do that.
LV "and, are they literally tclkits - that is, have the identical packages as the executables found at the tclkit home site, or are they interpretors that are similar to tclkits?"
LV 2007 July 09
$ tclkit8.5 # mine is Tcl 8.5a4 % package require Tcl 8.5 % package require lwv % puts [lsort -nocase [package names]] http Itcl Mk4tcl mk4vfs msgcat opt platform pwb rechan scripdoc starkit Tcl tcltest Tk vfs vfs::mk4 vfs::zip vfslib zipvfs zlib $ kbskit % package require Tcl 8.5 % package require lwv % puts [lsort -nocase [package names]] http mk4vfs mklite msgcat opt platform rechan starkit Tcl tcl::tommath tcltest Thread Tk Ttrace vfs vfs::m2m vfs::mk4 vfs::mkcl vfs::zip vfslib vlerq zlib
So, to the "are they literally tclkits" question. the answer is no. Here's the differences I see:
Tclkit 8.5 Tclkit-lite 8.4.15 Kbskit 8.5 dde dde (on Windows) (I don't know) http http http Itcl Itcl N/A Mk4tcl N/A N/A mk4vfs mk4vfs mk4vfs mklite msgcat msgcat msgcat opt opt opt platform platform pwb pwb N/A rechan rechan registry registry (on Windows) (I don't know) scripdoc N/A starkit starkit starkit Tcl Tcl Tcl tcl::tommath tcltest tcltest tcltest Thread (I don't know) thrill (on Windows) (I don't know) (I don't know) thrive (on Windows) (I don't know) Tk Tk Tk Ttrace vfs vfs vfs vfs::m2m vfs::mk4 vfs::mk4 vfs::mk4 (I don't know) vfs::mkcl vfs::mkcl vfs::zip vfs::zip vfs::zip vfslib vfslib vfslib vlerq zipvfs zipvfs N/A zlib zlib zlib
Notice that one of the ramifications of this is that Itcl , Mk4tcl, pwb, scripdoc, and zipvfs are not available in the interpreter created.
Per the tclkit creator's wishes, please use a different name, such as kbskit, so as not to confuse applications.
RZ Ok, the executables now start with "kbskit" and the package kit file with "kbspkg".
LV I have a question for you. When I run kbs.tcl -r install kbskit-8.5, the resulting kbskit-gui that is created knows about the following package names:
I'm not certain how the "kbspkg" relates to this kbskit.
RZ 'kbskit*' are the executable tclkit's. The packages inside are necessary for the tclkit interpreter. 'kbspkg85.kit' is a kit file containing other extensions. It can be sourced by the 'kbskit*' interpreter.
MSH 19 Feb 2008 I have been keeping an eye on the http://www.equi4.com/pub/tk/downloads.html page for a final 8.5.0 or 8.5.1 starkit executable but no one seems to be maintaining that page anymore. Is the kitgen the only way to go now as I do not have access to a compiler so that makes things very difficult. If anyone has 8.5.1 starkit executables for windows/linux/sun anywhere accessible I would be grateful.
See http://www.patthoyts.tk/tclkit.html
LV Feb 29, 2008
Is there a way to build kbskit so that it includes Itcl? When I look at what packages come in tclkit, that is the major piece missing (also missing are Mk4tcl - but that's gone because this is a tclkit-lite, right? RZ yes, and it is the reason we do not need a C++ compiler any more), pwb, scripdoc (and I think that one is just a backwards compatibility with old code), and zipvfs (anyone know what that one is?).
RZ Before adding Itcl I would ask if it is also OK to put itcl/itk/iwidgets in kbspkg*.kit? Until now I have added the necessary build entries in the HEAD version of kbspkg.kbs. You could build everything with:
rm -rf sources/kbskit-8.5 kbs.tcl -r install iwidgets\*
LV I would see no problem putting itk and iwidgets in kbspkg. But the point of putting itcl in kbskit is to run existing starkits. To move itcl into kbspkg would mean that the starkit would have to be modified ...