source: chapter08/tcl.xml@ c04d98d

12.2-rc1 multilib trunk xry111/arm64 xry111/clfs-ng xry111/loongarch
Last change on this file since c04d98d was e3f47a2, checked in by Xi Ruoyao <xry111@…>, 3 months ago

tcl: Get rid of rpath

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