8.16. Tcl-8.6.14

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

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

8.16.1. Tcl のインストール

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

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

SRCDIR=$(pwd)
cd unix
./configure --prefix=/usr           \
            --mandir=/usr/share/man \
            --disable-rpath

configure パラメーターの意味

--disable-rpath

このパラメーターはバイナリ実行ファイルや共有ライブラリにおいて、ライブラリ検索パス (rpath) がハードコーディングされないようにします。 本パッケージは標準的なディレクトリにインストールするため rpath を必要ありません。 rpath は時に思わぬ弊害やセキュリティ問題を引き起こす場合があります。

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

make

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

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

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

unset SRCDIR

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

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

make test

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

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

任意の作業として、 以下のコマンドを実行してインストールします。

cd ..
tar -xf ../tcl8.6.14-html.tar.gz --strip-components=1
mkdir -v -p /usr/share/doc/tcl-8.6.14
cp -v -r  ./html/* /usr/share/doc/tcl-8.6.14

8.16.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 スタブライブラリ