source: chapter08/tcl.xml@ 259b8e0

multilib s6-init trunk xry111/clfs-ng xry111/lfs-next xry111/lfs-next/for-trunk-20220302
Last change on this file since 259b8e0 was 259b8e0, checked in by Xi Ruoyao <xry111@…>, 6 months ago

Merge remote-tracking branch 'origin/trunk' into xry111/lfs-next

  • Property mode set to 100644
File size: 6.7 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.3">
7 <!ENTITY itcl-ver "4.2.2">
8]>
9
10<sect1 id="ch-system-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-system-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 binutils and GCC 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.</para>
52
53<!-- <para>Note that the Tcl package used here is a minimal version needed
54 to run the LFS tests. For the full package, see the
55 <ulink url='&blfs-book;general/tcl.html'>BLFS Tcl procedures</ulink>.</para>-->
56
57 <para>First, unpack the documentation by issuing the following command:</para>
58
59<screen><userinput remap="pre">tar -xf ../tcl&tcl-version;-html.tar.gz --strip-components=1</userinput></screen>
60
61 <para>Prepare Tcl for compilation:</para>
62
63<screen><userinput remap="configure">SRCDIR=$(pwd)
64cd unix
65./configure --prefix=/usr \
66 --mandir=/usr/share/man</userinput></screen>
67
68 <para>Build the package:</para>
69
70<screen><userinput remap="make">make
71
72sed -e "s|$SRCDIR/unix|/usr/lib|" \
73 -e "s|$SRCDIR|/usr/include|" \
74 -i tclConfig.sh
75
76sed -e "s|$SRCDIR/unix/pkgs/tdbc&tdbc-ver;|/usr/lib/tdbc&tdbc-ver;|" \
77 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/generic|/usr/include|" \
78 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;/library|/usr/lib/tcl8.6|" \
79 -e "s|$SRCDIR/pkgs/tdbc&tdbc-ver;|/usr/include|" \
80 -i pkgs/tdbc&tdbc-ver;/tdbcConfig.sh
81
82sed -e "s|$SRCDIR/unix/pkgs/itcl&itcl-ver;|/usr/lib/itcl&itcl-ver;|" \
83 -e "s|$SRCDIR/pkgs/itcl&itcl-ver;/generic|/usr/include|" \
84 -e "s|$SRCDIR/pkgs/itcl&itcl-ver;|/usr/include|" \
85 -i pkgs/itcl&itcl-ver;/itclConfig.sh
86
87unset SRCDIR</userinput></screen>
88
89 <para>The various <quote>sed</quote> instructions after the
90 <quote>make</quote> command removes references to the build directory from
91 the configuration files and replaces them with the install directory.
92 This is not mandatory for the remainder of LFS, but may be needed in case a
93 package built later uses Tcl.</para>
94
95 <para>To test the results, issue:</para>
96
97<screen><userinput remap="test">make test</userinput></screen>
98
99 <para>Install the package:</para>
100
101<screen><userinput remap="install">make install</userinput></screen>
102
103 <para>Make the installed library writable so debugging symbols can
104 be removed later:</para>
105
106<screen><userinput remap="install">chmod -v u+w /usr/lib/libtcl&tcl-major-version;.so</userinput></screen>
107
108 <para>Install Tcl's headers. The next package, Expect, requires them.</para>
109
110<screen><userinput remap="install">make install-private-headers</userinput></screen>
111
112 <para>Now make a necessary symbolic link:</para>
113
114<screen><userinput remap="install">ln -sfv tclsh&tcl-major-version; /usr/bin/tclsh</userinput></screen>
115
116 <para>Rename a man page that conflicts with a Perl man page:</para>
117
118 <screen><userinput remap="install">mv /usr/share/man/man3/{Thread,Tcl_Thread}.3</userinput></screen>
119
120 <para>If you downloaded the optional documentation, install it by issuing
121 the following commands:</para>
122
123 <screen><userinput remap="install">mkdir -v -p /usr/share/doc/tcl-&tcl-version;
124cp -v -r ../html/* /usr/share/doc/tcl-&tcl-version;</userinput></screen>
125
126 </sect2>
127
128 <sect2 id="contents-tcl" role="content">
129 <title>Contents of Tcl</title>
130
131 <segmentedlist>
132 <segtitle>Installed programs</segtitle>
133 <segtitle>Installed library</segtitle>
134
135 <seglistitem>
136 <seg>
137 tclsh (link to tclsh&tcl-major-version;) and
138 tclsh&tcl-major-version;
139 </seg>
140 <seg>
141 libtcl&tcl-major-version;.so and
142 libtclstub&tcl-major-version;.a
143 </seg>
144 </seglistitem>
145 </segmentedlist>
146
147 <variablelist>
148 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
149 <?dbfo list-presentation="list"?>
150 <?dbhtml list-presentation="table"?>
151
152 <varlistentry id="tclsh&tcl-major-version;">
153 <term><command>tclsh&tcl-major-version;</command></term>
154 <listitem>
155 <para>The Tcl command shell</para>
156 <indexterm zone="ch-system-tcl tclsh&tcl-major-version;">
157 <primary sortas="b-tclsh&tcl-major-version;">tclsh&tcl-major-version;</primary>
158 </indexterm>
159 </listitem>
160 </varlistentry>
161
162 <varlistentry id="tclsh">
163 <term><command>tclsh</command></term>
164 <listitem>
165 <para>A link to tclsh&tcl-major-version;</para>
166 <indexterm zone="ch-system-tcl tclsh">
167 <primary sortas="b-tclsh">tclsh</primary>
168 </indexterm>
169 </listitem>
170 </varlistentry>
171
172 <varlistentry id="libtcl&tcl-major-version;.so">
173 <term><filename class="libraryfile">libtcl&tcl-major-version;.so</filename></term>
174 <listitem>
175 <para>The Tcl library</para>
176 <indexterm zone="ch-system-tcl libtcl&tcl-major-version;.so">
177 <primary sortas="c-libtcl&tcl-major-version;.so">libtcl&tcl-major-version;.so</primary>
178 </indexterm>
179 </listitem>
180 </varlistentry>
181
182 <varlistentry id="libtclstub&tcl-major-version;.a">
183 <term><filename class="libraryfile">libtclstub&tcl-major-version;.a</filename></term>
184 <listitem>
185 <para>The Tcl Stub library</para>
186 <indexterm zone="ch-system-tcl libtclstub&tcl-major-version;.a">
187 <primary sortas="c-libtclstub&tcl-major-version;.a">libtclstub&tcl-major-version;.a</primary>
188 </indexterm>
189 </listitem>
190 </varlistentry>
191
192 </variablelist>
193
194 </sect2>
195
196</sect1>
Note: See TracBrowser for help on using the repository browser.