4 Mar 03:16
Setting up to build tclkits using kitgen.
From: pat.thoyts <at> gmail.com <patthoyts <at> googlemail.com>
Subject: Setting up to build tclkits using kitgen.
Newsgroups: gmane.comp.lang.tcl.starkit
Date: 2008-03-04 02:17:44 GMT
Subject: Setting up to build tclkits using kitgen.
Newsgroups: gmane.comp.lang.tcl.starkit
Date: 2008-03-04 02:17:44 GMT
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:anonymous <at> tcl.cvs.sourceforge.net:/cvsroot/tcl co -r core-8-4-branch tcl cvs -d:pserver:anonymous <at> tktoolkit.cvs.sourceforge.net:/cvsroot/ tktoolkit co -r core-8-4-branch tk cd ../8.5 cvs -d:pserver:anonymous <at> tcl.cvs.sourceforge.net:/cvsroot/tcl co tcl cvs -d:pserver:anonymous <at> 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:anonymous <at> tcl.cvs.sourceforge.net:/cvsroot/tcl co thread cvs -d:pserver:anonymous <at> tclvfs.cvs.sourceforge.net:/cvsroot/tclvfs co tclvfs cvs -d:pserver:anonymous <at> 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
RSS Feed