Tcl 软件包包含工具命令语言,它是一个可靠的通用脚本语言。Except 软件包是用 Tcl 语言编写的.
为了支持 Binutils 和 GCC 等软件包测试套件的运行,需要安装这个软件包和接下来的两个 (Expect 与 DejaGNU)。为了测试目的安装三个软件包看似浪费,但是只有运行了测试,才能放心地确定多数重要工具可以正常工作,即使测试不是必要的。我们必须安装这些软件包,才能执行本章中的测试套件。
首先,运行以下命令解压文档:
tar -xf ../tcl8.6.11-html.tar.gz --strip-components=1
准备编译 Tcl:
SRCDIR=$(pwd) cd unix ./configure --prefix=/usr \ --mandir=/usr/share/man
构建该软件包:
make sed -e "s|$SRCDIR/unix|/usr/lib|" \ -e "s|$SRCDIR|/usr/include|" \ -i tclConfig.sh sed -e "s|$SRCDIR/unix/pkgs/tdbc1.1.2|/usr/lib/tdbc1.1.2|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.2/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.2/library|/usr/lib/tcl8.6|" \ -e "s|$SRCDIR/pkgs/tdbc1.1.2|/usr/include|" \ -i pkgs/tdbc1.1.2/tdbcConfig.sh sed -e "s|$SRCDIR/unix/pkgs/itcl4.2.1|/usr/lib/itcl4.2.1|" \ -e "s|$SRCDIR/pkgs/itcl4.2.1/generic|/usr/include|" \ -e "s|$SRCDIR/pkgs/itcl4.2.1|/usr/include|" \ -i pkgs/itcl4.2.1/itclConfig.sh unset SRCDIR
“make”命令之后的若干“sed”命令从配置文件中删除构建目录,并用安装目录替换它们。构建 LFS 的后续过程不对此严格要求,但如果之后构建使用 Tcl 的软件包,则可能需要这样的操作。
运行以下命令,以测试编译结果:
make test
在测试结果中,一些与 clock.test 相关的输出会显示测试失败,但是最终给出的测试结果摘要显示没有发生测试失败。clock 测试在完整的 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 页面文件名冲突的 man 页面:
mv /usr/share/man/man3/{Thread,Tcl_Thread}.3