This code was initially programmed in parallel with SunOS 4.1.4 and Linux 2.0.x (with libc5), now mostly on Linux. It is made to compile/run on a variety of UNIXes. You can find out your type of system by running: uname -a ***** UNIX COMPILING INFO ***** o The quick/in-a-nutshell way ./configure make o The detailed way FIRST, run: ./configure --help from the main directory. This will show you any compile-time options you can enable/disable. SECOND, run: ./configure Add any options to the end of this (if you wish) as shown in ./configure --help This will generate the Makefile for the compiler and a config.h file in the hdrfiles/ directory. System specific help MAY be under: README. THIRD, to compile: "make" compiles the talker code and resolver_clipon "make test" makes a.out test binary from .c files "make resolver_clipon" makes JUST the resolver_clipon binary "make clean" removes a.out, server, resolver_clipon, core, objfiles/* "make logclean" removes logfiles/*.log and logfiles/lastcommand.* "make objclean" removes object binaries from compile in objfiles/ "make smtpclean" removes outgoing email queues from maildir/smtp_*/ If you're on a system with multiprocessors you can pass the -j option to 'make' to take advantage of them. So, if you're on a 2 processor system, you could do: make -j3 If you want to log the make (to save the warnings or something) you could do: make >& make.log & Remove the last & if you don't want it to run in the background. IF YOU DON'T HAVE MAKE: If you don't have 'make', i.e. you get a message like: "make: Command not found" you can use the no_make_compile script which uses shell scripting to simulate make compiling. To do this copy the "no_make_compile" script from the utils/ directory up to the main code directory, edit the variables in it just like the Makefile, then type: ./no_make_compile It does take SOME arguments (like the Makefile) "clean" "objclean" "logclean" STARTUP/SHUTDOWN: ./restart will boot the talker ./shutdown will shut down the talker ./shutdown -c will .reinit the talker ./shutdown - will send to the talker (e.g. -TERM will send a SIGTERM) To run the talker without fork()ing it into the background (usually for debugging) use the -d switch on the command line. If you use the restart script, run ./restart -d or ./restart -d If you just run the binary by itself, run ./server -d or ./server -d NOTE: Do NOT kill a talker with 'kill -9' unless ABSOLUTELY NECESSARY and no other kill signals work. RECOMPILING: The code MUST be recompiled if changes are made to any .c or .h file. When you re-compile the talker code for changes to take effect AND the talker is still running, I, personally, run: make .shutdown -r (from inside the talker) Some systems do not let you overwrite a running binary, to get around this, you can do: make test rm server ; cp a.out server .shutdown -r (from inside the talker) RECONFIGURING: The only time you should run ./configure again is: A) When you move to a different operating system/platform B) When you want one of the debugging information logged types enabled ***** END OF UNIX COMPILING INFO ***** ***** WINDOWS NT/95 COMPILING INFO ***** see README.windows ***** END OF WINDOWS COMPILING INFO ***** ***** ENVIRONMENT INFO ***** Operating Systems: ----------------- SunOS .. 4.1: sun (abbr.: SunOS4) Solaris: sun __svr4__ (abbr.: solaris) Silicon Graphics: sgi Atari ST/TT MiNT: atarist Amiga, DICE: AMIGA _DCC Amiga, SAS/C: AMIGA __SASC BeOS __BEOS__ Linux 2.1.3/2.95.2: linux /usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.2/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__ELF__ -Dunix -D__i386__ -Dlinux -D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__linux -Asystem(posix) NeXT: NeXT Sequent: _SEQUENT_ Ultrix: ultrix IBM RS6000 _AIX _IBMR2 HP-UX hpux OS/2 OS2 (not always set by the compiler???) ??? M_UNIX FreeBSD 4.3 (2.95.3) __FreeBSD__ /usr/libexec/cpp -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -Di386 -D__FreeBSD__=4 -D__FreeBSD_cc_version=430000 -Dunix -D__i386__ -D__FreeBSD__=4 -D__FreeBSD_cc_version=430000 -D__unix__ -D__i386 -D__unix -Acpu(i386) -Amachine(i386) -Asystem(unix) -Asystem(FreeBSD) OpenBSD 2.9 (2.95.3) (i386) __OpenBSD__ /usr/lib/gcc-lib/i386-unknown-openbsd2.9/2.95.3/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__unix__ -D__i386__ -D__OpenBSD__ -D__unix__ -D__i386__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) Apple Unix AUX /* add -D_POSIX_SOURCE to CFLAGS */ Windows NT/95/98 _WIN32, WINNT, _WINNT Processor Hardware: ------------------ Sparc sparc Intel (MWerks/Be) __INTEL__ Intel (gcc) i386 __i386 __i386__ Compilers: --------- gcc: __GNUC__ Cygnus gcc for Win32 __CYGWIN32__ resp. __CYGWIN__ Metrowerks (Be) __MWERKS__ ***** END OF ENVIRONMENT INFO ***** ***** FIRST-HAND SUCCESSFUL COMPILES ****** Linux w/glibc 2.1.3 (warn1) Linux w/libc 5.x (warn3) AIX 3 (warn3) FreeBSD 4.3-STABLE (warn3) OpenBSD 2.9 (warn3) SunOS 4.1.4 (?) Solaris 2.5 x86 (?) ***** FIRST-HAND SUCCESSFUL COMPILES ******