Expect 软件包包含一个实现用脚本和其他交互式程序进行对话的程序。
首先,强制 Expect 的 configure 配置脚本使用 /bin/stty
替代宿主机系统里可能存在的 /usr/local/bin/stty
。这样可以保证我们的测试套件工具在工具链的最后一次构建能够正常。
cp -v configure{,.orig} sed 's:/usr/local/bin:/bin:' configure.orig > configure
现在配置 Expect 准备编译:
./configure --prefix=/tools \ --with-tcl=/tools/lib \ --with-tclinclude=/tools/include
配置脚本参数的含义:
--with-tcl=/tools/lib
这个选项可以保证 configure 配置脚本会从临时工具目录里找 Tcl 的安装位置,而不是在宿主机系统中寻找。
--with-tclinclude=/tools/include
这个选项会给 Expect 显式地指定 Tcl 内部头文件的位置。通过这个选项可以避免 configure 脚本不能自动发现 Tcl 头文件位置的情况。
编译软件包:
make
现在编译已经完成。之前说过,不要求为本章中所构建的临时工具运行测试套件。不过你仍然要测试 Expect 的话可以用下面的命令:
make test
请注意 Expect 测试套件已知在某些宿主机特定情况下有过失败的情况,我们还没有完全把握。不过,在这里测试套件运行失败并不奇怪,也不认为是关键问题。
安装软件包:
make SCRIPTS="" install
make 参数的含义:
SCRIPTS=""
这个变量可以避免安装额外的、没有需求的 Expect 脚本。