diff options
Diffstat (limited to 'chapter06/tcl.xml')
-rw-r--r-- | chapter06/tcl.xml | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/chapter06/tcl.xml b/chapter06/tcl.xml new file mode 100644 index 000000000..bd17a91a8 --- /dev/null +++ b/chapter06/tcl.xml @@ -0,0 +1,191 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; + <!ENTITY tdbc-ver "1.1.1"> + <!ENTITY itcl-ver "4.2.0"> +]> + +<sect1 id="ch-tools-tcl" role="wrap"> + <?dbhtml filename="tcl.html"?> + + <sect1info condition="script"> + <productname>tcl</productname> + <productnumber>&tcl-version;</productnumber> + <address>&tcl-url;</address> + </sect1info> + + <title>Tcl-&tcl-version;</title> + + <indexterm zone="ch-tools-tcl"> + <primary sortas="a-Tcl">Tcl</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <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-ch5-sbu;</seg> + <seg>&tcl-ch5-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Tcl</title> + + <para>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 <xref linkend="chapter-building-system"/>.</para> + + <para>Note that the Tcl package used here is a minimal version needed + to run the LFS tests. For the full package, see the + <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para> + + <para>Prepare Tcl for compilation:</para> + +<screen><userinput remap="configure">SRCDIR=$(pwd) +cd unix +./configure --prefix=/usr \ + --mandir=/usr/share/man \ + $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</userinput></screen> + + <variablelist> + <title>The meaning of the configure options:</title> + + <varlistentry> + <term><parameter>$([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)</parameter></term> + <listitem> + <para>The construct <parameter>$(<shell command>)</parameter> + is replaced by the output of the chell command. Here this output is + empty if running on a 32 bit machine, and is + <parameter>--enable-64bit</parameter> if running on a 64 bit machine. + </para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Build the package:</para> + +<screen><userinput remap="make">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</userinput></screen> + + <para>The various <quote>sed</quote> after the <quote>make</quote> command + remove references to the build directory from various configuration files, + and replaces them with the install directory. This is not mandatory + for the remaining of LFS, but may be needed in case a package built later + uses Tcl.</para> + + <para>Install the package:</para> + +<screen><userinput remap="install">make install</userinput></screen> + + <para>Make the installed library writable so debugging symbols can + be removed later:</para> + +<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen> + + <para>Install Tcl's headers. The next package, Expect, requires them + to build.</para> + +<screen><userinput remap="install">make install-private-headers</userinput></screen> + + <para>Now make a necessary symbolic link:</para> + +<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen> + + </sect2> + + <sect2 id="contents-tcl" role="content"> + <title>Contents of Tcl</title> + + <segmentedlist> + <segtitle>Installed programs</segtitle> + <segtitle>Installed library</segtitle> + + <seglistitem> + <seg>tclsh (link to tclsh&tcl-major-version;) and tclsh&tcl-major-version;</seg> + <seg>libtcl&tcl-major-version;.so, libtclstub&tcl-major-version;.a</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="tclsh&tcl-major-version;"> + <term><command>tclsh&tcl-major-version;</command></term> + <listitem> + <para>The Tcl command shell</para> + <indexterm zone="ch-tools-tcl tclsh&tcl-major-version;"> + <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="tclsh"> + <term><command>tclsh</command></term> + <listitem> + <para>A link to tclsh&tcl-major-version;</para> + <indexterm zone="ch-tools-tcl tclsh"> + <primary sortas="b-tclsh">tclsh</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libtcl&tcl-major-version;.so"> + <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term> + <listitem> + <para>The Tcl library</para> + <indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so"> + <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="libtclstub&tcl-major-version;.a"> + <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term> + <listitem> + <para>The Tcl Stub library</para> + <indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a"> + <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> |