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
此项确保配置脚本找到安装于临时工具位置的 Tcl 而不是宿主上可能存在的另一个。
--with-tclinclude=/tools/include
此选项直接告诉 Expect 去哪里找 Tcl 的内部头文件。使用这个选项防止出现因为无法自动找到 Tcl 头文件的位置而使 configure 失败的情况。
构建软件包:
make
编译现在完成了。前面讨论过,没有必要在这一章中为临时工具运行测试套件。如果无论如何都要运行 Expect 的测试套件,执行以下命令:
make test
注意 Expect 的测试套件已知会在某些我们无法控制的宿主条件下无法通过。因此这里出现测试套件失败不要惊奇,那无关紧要。
安装软件包:
make SCRIPTS="" install
make 参数的含义:
SCRIPTS=""
此项防止安装不需要的补充 Expect 脚本。