Tcl/Tk 8.0p2, Tix4.1.006, and BLT2.4g for OpenVMS 6.2 or 7.x with UCX

Disclaimer and merits


This is a port of Tcl to OpenVMS using UCX. Most of the VMS port was done by Angel Li, Karl Lehenbauer, Mark Diekhans and Peter da Silva using Multinet .

I used this Tcl7.5b3/Tk4.1b3 and this Tcl/Tk8.0p2 and did a port using UCX instead of multinet. Then I ported Tix and BLT.

Some features were commented out (like full socket support) because I didn't had the time to hack them. The VMS environment is too tough!

Wolfgang Kechel also did a Tcl/Tk8.0 port using UCX. I didn't test it but judging by his 'readme' it may have a better socket implementation. My Tix and BLT ports should be able to compile with both (my port and Wolfgang's).

These packages run pretty good on Alpha VMS-7.1. On Alpha VMS-6.2 it depends on the VMS patches you have installed. In some 6.2 systems X11 has a lousy implementation crashing randomly. In others it works fine. I believe it is related with how fonts and video drivers are configured.

As usual, use this software at your own risk. If your screen blows away, puts on fire your office and fill with smoke all the town IT'S NOT MY FAULT!

Tools

All the packages have been compiled using VMS' C compiler and pmake. I tried with GNU's C but I had problems linking with UCX libraries. Pmake needs the file sys.mk installed somewhere in your system (normally in tcltk:[lib]).

The other Unix tools you will need are gunzip, tar and maybe touch. Gzip is just a copy of gunzip with another name (gzip.exe).

Code organization

As in Unix, the installed packages don't need the sources. The makefiles assume that everything will be installed under the logical name 'tcltk'. The directory structure is:

tcltk
     bin
     blt
     include
     lib
     tcl
     tix
     tk
     src     (can be removed after installation)

You need to create these directories before starting.

Installation

Then edit the command file tcltk.com in order to properly define all logical names and execute it (with @tcltk).

After this you can install gunzip, gzip, tar and touch under tcltk:[bin]

The packages can be "untared" under src with the commands:

    set def tcltk:[src]
    gunzip package.tar-gz
    tar xvf package.tar

where package is one of tcl8p2.tar-gz, tk8p2.tar-gz, blt2_4g.tar-gz, tix41006.tar-gz.

This will create the directories tcl8p2, tk8p2, blt2_4g and tix41006. Under each of them you will find a vms directory with a makefile.vms. All makefiles provide the following services:

    make
    make install
    make clean

If the logical names are OK make will compile everything and make install will install whatever is necessary in the proper directories.

All objects, libraries and executable files are generated under this directory (which can be cleaned with make clean) but only the VMS source codes are there. The rest of the code is in generic and unix.

You can also get the binaries compiled under OpenVMS 7.1. They may work out of the box, who knows!

If you have any questions please contact me at carlos@tarkus.se. I will be glad also if you come with new versions or improvements.

Enjoy it!