aboutsummaryrefslogtreecommitdiffstats
path: root/lib/gs/tcl/README
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gs/tcl/README')
-rw-r--r--lib/gs/tcl/README156
1 files changed, 156 insertions, 0 deletions
diff --git a/lib/gs/tcl/README b/lib/gs/tcl/README
new file mode 100644
index 0000000000..5fc1836349
--- /dev/null
+++ b/lib/gs/tcl/README
@@ -0,0 +1,156 @@
+==============================================================================
+ How to create prebuilt Tcl/Tk binaries
+==============================================================================
+
+Please look further down in this text for Windows instructions...
+
+Unixish OS
+----------
+
+For commercial releases we use a prebuilt binary release of Tcl/Tk 8.X
+where X >= 2. This release is placed into "gs-VSN/priv/tcl" and the
+'gstk_port_handler' module searches this directory first to find the
+"wish" executable program.
+
+It is possible to pack the files from a standard installation on a
+machine into a TAR file but it is preferable to build Tcl/Tk from
+sources. The steps are
+
+ 0. Set some environment variables
+
+ % setenv BUILDDIR /tmp/build
+ % setenv GNUTAR gtar
+
+ 1. Download unpack the sources from http://sourceforge.net/projects/tcl.
+ Use the latest stable release. When this README was written
+ the latest stable version was 8.3.4.
+
+ % mkdir -p $BUILDDIR/tcl
+ % cd $BUILDDIR
+ % $GNUTAR -xzf /my/src/path/tcl8.3.4.tar.gz
+ % $GNUTAR -xzf /my/src/path/tk8.3.4.tar.gz
+
+ % cd tcl8.3.4/unix
+ % ./configure --enable-gcc --enable-threads --disable-load \
+ --disable-shared --prefix=$BUILDDIR/tcl
+ % make
+ % make install
+
+ % cd ../../tk8.3.4/unix
+ % ./configure --enable-gcc --enable-threads --disable-load \
+ --disable-shared --prefix=$BUILDDIR/tcl \
+ --with-tcl=$BUILDDIR/tcl/lib
+ % make
+ % make install
+
+ 2. Check that the executable wish program don't depend on libtcl
+ or libtk. If it does we have to redo this or keep them
+ where they are, else we can remove the libraries
+
+ % cd $BUILDDIR
+ % ldd tcl/bin/wish8.3
+
+ and if the executables doesn't depend on libtcl or libtk we remove them
+
+ % rm -f tcl/lib/libt*
+
+ 3. Remove other things we don't need. There may be other things in
+ later releases but only remove the obvious things
+
+ % rm -fr tcl/include tcl/man
+ % rm -f tcl/bin/tclsh*
+ % rm -f tcl/lib/*.sh
+ % rm -fr tcl/lib/tcl*/http*
+ % rm -fr tcl/lib/tcl*/tcltest*
+ % rm -fr tcl/lib/tk*/demos
+ % rm -fr tcl/lib/tk*/images
+ % rm -f tcl/lib/*/*.c
+
+ 4. Some releases of Tcl/Tk contains soft links that make the directory
+ structure circular making it impossible to use 'cp' to copy the
+ tcl directory. You can find them with
+
+ % find tcl -type l
+
+ 5. Find out the name of the resulting TAR archive. Run the GS configure
+ script on the target platform to view the name
+
+ % cd $ERL_TOP/lib/gs
+ % rm -f config.cache
+ % autoconf
+ % ./configure
+
+ 6. Use the TAR program on the system to pack the resulting Tcl/Tk
+ distribution. Keep the top "tcl" library
+
+ % tar -cf - tcl | gzip > xxxxxxxx.tar.gz
+
+ 7. Copy and check in this TAR archive into the directory
+
+ /clearcase/otp/erts/lib/gs/tcl/binaries
+
+ 8. We are done........
+
+
+Windows
+-------
+
+These instructions are aimed at the 8.5.7 release of both tcl and tk,
+but should work for 8.4 as well as 8.6 releases with appropriate
+modifications.
+
+0. Download the source tar files for both tcl and tk and unpack the
+tar files from the same root.
+
+1. Start with tcl. Open a command prompt with the appropriate Visual
+C++ command environment (there is usually a shortcut under VC++ tools
+or something in the start menu. With this command prompt, cd to the
+tcl<version>/win directory and issue the following commands:
+
+dos_prompt> nmake -f makefile.vc OPTS=static INSTALLDIR=<some temp dir>\tcl
+...
+dos_prompt> nmake -f makefile.vc OPTS=static INSTALLDIR=<some temp dir>\tcl install
+
+2. Move further to tk. Using the same command prompt, cd
+..\..\tk<version>\win and build there:
+
+dos_prompt> nmake -f makefile.vc OPTS=static TCLDIR=<top dir of sources>\tcl<version> INSTALLDIR=<some temp dir>\tcl
+...
+dos_prompt> nmake -f makefile.vc OPTS=static TCLDIR=<top dir of sources>\tcl<version> INSTALLDIR=<some temp dir>\tcl install
+
+3. Now you will need to strip the installation you put in <some temp
+dir>\tcl. To do this, you will want a more appropriate command
+shell. Start cygwin bash and cd to the cygwin equivalent of <some temp
+dir>, i.e. where tcl/tk was installed. Now clean away what's not
+needed (this is not optional, gs won't work with a full version...)
+
+ % rm -fr tcl/include tcl/man
+ % rm -f tcl/bin/tclsh*
+ % rm -f tcl/lib/*.sh
+ % rm -fr tcl/lib/tcl*/http*
+ % rm -fr tcl/lib/tcl*/tcltest*
+ % rm -fr tcl/lib/tcl*/tzdata
+ % rm -fr tcl/lib/tcl*/msgs
+ % rm -fr tcl/lib/tk*/demos
+ % rm -fr tcl/lib/tk*/images
+ % rm -fr tcl/lib/tk*/tzdata
+ % rm -f tcl/lib/*/*.c
+ % rm -f tcl/lib/*.lib
+ % rm -fr tcl/lib/tcl8
+
+(The last line is especially important, gs will crash otherwise...)
+
+4. Now copy license.terms from the sources, otherwise you may break the redistribution policy.
+
+ % cp <top of sources/tcl<version>/license.terms tcl/
+
+5. Pack the tar file:
+
+ % tar zcf win32.tar.gz tcl
+
+6. Put it in $ERL_TOP/lib/gs/tcl/binaries (as described for Unixes)
+
+7. You are done!
+
+
+