summaryrefslogtreecommitdiff
path: root/INSTALL
diff options
context:
space:
mode:
Diffstat (limited to 'INSTALL')
-rw-r--r--INSTALL282
1 files changed, 282 insertions, 0 deletions
diff --git a/INSTALL b/INSTALL
new file mode 100644
index 0000000..0055758
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,282 @@
+This file is INSTALL. It contains installation instructions for Expect.
+
+If you do not have Tcl, get it (Expect's README explains how) and
+install it. The rest of these instructions assume that you have Tcl
+installed.
+
+If you are installing Expect on a single architecture, or are just
+trying it out to see whether it is worth installing, follow the
+"Simple Installation" below. If you are installing Expect on multiple
+architectures or the "Simple Installation" instructions are not
+sufficient, see "Sophisticated Installations" below.
+
+--------------------
+Permissions
+--------------------
+
+On a Cray, you must be root to compile Expect. See the FAQ for why
+this is.
+
+If you want shared libs on Linux, you must be root in order to run
+ldconfig. See the ldconfig man page for more info.
+
+--------------------
+Simple Installation
+--------------------
+
+By default, the Tcl source directory is assumed to be in the same
+directory as the Expect source directory. For example, in this
+listing, Expect and Tcl are both stored in /usr/local/src:
+
+ /usr/local/src/tcl8.0 (actual version may be different)
+ /usr/local/src/expect-5.24 (actual version may be different)
+
+If Tcl is stored elsewhere, the easiest way to deal with this is to
+create a symbolic link to its real directory. For example, from the
+Expect directory, type:
+
+ ln -s /some/where/else/src/tcl8.0 ..
+
+The same applies for Tk, if you have it. (Tk is optional.)
+
+Run "./configure". This will generate a Makefile (from a prototype
+called "Makefile.in") appropriate to your system. (This step must be
+done in the foreground because configure performs various tests on
+your controlling tty. If you want to do this step in the background
+in the future, automate it using Expect!)
+
+Most people will not need to make any changes to the generated
+Makefile and can go on to the next step. If you want though, you can
+edit the Makefile and change any definitions as appropriate for your
+site. All the definitions you are likely to want to change are
+clearly identified and described at the beginning of the file.
+
+To build only the stand-alone Expect program, run "make expect". This
+is appropriate even if you still haven't decided whether to install
+Expect, are still curious about it, and want to do the minimum
+possible in order to experiment with it.
+
+To build everything, run "make". If "configure" found Tk and X on
+your system, this will build "expectk" (Expect with Tk).
+
+Once expect is built, you can cd to the example directory and try out
+some of the examples (see the README file in the example directory).
+Note that if Tcl has not yet been installed, this won't work. In this
+case, see the instructions "Trying Expect Without Installing Tcl"
+below.
+
+"make install" will install Expect. If you built Expectk, that will
+be installed as well. So will the documentation and some of the most
+useful examples.
+
+If you want shared libs on Linux, you must now su to root and run
+ldconfig on the shared library. See the ldconfig man page for more
+info.
+
+A handful of people running "pure" 4.2BSD systems have noted that
+expect fails to link due to lack of getopt and vprintf. You can get
+these from uunet or any good archive site.
+
+--------------------
+Trying Expect Without Installing Tcl
+--------------------
+
+Once expect is built, you can try it out. If Tcl has not been
+installed (but it has been compiled), you will need to define the
+environment variable TCL_LIBRARY. It should name the directory
+contain the Tcl libraries. For example, if you are using csh with Tcl
+8.0.3:
+
+ $ setenv TCL_LIBRARY ../tcl8.0.3/library
+
+Now you can run expect.
+
+The same advice applies to Tk. If it is available but has not been
+installed, you can try out expectk but only after defining TK_LIBRARY.
+For example, if you are using csh with Tk 8.0.3:
+
+ $ setenv TK_LIBRARY ../tk8.0.3/library
+
+Now you can run expectk.
+
+--------------------
+Sophisticated Installations
+--------------------
+
+The following instructions provide some suggestions for handling
+complex installations.
+
+--------------------
+Changing Defaults
+--------------------
+
+The configure script allows you to customize the Expect configuration
+for your site; for details on how you can do this, type "./configure
+-help" or refer to the autoconf documentation (not included here).
+Expect's configure supports the following flags in addition to the
+standard ones:
+
+ --verbose Cause configure to describe
+ what it is checking and what it decides.
+
+ --enable-shared Compile Expect as a shared library if it
+ can figure out how to do that on this
+ platform. (You must have already
+ compiled Tcl with this flag.)
+
+ --disable-load This switch is ignored so that you can
+ configure Expect with the same configure
+ command as Tcl. If you want to disable
+ dynamic loading, configure Tcl with this
+ flag and then reconfigure Expect.
+
+ --enable-gcc This switch is ignored so that you can
+ configure Expect with the same configure
+ command as Tcl. If you want to enable gcc,
+ configure Tcl with it and then reconfigure
+ Expect. Expect will inherit the definition
+ that way. It is not safe to modify the
+ Makefile to use gcc by hand. If you do
+ this, then information related to dynamic
+ linking will be incorrect.
+
+ --enable-threads This switch is ignored so that you can
+ configure Expect with the same configure
+ command as Tcl.
+
+ --with-tcl=... Specifies the directory containing Tcl's
+ configure file (tclConfig.sh).
+
+ --with-tclinclude=... Specifies the directory containing Tcl's
+ private include files (such as tclInt.h)
+
+ --with-tk=... Specifies the directory containing Tk's
+ configure file (tkConfig.sh).
+
+ --with-tkinclude=... Specifies the directory containing Tk's
+ private include files (such as tkInt.h)
+
+Some of the defaults in "configure" can be overridden by environment
+variables. This is a convenience intended for environments that are
+likely to affect any program that you configure and install.
+
+The following environment variables are supported. If you use these,
+consider adding them to your .login file so that other installation
+scripts can make use of them.
+
+CC C compiler
+CFLAGS Flags to C compiler
+CPPFLAGS Flags to C preprocessor
+LDFLAGS Flags to linker
+LIBS Libraries
+CONFIG_SHELL Shell for configure and Make
+
+Settings can also be given on the command line. For example, you
+could tell configure about flags from a Bourne-compatible shell as
+follows:
+
+ CFLAGS=-O2 LIBS=-lposix ./configure
+
+Although configure will do some searching for Tcl (and all of this
+discussion holds true for Tk as well), configure likes to find the Tcl
+source directory in the parent directory of Expect and will use that
+Tcl if it exists. To make sure Tcl can be found this way (if it is
+located somewhere else), create a symbolic link in Expect's parent
+directory to where the Tcl directory is.
+
+By default, configure uses the latest Tcl it can find. You can
+override this by creating a symbolic link of "tcl" which points to the
+release you want.
+
+If you can't or don't want to create symbolic links, you can instead
+indicate where Tcl and Tk are by using the following environment variables:
+
+with_tcl Directory containing Tcl configure file (tclConfig.h)
+with_tclinclude Directory containing Tcl include files
+with_tkinclude Directory containing Tk include files
+with_tk Directory containing Tk binary library (tkConfig.h)
+
+--------------------
+Multiple-Architecture Installation
+--------------------
+
+You might want to compile a software package in a different directory
+from the one that contains the source code. Doing this allows you to
+compile the package for several architectures simultaneously from the
+same copy of the source code and keep multiple sets of object files on
+disk.
+
+To compile the package in a different directory from the one
+containing the source code, you must use a version of make that
+supports the VPATH variable. GNU make and most other recent make
+programs can do this.
+
+cd to the directory where you want the object files and executables to
+go and run configure. configure automatically checks for the source
+code in the directory that configure is in and in .. If configure
+reports that it cannot find the source code, run configure with the
+option --srcdir=dir, where dir is the directory that contains the
+source code.
+
+You can save some disk space by installing architecture-independent
+files (e.g., scripts, include files) in a different place than
+architecture-dependent files (e.g., binaries, libraries). To do this,
+edit the Makefile after configure builds it, or have configure create
+the Makefile with the right definitions in the first place. To have
+configure do it, use the following options to configure:
+
+ --prefix=indep
+ --exec-prefix=dep
+
+where dep is the root of the tree in which to store
+architecture-dependent files and indep is the root in which to
+store -dependent files. For example, you might invoke configure this
+way:
+
+ configure --prefix=/usr/local/bin --exec-prefix=/usr/local/bin/arch
+
+--------------------
+Test Suite
+--------------------
+
+Patterned after the Tcl test suite, I have begun building a test suite
+in the subdirectory "test". It is still incomplete however you may
+use by typing "make test" in this directory. You should then see a
+printout of the test files processed. If any errors occur, you'll see
+a much more substantial printout for each error. See the README file
+in the "tests" directory for more information on the test suite.
+
+Note that the test suite assumes the existence of certain programs to
+use as interactive programs. If you are missing these or they behave
+differently, errors may be reported. Similarly, the test suite
+assumes certain other things about your system, such as the sane stty
+parameters.
+
+You may also try some of the programs distribute in the example
+directory (see the README file in the example directory). They are a
+strong indication of whether Expect works or not. If you have any
+problems with them, let me know.
+
+--------------------
+Uninstalling
+--------------------
+
+"make uninstall" removes all the files that "make install" creates
+(excluding those in the current directory).
+
+--------------------
+Cleaning Up
+--------------------
+
+Several "clean" targets are available to reduce space consumption of
+the Expect source. The two most useful are as follows:
+
+"make clean" deletes all files from the current directory that were
+created by "make"
+
+"make distclean" is like "make clean", but it also deletes files
+created by "configure"
+
+Other targets can be found in the Makefile. They follow the GNU
+Makefile conventions.
+