Go forward to Testing the Compilation.
Go backward to Installing Taylor UUCP.
Go up to Installing Taylor UUCP.

Compiling Taylor UUCP
=====================

   If you have a source code distribution, you must first compile it for
your system.  Free versions of Unix, such as Linux, NetBSD, or FreeBSD,
often come with pre-compiled binary distributions of UUCP.  If you are
using a binary distribution, you may skip to the configuration section
(see Configuration.).

   Follow these steps to compile the source code.

  1. Take a look at the top of `Makefile.in' and set the appropriate
     values for your system.  These control where the programs are
     installed and which user on the system owns them (normally they
     will be owned by a special user `uucp' rather than a real person;
     they should probably not be owned by `root').

  2. Run the shell script `configure'.  This script was generated using
     the `autoconf' program written by David MacKenzie of the Free
     Software Foundation.  It takes a while to run.  It will generate
     the file `config.h' based on `config.h.in', and, for each source
     code directory, will generate `Makefile' based on `Makefile.in'.

     You can pass certain arguments to `configure' in the environment.
     Because `configure' will compile little test programs to see what
     is available on your system, you must tell it how to run your
     compiler.  It recognizes the following environment variables:

    `CC'
          The C compiler.  If this is not set, then if `configure' can
          find `gcc' it will use it, otherwise it will use `cc'.

    `CFLAGS'
          Flags to pass to the C compiler when compiling the actual
          code.  If this is not set, `configure' will use `-g'.

    `LDFLAGS'
          Flags to pass to the C compiler when only linking, not
          compiling.  If this is not set, `configure' will use the
          empty string.

    `LIBS'
          Libraries to pass to the C compiler.  If this is not set,
          `configure' will use the empty string.

    `INSTALL'
          The program to run to install UUCP in the binary directory.
          If this is not set, then if `configure' finds the BSD
          `install' program, it will set this to `install -c';
          otherwise, it will use `cp'.

     Suppose, for example, you want to set the environment variable `CC'
     to `rcc'.  If you are using `sh', `bash', or `ksh', invoke
     `configure' as `CC=rcc configure'.  If you are using `csh', do
     `setenv CC rcc; sh configure'.

     On some systems you will want to use `LIBS=-lmalloc'.  On Xenix
     derived versions of Unix do not use `LIBS=-lx' because this will
     bring in the wrong versions of certain routines; if you want to use
     `-lx' you must specify `LIBS=-lc -lx'.

     If `configure' fails for some reason, or if you have a very weird
     system, you may have to configure the package by hand.  To do
     this, copy the file `config.h.in' to `config.h' and edit it for
     your system.  Then for each source directory (the top directory,
     and the subdirectories `lib', `unix', and `uuconf') copy
     `Makefile.in' to `Makefile', find the words within `@' characters,
     and set them correctly for your system.

  3. Igor V. Semenyuk provided this (lightly edited) note about ISC
     Unix 3.0.  The `configure' script will default to passing `-posix'
     to `gcc'.  However, using `-posix' changes the environment to
     POSIX, and on ISC 3.0, at least, the default for `POSIX_NO_TRUNC'
     is 1.  This can lead to a problem when `uuxqt' executes `rmail'.
     `IDA sendmail' has dbm configuration files named
     `mailertable.{dir,pag}'.  Notice these names are 15 characters
     long.  When `uuxqt' compiled with the `-posix' executes `rmail',
     which in turn executes `sendmail', the later is run under the
     POSIX environment too.  This leads to `sendmail' bombing out with
     `'error opening 'M' database: name too long' (mailertable.dir)'.
     It's rather obscure behaviour, and it took me a day to find out
     the cause.  I don't use the `-posix' switch; instead, I run `gcc'
     with `-D_POSIX_SOURCE', and add `-lcposix' to `LIBS'.

  4. On some versions of BSDI there is a bug in the shell which causes
     the default value for `CFLAGS' to be set incorrectly.  If `echo
     ${CFLAGS--g}' echoes `g' rather than `-g', then you must set
     `CFLAGS' in the environment before running configure.  There is a
     patch available from BSDI for this bug.  (Reported by David Vrona).

  5. On AIX 3.2.5, and possibly other versions, `cc -E' does not work,
     reporting `Option NOROCONST is not valid'.  Test this before
     running configure by doing something like `touch /tmp/foo.c; cc -E
     /tmp/foo.c'.  This may give a warning about the file being empty,
     but it should not give the `Option NOROCONST' warning.  The
     workaround is to remove the `,noroconst' entry from the `options'
     clause in the `cc' stanza in `/etc/xlc.cfg'.  (Reported by Chris
     Lewis).

  6. You should verify that `configure' worked correctly by checking
     `config.h' and the instances of `Makefile'.

  7. Edit `policy.h' for your local system.  The comments explain the
     various choices.  The default values are intended to be
     reasonable, so you may not have to make any changes.

     You must decide what type of configuration files to use; for more
     information on the choices, see See Configuration.

     You must also decide what sort of spool directory you want to use.
     If this is a new installation, I recommend `SPOOLDIR_TAYLOR';
     otherwise, select the spool directory corresponding to your
     existing UUCP package.

  8. Type `make' to compile everything.

     The `tstuu.c' file is not particularly portable; if you can't
     figure out how to compile it you can safely ignore it, as it is
     only used for testing.  To use STREAMS pseudo-terminals, tstuu.c
     must be compiled with `-DHAVE_STREAMS_PTYS'; this is not
     determined by the configure script.

     If you have any other problems there is probably a bug in the
     `configure' script.

  9. Please report any problems you have.  That is the only way they
     will get fixed for other people.  Supply a patch if you can (
see Patches.), or just ask for help.