8.4. Tcl-8.6.10

Tcl パッケージは、堅牢で汎用的なスクリプト言語であるツールコマンド言語 (Tool Command Language) を提供します。 Expect パッケージは Tcl 言語によって書かれています。

概算ビルド時間: 4.0 SBU
必要ディスク容量: 83 MB

8.4.1. Tcl のインストール

本パッケージとこれに続く 2 つのパッケージ (Expect と DejaGNU) は、GCC および Binutils などにおけるテストスイートを実行するのに必要となるためインストールするものです。 テスト目的のためにこれら 3 つのパッケージをインストールするというのは、少々大げさなことかもしれません。 ただ本質的ではないことであっても、重要なツール類が正常に動作するという確認が得られれば安心できます。 これら 3 つのパッケージは、本章で行うテストのために必要となるものです。

はじめにドキュメントを伸張(解凍)する以下のコマンドを実行します。

tar -xf ../tcl8.6.10-html.tar.gz --strip-components=1

Tcl をコンパイルするための準備をします。

SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            $([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)

configure オプションの意味

$([ "$(uname -m)" = x86_64 ] && echo --enable-64bit)

$(<shell command>) という記述は、そのシェルコマンドの出力結果によって置き換えられます。 この出力は 32 ビットマシンでは空となり、64 ビットマシン上では --enable-64bit となります。

パッケージをビルドします。

make

sed -e "s|$SRCDIR/unix|/usr/lib|" \
    -e "s|$SRCDIR|/usr/include|"  \
    -i tclConfig.sh

sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.1|/usr/lib/tdbc1.1.1|" \
    -e "s|$SRCDIR/pkgs/tdbc1.1.1/generic|/usr/include|"    \
    -e "s|$SRCDIR/pkgs/tdbc1.1.1/library|/usr/lib/tcl8.6|" \
    -e "s|$SRCDIR/pkgs/tdbc1.1.1|/usr/include|"            \
    -i pkgs/tdbc1.1.1/tdbcConfig.sh

sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.0|/usr/lib/itcl4.2.0|" \
    -e "s|$SRCDIR/pkgs/itcl4.2.0/generic|/usr/include|"    \
    -e "s|$SRCDIR/pkgs/itcl4.2.0|/usr/include|"            \
    -i pkgs/itcl4.2.0/itclConfig.sh

unset SRCDIR

"make" コマンドに続くたくさんの "sed" コマンドは、設定ファイルにあるビルドディレクトリへの参照を削除して、インストールディレクトリへの参照に置き換えます。 これ以降の LFS 作業において必須のことではありませんが、後にビルドされるパッケージが Tcl を用いるかもしれないからです。

ビルド結果をテストする場合は、以下を実行します。

make test
[注記]

注記

テストスイートにおいては clock.test に関連する箇所がいくつかあって、これは失敗します。 ただしテスト結果のまとめにおいては、失敗は 1 つもないものとして示されます。 clock.test は LFS システムが完成すれば成功します。

パッケージをインストールします。

make install

インストールされたライブラリを書き込み可能にします。 こうすることで後にデバッグシンボルを削除できるようにします。

chmod -v u+w /usr/lib/libtcl8.6.so

Tcl のヘッダーファイルをインストールします。 これらは次にビルドする Expect が必要とするファイルです。

make install-private-headers

必要となるシンボリックリンクを生成します。

ln -sfv tclsh8.6 /usr/bin/tclsh

最後に Perl の man ページと重複するものを名称変更します。

mv /usr/share/man/man3/{Thread,Tcl_Thread}.3

8.4.2. Tcl の構成

インストールプログラム: tclsh (tclsh8.6 へのリンク), tclsh8.6
インストールライブラリ: libtcl8.6.so, libtclstub8.6.a

概略説明

tclsh8.6

Tcl コマンドシェル

tclsh

tclsh8.6 へのリンク

libtcl8.6.so

Tcl ライブラリ

libtclstub8.6.a

Tcl スタブライブラリ