5.7. Expect-5.43.0

The Expect package contains a program for carrying out scripted dialogues with other interactive programs.

5.7.1. Installation of Expect

First, fix a bug that can result in false failures during the GCC test suite run:

patch -Np1 -i ../expect-5.43.0-spawn-2.patch

Next, force Expect's configure script to use /bin/stty instead of a /usr/local/bin/stty it may find on the host system. This will ensure that our testsuite tools remain sane for the final builds of our toolchain.

cp configure{,.bak}
sed 's:/usr/local/bin:/bin:' configure.bak > configure

Add -pie, and reset the timestamp on the configure script:

cp -v Makefile.in{,.orig}
sed 's/^LDFLAGS =/& -pie/' Makefile.in.orig > Makefile.in
touch configure

Now prepare Expect for compilation:

./configure --prefix=/tools --with-tcl=/tools/lib \
    --with-tclinclude=/tools/include --with-x=no

The meaning of the configure options:

--with-tcl=/tools/lib

This ensures that the configure script finds the Tcl installation in the temporary tools location instead of possibly locating an existing one on the host system.

--with-tclinclude=/tools/include

This explicitly tells Expect where to find Tcl's internal headers. Using this option avoids conditions where configure fails because it cannot automatically discover the location of Tcl's headers.

--with-x=no

This tells the configure script not to search for Tk (the Tcl GUI component) or the X Window System libraries, both of which may reside on the host system but will not exist in the temporary environment.

Build the package:

make

Install the package:

make SCRIPTS="" install

The meaning of the make parameter:

SCRIPTS=""

This prevents installation of the supplementary Expect scripts, which are not needed.

5.7.2. Contents of Expect

Installed program: expect
Installed library: libexpect-5.43.a

Short Descriptions

expect

Communicates with other interactive programs according to a script

libexpect5.43.a

Contains functions that allow Expect to be used as a Tcl extension or to be used directly from C or C++ (without Tcl)