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.