mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-18 21:17:38 +00:00
207 lines
7.0 KiB
XML
207 lines
7.0 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!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.7">
|
|
<!ENTITY itcl-ver "4.2.4">
|
|
]>
|
|
|
|
<sect1 id="ch-system-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-system-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 <application>Tcl</application> (pronounced "tickle").</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</title>
|
|
|
|
<para>This package and the next two (Expect and DejaGNU) are
|
|
installed to support running the test suites for Binutils, GCC 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.</para>
|
|
|
|
<para>Prepare Tcl for compilation:</para>
|
|
|
|
<screen><userinput remap="configure">SRCDIR=$(pwd)
|
|
cd unix
|
|
./configure --prefix=/usr \
|
|
--mandir=/usr/share/man \
|
|
--disable-rpath</userinput></screen>
|
|
|
|
<variablelist>
|
|
<title>The meaning of the new configure parameters:</title>
|
|
|
|
<varlistentry>
|
|
<term><parameter>--disable-rpath</parameter></term>
|
|
<listitem>
|
|
<para>This parameter prevents hard coding library search paths
|
|
(rpath) into the binary executable files and shared libraries.
|
|
This package does not need rpath for an installation into the
|
|
standard location, and rpath may sometimes cause unwanted effects
|
|
or even security issues.</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> instructions after the
|
|
<quote>make</quote> command remove references to the build directory from
|
|
the configuration files and replace them with the install directory.
|
|
This is not mandatory for the remainder of LFS, but may be needed if a
|
|
package built later uses Tcl.</para>
|
|
|
|
<para>To test the results, issue:</para>
|
|
|
|
<screen><userinput remap="test">make test</userinput></screen>
|
|
|
|
<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.</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>
|
|
|
|
<para>Rename a man page that conflicts with a Perl man page:</para>
|
|
|
|
<screen><userinput remap="install">mv /usr/share/man/man3/{Thread,Tcl_Thread}.3</userinput></screen>
|
|
|
|
<para>Optionally, install the documentation by issuing
|
|
the following commands:</para>
|
|
|
|
<screen><userinput remap="install">cd ..
|
|
tar -xf ../tcl&tcl-version;-html.tar.gz --strip-components=1
|
|
mkdir -v -p /usr/share/doc/tcl-&tcl-version;
|
|
cp -v -r ./html/* /usr/share/doc/tcl-&tcl-version;</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 and
|
|
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-system-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-system-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-system-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-system-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>
|