%general-entities; ]> tcl &tcl-version;
&tcl-url;
Tcl-&tcl-version; Tcl <para>The <application>Tcl</application> package contains the Tool Command Language, a robust general-purpose scripting language. The <application>Expect</application> package is written in the <application>Tcl</application> language.</para> <segmentedlist> <segtitle>&buildtime;</segtitle> <segtitle>&diskspace;</segtitle> <seglistitem> <seg>&tcl-tmp-sbu;</seg> <seg>&tcl-tmp-du;</seg> </seglistitem> </segmentedlist> </sect2> <sect2 role="installation"> <title>Installation of Tcl This package and the next two (Expect and DejaGNU) are installed to support running the test suites for GCC and binutils and other packages. Installing three packages for testing purposes may seem excessive, but it is very reassuring, if not essential, to know that the most important tools are working properly. These packages are required to run the test suites in this chapter. First, unpack the documentation by issuing the following command: tar -xf ../tcl8.6.10-html.tar.gz --strip-components=1 Prepare Tcl for compilation: SRCDIR=$(pwd) cd unix ./configure --prefix=/usr \ --mandir=/usr/share/man \ $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) The meaning of the configure options: $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit) The construct $(<shell command>) is replaced by the output of the shell command. Here this output is empty if running on a 32 bit machine, and is --enable-64bit if running on a 64 bit machine. Build the package: make sed -e "s|$SRCDIR/unix|/usr/lib|" \ -e "s|$SRCDIR|/usr/include|" \ -i tclConfig.sh sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \ -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \ -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \ -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \ -i pkgs/itcl&itcl-ver;/itclConfig.sh unset SRCDIR The various sed instructions after the make command removes references to the build directory from the configuration files and replaces them with the install directory. This is not mandatory for the remainder of LFS, but may be needed in case a package built later uses Tcl. To test the results, issue: make test In the test results there are several places associated with clock.test that indicate a failure, but the summary at the end indicates no failures. clock.test passes on a complete LFS system. Install the package: make install Make the installed library writable so debugging symbols can be removed later: chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so Install Tcl's headers. The next package, Expect, requires them. make install-private-headers Now make a necessary symbolic link: ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh Finally, rename a man page that conflicts with a Perl man page: mv /usr/share/man/man3/{Thread,Tcl_Thread}.3 Contents of Tcl Installed programs Installed library tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version; libtcl&tcl-major-version;.so and libtclstub&tcl-major-version;.a Short Descriptions tclsh&tcl-major-version; The Tcl command shell tclsh&tcl-major-version; tclsh A link to tclsh&tcl-major-version; tclsh libtcl&tcl-major-version;.so The Tcl library libtcl&tcl-major-version;.so libtclstub&tcl-major-version;.a The Tcl Stub library libtclstub&tcl-major-version;.a