# tcl3270 Build and Install Instructions

To build tcl3270, type:

        ./configure
        make

To install tcl3270 in the default install directory (`/usr/local/bin`), type:

        make install

## Notes on the Tcl Library

tcl3270 uses Tcl 8.3 by default. It assumes that the header file `tcl.h` has been installed in the directory `/usr/local/include`, and that the Tcl library `libtcl8.3.a` has been installed in the directory `/usr/local/lib`. If you have a different version of Tcl, or it is installed in different directories, you will need to pass additional options to the `configure` script.

To use a different version of Tcl, pass the `--with-tcl=` option to `configure`, specifying the other version, e.g:

        ./configure --with-tcl=8.2

If you have the Tcl header files or libraries installed in directories other than those selected by default, you must pass these options to `configure`. To specify a different header file directory, put a `-I` option in the `CPPFLAGS` variable. To specify a different library directory, put a `-L` option in the `LDFLAGS` variable. For example (using bash, ksh, or sh):

        ./configure CPPFLAGS=-I/auto/unsupported/tcl LDFLAGS=-L/auto/unsupported/lib

tcl3270 has not been tested with versions of tcl other than 8.2 and 8.3.

## Using Extended Tcl (TclX)

tcl3270 can also use Extended Tcl (TclX). To use Extended Tcl, pass the `--with-tclx` option to `configure`, e.g.:

>     ./configure --with-tclx

Note that Extended Tcl releases tend to lag behind standard Tcl releases; when this was written, the current release of Extended Tcl was 8.2. So, to build tcl3270 with Extended Tcl 8.2, you must have Tcl 8.2 installed on your system, and you must explicitly specify the version of TclX with `configure`:

>     ./configure --with-tclx=8.2

## Notes for Solaris 2.x and Sun's C Compiler

Do not use Sun's BSD-compatibility compiler, `/usr/ucb/cc`. This is good advice in general, but in particular, tcl3270 will not build with it. You must have a directory containing `gcc` (preferred) or Sun's standard compiler in your $PATH ahead of `/usr/ucb`.

## Summary of `configure` Options

The tcl3270 `configure` script accepts the following options:

`--help` | Print a help message.
`--prefix=prefix` | Install architecture-independent files under prefix (defaults to `/usr/local`)
`--exec-prefix=eprefix` | Install architecture-dependent files (executables) under eprefix (defaults to same as prefix)
`--bindir=dir` | Install user executables (tcl3270) in dir (defaults to eprefix`/bin`)
`--sysconfdir=dir` | Install configuration files (character sets) in dir`/x3270` (defaults to prefix`/etc`).
`--with-tcl=version` | Use a different version of the Tcl library. The default is `8.3`.
`--with-tclx` `--with-tclx=version` | Use the Extended Tcl library. The TclX library must be the same version as the Tcl library. If an explicit version is specified, this changes the Tcl library version as well.
`--disable-ansi` | Leave out NVT (ANSI) support. Note that NVT support is required for TN3270E support.
`--disable-apl` | Leave out APL character support.
`--enable-dbcs` | Build in DBCS (Double Byte Character Set) support.
`--disable-ft` | Leave out IND$FILE file transfer support.
`--disable-local-process` | Leave out local process (connecting to "-e shell_command") support. This will be automatically disabled if the local system does not support the forkpty() library call.
`--disable-printer` | Leave out printer session (pr3287) support.
`--disable-ssl` | Leave out SSL (Secure Sockets Layer) support. SSL support requires the OpenSSL library.
`--with-ssl=dir` | Specify the directory where the OpenSSL library is installed.
`--disable-tn3270e` | Leave out TN3270E support.
`--disable-trace` | Leave out tracing support.

Leaving out all of the optional features will result in a smaller binary.