source: chapter08/tcl.xml@ 28e610db

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 28e610db was 28e610db, checked in by Bruce Dubbs <bdubbs@…>, 4 years ago

Move tcl, expect, and dejagnu to Chapter 8

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11981 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 7.0 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6 <!ENTITY tdbc-ver "1.1.1">
7 <!ENTITY itcl-ver "4.2.0">
8]>
9
10<sect1 id="ch-tools-tcl" role="wrap">
11 <?dbhtml filename="tcl.html"?>
12
13 <sect1info condition="script">
14 <productname>tcl</productname>
15 <productnumber>&tcl-version;</productnumber>
16 <address>&tcl-url;</address>
17 </sect1info>
18
19 <title>Tcl-&tcl-version;</title>
20
21 <indexterm zone="ch-tools-tcl">
22 <primary sortas="a-Tcl">Tcl</primary>
23 </indexterm>
24
25 <sect2 role="package">
26 <title/>
27
28 <para>The <application>Tcl</application> package contains the Tool Command Language,
29 a robust general-purpose scripting language. The <application>Expect</application> package
30 is written in the <application>Tcl</application> language.</para>
31
32 <segmentedlist>
33 <segtitle>&buildtime;</segtitle>
34 <segtitle>&diskspace;</segtitle>
35
36 <seglistitem>
37 <seg>&tcl-tmp-sbu;</seg>
38 <seg>&tcl-tmp-du;</seg>
39 </seglistitem>
40 </segmentedlist>
41
42 </sect2>
43
44 <sect2 role="installation">
45 <title>Installation of Tcl</title>
46
47 <para>This package and the next two (Expect and DejaGNU) are
48 installed to support running the test suites for GCC and binutils and other
49 packages. Installing three packages for testing purposes may seem
50 excessive, but it is very reassuring, if not essential, to know that the
51 most important tools are working properly. These packages are required
52 to run the test suites in this chapter.</para>
53
54<!-- <para>Note that the Tcl package used here is a minimal version needed
55 to run the LFS tests. For the full package, see the
56 <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para>-->
57
58 <para>First, unpack the documentation by issuing the following command:</para>
59
60<screen><userinput remap="pre">tar -xf ../tcl8.6.10-html.tar.gz --strip-components=1</userinput></screen>
61
62 <para>Prepare Tcl for compilation:</para>
63
64<screen><userinput remap="configure">SRCDIR=$(pwd)
65cd unix
66./configure --prefix=/usr \
67 --mandir=/usr/share/man \
68 $([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</userinput></screen>
69
70 <variablelist>
71 <title>The meaning of the configure options:</title>
72
73 <varlistentry>
74 <term><parameter>$([ "$(uname -m)" = x86_64 ] &amp;&amp; echo --enable-64bit)</parameter></term>
75 <listitem>
76 <para>The construct <parameter>$(&lt;shell command&gt;)</parameter>
77 is replaced by the output of the shell command. Here this output is
78 empty if running on a 32 bit machine, and is
79 <parameter>--enable-64bit</parameter> if running on a 64 bit machine.
80 </para>
81 </listitem>
82 </varlistentry>
83
84 </variablelist>
85
86 <para>Build the package:</para>
87
88<screen><userinput remap="make">make
89
90sed -e "s|$SRCDIR/unix|/usr/lib|" \
91 -e "s|$SRCDIR|/usr/include|" \
92 -i tclConfig.sh
93
94sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
95 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
96 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
97 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
98 -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
99
100sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
101 -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \
102 -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \
103 -i pkgs/itcl&itcl-ver;/itclConfig.sh
104
105unset SRCDIR</userinput></screen>
106
107 <para>The various <quote>sed</quote> instructions after the
108 <quote>make</quote> command removes references to the build directory from
109 the configuration files and replaces them with the install directory.
110 This is not mandatory for the remainder of LFS, but may be needed in case a
111 package built later uses Tcl.</para>
112
113 <para>To test the results, issue:</para>
114
115<screen><userinput remap="test">make test</userinput></screen>
116
117 <para>Install the package:</para>
118
119<screen><userinput remap="install">make install</userinput></screen>
120
121 <para>Make the installed library writable so debugging symbols can
122 be removed later:</para>
123
124<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen>
125
126 <para>Install Tcl's headers. The next package, Expect, requires them.</para>
127
128<screen><userinput remap="install">make install-private-headers</userinput></screen>
129
130 <para>Now make a necessary symbolic link:</para>
131
132<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen>
133
134 </sect2>
135
136 <sect2 id="contents-tcl" role="content">
137 <title>Contents of Tcl</title>
138
139 <segmentedlist>
140 <segtitle>Installed programs</segtitle>
141 <segtitle>Installed library</segtitle>
142
143 <seglistitem>
144 <seg>
145 tclsh (link to tclsh&tcl-major-version;) and
146 tclsh&tcl-major-version;
147 </seg>
148 <seg>
149 libtcl&tcl-major-version;.so and
150 libtclstub&tcl-major-version;.a
151 </seg>
152 </seglistitem>
153 </segmentedlist>
154
155 <variablelist>
156 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
157 <?dbfo list-presentation="list"?>
158 <?dbhtml list-presentation="table"?>
159
160 <varlistentry id="tclsh&tcl-major-version;">
161 <term><command>tclsh&tcl-major-version;</command></term>
162 <listitem>
163 <para>The Tcl command shell</para>
164 <indexterm zone="ch-tools-tcl tclsh&tcl-major-version;">
165 <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
166 </indexterm>
167 </listitem>
168 </varlistentry>
169
170 <varlistentry id="tclsh">
171 <term><command>tclsh</command></term>
172 <listitem>
173 <para>A link to tclsh&tcl-major-version;</para>
174 <indexterm zone="ch-tools-tcl tclsh">
175 <primary sortas="b-tclsh">tclsh</primary>
176 </indexterm>
177 </listitem>
178 </varlistentry>
179
180 <varlistentry id="libtcl&tcl-major-version;.so">
181 <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
182 <listitem>
183 <para>The Tcl library</para>
184 <indexterm zone="ch-tools-tcl libtcl&tcl-major-version;.so">
185 <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
186 </indexterm>
187 </listitem>
188 </varlistentry>
189
190 <varlistentry id="libtclstub&tcl-major-version;.a">
191 <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
192 <listitem>
193 <para>The Tcl Stub library</para>
194 <indexterm zone="ch-tools-tcl libtclstub&tcl-major-version;.a">
195 <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
196 </indexterm>
197 </listitem>
198 </varlistentry>
199
200 </variablelist>
201
202 </sect2>
203
204</sect1>
Note: See TracBrowser for help on using the repository browser.