Tcl/Tk: Difference between revisions

From CLONWiki
Jump to navigation Jump to search
No edit summary
Line 202: Line 202:


  yum install tcl-devel
  yum install tcl-devel
yum install tk-devel

Revision as of 12:47, 13 September 2010

Basic Tcl/Tk must be installed to satisfy CODA references. Following packages were downloaded to /usr/local/downloads from the web:

tcl8.4.13
tk8.4.13
tix-8.4.0
expect-5.43
blt2.4z
itcl
itk
<<< DO NOT DO IT !!! tcl-dp >>>
<<< DO NOT DO IT !!! tcl-debug >>>
mysqltcl

Installation instructions:

  • tcl
cd /usr/local/src/tcl8.4.13/unix
./configure --prefix=/usr --enable-shared
gmake
gmake install
  • tk
cd /usr/local/src/tk8.4.13/unix
./configure --prefix=/usr --enable-shared
gmake
gmake install
  • tix
cd /usr/local/src/tix-8.4.0

In file Makefile.in:

1. Replace 'pkglibdir' by 'libdir' in 4 places in following fragment:

install-lib-binaries:
       @mkdir -p $(DESTDIR)$(pkglibdir)
       @list='$(lib_BINARIES)'; for p in $$list; do \
         if test -f $$p; then \
           echo " $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p"; \
           $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libdir)/$$p; \
           echo " $(RANLIB) $(DESTDIR)$(libdir)/$$p"; \
           $(RANLIB) $(DESTDIR)$(libdir)/$$p; \
           ....................................

to enforce libTix8.4.so installation into ${exec_prefix}/lib/, not into ${exec_prefix}/lib/Tix8.4/

2. Add following fragment to enforce 'tixwish' building:

WISH_OBJS = tixAppInit.o
tixwish: $(WISH_OBJS) $(PKG_LIB_FILE)
       ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) -L./ -lTix8.4 -ltk8.4 -ltcl8.4 \
               $(CC_SEARCH_FLAGS) -o tixwish

3. Add 'tixwish' target to the following line:

binaries: $(BINARIES) pkgIndex.tcl tixwish


4. Add 'tixwish' line in following fragment:

install-binaries: binaries install-lib-binaries install-bin-binaries
       @mkdir -p $(DESTDIR)$(pkglibdir)
       $(INSTALL_DATA) pkgIndex.tcl $(DESTDIR)$(pkglibdir)
       $(INSTALL_PROGRAM) tixwish $(DESTDIR)$(bindir)
       ...........................................
./configure --prefix=/usr --enable-shared
gmake
gmake install
cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/


  • expect
cd /usr/local/src/expect-5.43
./configure --prefix=/usr --with-tcl=/usr/lib --with-tclinclude=/usr/local/src/tcl8.4.13/generic --enable-shared
gmake
gmake install
  • blt
cd /usr/local/src/blt2.4z
./configure \--with-tcl=/usr/local/src/tcl8.4.13/unix \
  --with-tk=/usr/local/src/tk8.4.13/unix \
  --with-tclincls=/usr/local/src/tcl8.4.13/generic \
  --with-tkincls=/usr/local/src/tk8.4.13/generic \
  --prefix=/usr
gmake
gmake install


  • symbolic links
cd /usr/bin
ln -s wish8.4 wish
  • itcl
cd /usr/local/src/itcl3.3
./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr 
gmake
gmake install
#test
clon10:itcl3.3> /usr/bin/tclsh8.4 
% package require Itcl
3.3
% exit
  • itk
cd /usr/local/src/itk3.3
./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \
 --with-tk=/usr/local/src/tk8.4.13/unix \
 --with-itcl=/usr/local/src/itcl3.3 \
 --prefix=/usr
gmake
gmake install
#test
clon10:src> /usr/bin/tclsh8.4
% package require Itk
3.3
% exit

<<< DO NOT DO IT !!! * tcl-dp

cd /usr/local/src/tcl-dp.4.0.b2/unix
./configure --with-tcl=/usr/local/src/tcl8.4.13/unix --prefix=/usr
in generic/dpInit.c:
  /*sergey
  if (TclHasSockets(interp) != TCL_OK) {
  return TCL_ERROR;
  }
  */
gmake
###gmake tests
cd ..
/usr/bin/wish teki.tcl
###'File | Install'.  Select dp.tek, click 'Open', select 'Custom',
choose 'Solaris' (or whatever), root directory for code files '/usr/lib/tcl8.4'
cd /usr/lib/tcl8.4/dp4.0/library/
chmod 755 *
All DP scripts
should have "package require dp" as their first line which will
automatically load the DP module if it has not been loaded already.
#test
/usr/bin/tclsh8.4
%  package require dp
4.0
% exit

<<< DO NOT DO IT !!! * tcl-debug

cd /usr/local/src/tcl-debug-2.0
./configure --prefix=/usr --enable-shared --with-tcl=/usr/local/src/tcl8.4.13/unix
gmake
gmake install
  • mysqltcl
cd /usr/local/src/mysqltcl-3.05
./configure --with-tcl=/usr/local/src/tcl8.4.13/unix \
  --with-tclinclude=/usr/local/src/tcl8.4.13/generic \
  --with-mysql-include=/usr/include/mysql \
  --with-mysql-lib=/usr/lib/mysql \
  --prefix=/usr
gmake
gmake install
#test
clon10> /usr/bin/tclsh8.4
% package require mysqltcl
3.05
% exit


When everything is compiled on one machine of particular flavor, run following commands on other machines of the same flavor:

cd /usr/local/src/tcl8.4.13/unix
gmake install
cd /usr/local/src/tk8.4.13/unix
gmake install
cd /usr/local/src/tix-8.4.0
gmake install
cp demos/bitmaps/about.xpm /usr/lib/Tix8.4/bitmaps/
cd /usr/local/src/expect-5.43
gmake install
cd /usr/local/src/blt2.4z
gmake install
cd /usr/local/src/itcl3.3
gmake install
cd /usr/local/src/itk3.3
gmake install
cd /usr/local/src/mysqltcl-3.05
gmake install
cd /usr/bin
ln -s wish8.4 wish

RHEL5

yum install tcl-devel
yum install tk-devel