
*****************WARNING******************
Do not attempt to compile individual programs
in individual program subdirectories!
*****************WARNING******************

MAKE CHANGES IN THE TOP-LEVEL MAKEFILE

CALL MAKE FROM THE TOP LEVEL

I have a weakness for complex, multilevel makefiles.  Therefore, the
makefiles included here are complex and multilevel.  Always run make from
the top-level directory.  Try 'make help' for a listing of possible
targets (the only one left out is randstr: compile it with make randstr).
All the important variables are defined in the top-level makefile, and
most of the make targets will crash and burn if they do not find the
variables that they are looking for.

The good part of this is that except for the datfiles tree, the
sub-makefiles are all very simple.  All the programs have rules of
the form: program: program.o, with the appropriate link command.
The only target safe to call in individual directories is clean.

The makefiles for the datfiles subdirectory are complex in an attempt to
avoid distributing any more data than needed.  The offensive files are
distributed in unrotated format; the make files have to rotate these
files before strfiling them.  The make clean routine has to be able to
delete the rotated files without touching the unrotated ones.

Pretty much everything is configurable in the top-level makefile, and it
mostly has pretty decent comments telling you what it is that you're
configuring.  Read and change it as necessary.

Amy A. Lewis    alewis@email.unc.edu


Notes for non-Linux users
-------------------------

The only system-dependant thing you should need to worry about is which
C function library to use for regular expressions.  Two are supported:
the BSD regex library (re_comp/re_exec), and the POSIX regex library
(regcomp/regexec).  Which you should use depends on what functions are
available, and which performs faster for you.

If neither are available, you could try compiling the GNU Rx library,
which offers a high-performance regular expression library with both BSD
and POSIX interfaces.  This is available at your nearest GNU software
mirror.

To select the BSD regex library, add -DBSD_REGEX to REGEXDEFS in the
top-level Makefile.  To select the POSIX regex library, add add
-DPOSIX_REGEX to REGEXDEFS.  If neither is defined, no regular
expression support will be included.

Using the POSIX regex library requires the POSIX regex data structures
to be declared.  This might be in the <regex.h> header, or in the <rx.h>
header. Define -DHAVE_REGEX_H in REGEXDEFS if it is in the <regex.h>
header, or -DHAVE_RX_H if it is in the <rx.h> header.  If it turns out
to be somewhere else for your platform, please report this to the
current fortune-mod maintainer.

The -DHAVE_REGEX_H and -HAVE_RX_H defines are also applicable to the BSD
regex library, but as they do not use custom data structures, not using
them should not result in anything more than "function not declared"
warnings.

 -- Dennis L. Clark <dbugger@progsoc.uts.edu.au>
