Given a couple of recent posts I thought I should describe how I have
setup my build tree to build tclkits for windows and solaris 10 using
kitgen. At the present time it requires a little manual setup as the
automatic stuff is out-of-date but it is possible to create a tree
containing CVS or SVN checkouts of the various necessary projects and
then to build either tclkit-lite's or 'heavy' (mk4tcl+incr-tcl)
tclkits. I build on windows using both msvc6 and msvc8 ( the latter
for building for 64bit windows).
So get kitgen:
svn checkout svn://
svn.equi4.com/kitgen/trunk kitgen
Make some subdirs for the tcl versions you want to build for and to
contain the tcl-version independent packages
mkdir 8.4 8.5 8.x
Note that you dont _have_ to call it 8.5. For instance I'm working
with a patched tree from Miguel and its in a subdirectory called NRE
which helps to isolate it from the normal Tcl builds.
In each version folder you want to checkout tcl and tk.
cd 8.4
cvs -d:pserver:anon...@tcl.cvs.sourceforge.net:/cvsroot/tcl co -r
core-8-4-branch tcl
cvs -d:pserver:anon...@tktoolkit.cvs.sourceforge.net:/cvsroot/
tktoolkit co -r core-8-4-branch tk
cd ../8.5
cvs -d:pserver:anon...@tcl.cvs.sourceforge.net:/cvsroot/tcl co tcl
cvs -d:pserver:anon...@tktoolkit.cvs.sourceforge.net:/cvsroot/
tktoolkit co tk
In the version independent folder you want to get versions of tclvfs,
thread, zlib and vqtcl. If you want to build old-style tclkits as well
you need mk4tcl and incr-tcl. Some of these can be obtained as tar.gz
files from
http://www.equi4.com/pub/tk/tars/ but I prefer to use cvs
checkouts
cd 8.5
mkdir thread tclvfs zlib vqtcl itcl mk
cvs -d:pserver:anon...@tcl.cvs.sourceforge.net:/cvsroot/tcl co
thread
cvs -d:pserver:anon...@tclvfs.cvs.sourceforge.net:/cvsroot/tclvfs
co tclvfs
cvs -d:pserver:anon...@incrtcl.cvs.sourceforge.net:/cvsroot/incrtcl
co -d itcl incrTcl/itcl
svn co svn://
svn.equi4.com/metakit/trunk mk
svn co svn://
svn.equi4.com/vlerq/branches/v4/tcl vqtcl
(for zlib get the tar.gz from equi4 and unpack in 8.x/zlib)
Much of this is just as described in the README file in the kitgen
sources but some of the repository locations may well have changed.
Now you are ready to build. On unix or Windows with gcc and msys you
can use the config.sh script to build a makefile with the right
settings. For instance to build an 8.5 tclkit use
sh config.sh 8.5/kit-medium thread cli gui
This will create a 8.5/kit-medium/Makefile for you and you can then
change to that directory and do the build by typing 'make'. Note that
the subdirectory name is not special in any way. It could just as
easily be 8.5/my-tclkit. The important part is that it will look for
tcl and tk in the parent directory and all the other packages in ../../
8.x/* All the build output will end up in a 'build' subdirectory that
you can delete once you have the tclkit executables.
To build using MSVC and nmake instead
mkdir 8.5\win32-ix86
echo !include ..\..\Makefile.vc > 8.5\win32-ix86\Makefile
You can then build tclkits using
cd 8.5\win32-ix86
nmake VERSION=85
(or 8.4\win32-ix86 and nmake VERSION=84)
This is known to be ok with msvc6 and msvc8
At the moment you may have to twiddle the versions files\tk8.* to
match the version you are building. This is something I want to fix so
that the pkgIndex created matches the Tk version compiled in without
manual intervention.
Pat Thoyts