aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/tcl.xml
blob: 4fcc10b61399495452e38e5b542581447dc79375 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?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;
]>

<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 Tcl package contains the Tool Command 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 three (Expect, DejaGNU, and Check) are
    installed to support running the test suites for GCC and Binutils and other
    packages.  Installing four 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. Even if the test suites are not
    run in this chapter (they are not mandatory), these packages are required
    to run the test suites in <xref linkend="chapter-building-system"/>.</para>

    <para>First increase the amount of space needed by some regular expressions
    in regression tests.</para>

<screen><userinput remap="pre">sed -i s/500/5000/ generic/regc_nfa.c</userinput></screen>

    <para>Prepare Tcl for compilation:</para>

<screen><userinput remap="configure">cd unix
./configure --prefix=/tools</userinput></screen>

    <para>Build the package:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>Compilation is now complete. As discussed earlier, running the test
    suite is not mandatory for the temporary tools here in this chapter. To run
    the Tcl test suite anyway, issue the following command:</para>

<screen><userinput remap="test">TZ=UTC make test</userinput></screen>

    <para>The Tcl test suite may experience failures under certain host
    conditions that are not fully understood. Therefore, test suite failures
    here are not surprising, and are not considered critical. The
    <parameter>TZ=UTC</parameter> parameter sets the time zone to Coordinated
    Universal Time (UTC), also known as Greenwich Mean Time (GMT), but only
    for the duration of the test suite run. This ensures that the clock tests
    are exercised correctly. Details on the <envar>TZ</envar> environment
    variable are provided in <xref linkend="chapter-bootscripts"/>.</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 /tools/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 -sv tclsh&tcl-major-version; /tools/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>