*****************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 header, or in the header. Define -DHAVE_REGEX_H in REGEXDEFS if it is in the header, or -DHAVE_RX_H if it is in the 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