Updated 2005-02-23 18:16:03

[Bruce Stephens] wrote up a description of his experiences building TclPro from source during March of 2002. He provided permission to write up his experiences here on the wiki. Bruce writes:
 From: Bruce Stephens <[email protected]>
 Newsgroups: comp.lang.tcl
 Date: Sun, 10 Mar 2002 22:34:52 +0000
 Message-ID: <[email protected]>

"... I just tried building it (on GNU/Linux), and it's not *that* bad.

Here are the notes I made. Feel free to stick them anywhere suitable (a wiki or whatever), with or without modification.

You'll need 80M for sources, about 120M or so for an existing TclPro (which you need) (this is the path --with-protools), about 130M for the TclPro you build (this is the path --prefix), and about 200M for building.

You need a working TclPro (e.g., 1.4.1 with the free keys). It's convenient if tclsh points at a tclsh which has tcllib, so a good way to do that is to make a symbolic link in a suitable place to protclsh83. (this means make a symbolic link called tclsh to the protclsh83)

Check out tclpro

Edit tclpro/TclProCheckout.tcl to set user id (at bottom) and change base versions of tcl and tk (to 8.3.4), if you want. Change the references to cvs.tclpro.sourceforge.net to cvs.sourceforge.net as these seem to be out of date and not working. If you need to change the user to anonymous (which seems likely) you'lll need to change user to something like:

set user ":pserver:[email protected]"

The point is you need the :pserver: bit as well.

Edit tclpro/modules/install/src/parts.in and tclpro/modules/wrapper/boot83.uses.in to change http and msgcat versions (from 2.3 to 2.4 and 1.0 to 1.1 respectively).

Some tcl, tk, tclpro version numbers in tclpro/configure.in and tclpro/modules/projectInfo/projectInfo.tcl will want to be changed.

Run TclProCheckout.tcl (from directory that contains tclpro)
 cvs -d:pserver:[email protected]:/cvsroot/incrtcl get -ritcl-3-2-0 iwidgets
 mv iwidgets itcl3.2/iwidgets3.0.0
 cvs -d:pserver:[email protected]:/cvsroot/incrtcl get -riwidgets-2-2-0 iwidgets
 mv iwidgets itcl3.2/iwidgets2.2.0

Get trf, memchan, trfcrypt, SetOps, expand by running the various get-* scripts in tclpro. (Run them from the toplevel: tclpro/get-expand etc.)

replace "bash autoconf" with "autoconf" in buildenv/buildModule.tcl and buildenv/buildModuleB.tcl

Run autoconf in tclpro.
 cd tclpro
 mkdir linux-ix86
 cd linux-ix86
 ../configure --with-protools=/usr/local/tclpro --prefix=/usr/local/tclpro1.5


Some updates (2003/01/07). (I rearranged one paragraph above, but it's a trivial moving of text.) You'll need to use autoconf 2.13 (or thereabouts). Some of the build process doesn't seem to work with autoconf2.5. It's probably easy to fix, but it's even easier to use autoconf2.13 if you can. (Debian users can do "apt-get install autoconf2.13".)

Then you need to type "make", probably redirecting the output to a file. And wait some time. The build will fail because some part of the process is expecting to find tcllib* in /usr/local/tclpro1.5/lib (presuming the config above). But it's not. I just used a symbolic link:
  ln -s /usr/local/tclpro1.5/linux-ix86/lib/tcllib* /usr/local/tclpro1.5/lib

Then run make again, and everything should be built. I must admit, I don't remember this part, but it definitely happened when I just built it, so probably I just forgot.