KLH notes on MM building/installation

Quick build summary:
    (1) Build CCMD.
	- Connect to "ccmd" dir.
		cd ccmd
	- Clean up old stuff if necessary
		make realclean (or make clean)
	- Examine Makefile to see which systems are supported, then make
	  the appropriate one if necessary.
	  Check machdep.h if porting!
		make <osname>
    (2) Build MM.
	- Connect to "mm" dir.
		cd mm
	- Clean up old stuff if necessary
		make clean
	- See which systems are already supported:
		ls -l sysh
	- Select one or edit one to create a new port.
	- Create a new "config.h" for your installation, which
		includes the sysh/s-XXX.h file above.  Use existing
		config.h files as models; refer to config.h-generic
		for some documentation.

--> ln -s config.h-cunix config.h

	- Make it with:
		make <osname>

--> make fdc-solaris

-------------------------------------
A2-02-28:
	MM: Flushed "getmail.c" - not used by anything, appears to have
		been an early version of "movemail.c".
	MM: Flushed "localfile.c" - not used by anything, appears to have
		been absorbed into "file.c".

A2-02-23: MM now merged.
	MM: Merged FDC's latest stuff with KLH's.
	MM: Some re-organization of config stuff.  Some parameters moved
		from s-xxx.h files into config.h.  Some but not all
		s-xxx.h files modified accordingly.
		The updated ones:
			s-sun40.h
			s-linux.h
			s-bsd44.h
			s-decosf.h
			s-sun58.h
	MM: Revised Makefile to be more like CCMD's.  Now say "make <sys>"
		rather than "make all".

A2-02-19:
	CCMD: Massive re-write of ccmdlib.h and machdep.h to use new
		OS-dep definition scheme, plus many source tweaks to
		conform to new regime.
	CCMD BUG: The auto-generated cmfnc.h, which ccmd.h includes,
		contains OSD conditionals that are not defined by the time
		a ccmd client attempts to compile!  In particular
		CCMD_OS_UNIX is not defined.


A2-02-18: Start merge with FDC's latest stuff, CCMD first.
	CCMD: Ensured all public patches (y2k, y2k1) and Panix mods
		merged, then merged with FDC's latest.
	CCMD: Did NOT add msleep() from fdc's ccmd/datime.c; it belongs
		in MM, not CCMD.
	CCMD: Fixed all HAVE_ macros to ensure always defined 0 or 1 and tested
		accordingly.
	CCMD: Attempted to put all OSD feature defs into machdep.h, and all
		portability compensation defs into ccmdlib.h.  But the
		overall structure of ccmdlib.h, machdep.h, and site.h,
		while improved, is still a mess.


<various>: Ported to Solaris and Linux.
	CCMD: Added TERMIOS support.
	CCMD/MM: Changed signal handling definitions to allow using sigsets.


A0-01-01: Port to FreeBSD.
	CCMD: Lots of port stuff.  OSD header files are still a big mess,
		should clean up machdep.h, site.h, ccmdlib.h.
	Flushed use of sys_errlist[] for strerror().
	Replaced setkey by mmsetkey to avoid conflict with setkey(3)
	Replaced use of ftime() with gettimeofday() in dates.c.
	Fixed bug in mm-trans; will need re_comp replaced by newer regex stuff.
	MUST FIX: use of int for time_t.


94-02-02: MM crashed due to bug in CCMD; parse() found a char with value 0214
	and passed it to checkbrk() which used it to index into _cmact and
	jumped into oblivion.  In general, code seems to use "char", which
	is susceptible to sign-extension, rather than "unsigned char" or
	masks, and is highly vulnerable to meta-chars that have bit 0200 set.
	Sigh.

93-06-28: Applied all patches up to and including patch.04.

	Modified s-sun40.h to reflect Oracle environment.  Original saved as
	s-sun40.h-orig.

	Modified config.h for personal MM pathnames (/private/mm, not
	/usr/local/lib/mm).

	Modified Makefile so that "make install" would put things in right
	places per above. It doesn't work very well, though; the chmod
	2752 of movemail in particular requires appropriate access to
	work.  Also it's not clear if the group should be "mail" as specified,
	or "daemon" as used on swamp.us.oracle.com.  Trying daemon for now.

Notes on MM configuration parameters:

    - config.h is intended to the repository of ALL installation-specific
	parameters (as opposed to OS-specific).  There are only a few things
	that are not defaulted by anything else, which are listed in
	the file config.h-generic.
    - config.h is the only thing that includes the s-*.h files.
	This inclusion should be done first, so the body of config.h can
	change anything done by s-*.h (even if this requires doing undefs).
	This is simpler than conditionalizing all the s-*.h parameters
	(not possible anyway given that most are only tested for def/undef
	rather than value).
    - pathnames.h is only included by mm.h and comes after config.h, so
	any definition in config.h will override the defaults
	in pathnames.h.

Notes on configuration pathnames in pathnames.h:

    The defaults can all be redefined in config.h.  This is most important
    for those which are noted as unchangeable by the user (using the "Set"
    command to change a parameter); these are marked with [*].

 *  TMPDIR	"/usr/tmp"
	Unchangeable; for temp files fed to gnuemacs.
	"Set temp-directory" can be used to direct all other temp
	files, which otherwise default to $HOME or /tmp.

 *  SPOOL_DIRECTORY	"/usr/spool/mail"
	Unchangeable: only used by newmail.c to check for new mail.

    EDITOR	"emacs"
	"Set editor" can set this.
	Defaults to EDITOR env variable.

    PAGER	"more"
	"Set crt-filter" can set this.  Defaults to #defined value.

    SPELLER	"ispell"
	"Set speller" can set this.  Defaults to #defined value.

    BUGSTO	"bug-mm"
	Unchangeable: bug address, only in sendcmds.c, misc.c
	But note "bug-mm" can be vectored with the "define" command, as in
	"define bug-mm <foo>".  This should be set up in the SYSINIT file.

-- The following files should all be vectored off LIBDIR but aren't. --

 *  LIBDIR	"/usr/local/lib/mm"
	Unchangeable: used to find user-group init file on startup, by init.c
	(pathname of "LIBDIR/<groupname>.ini")
	This seems to be its ONLY use!  Sigh.

 *  SYSINIT	"/usr/local/lib/mm/mm.conf"
	Unchangeable: specifies system-wide init file on startup, used
	by init.c.  Also used by sys-prof.c (interactive standalone to
	generate this init file).

    HELPFILE	"/usr/local/lib/mm/mm.help"
	"Set help-file" can set this.  Defaults to #defined value.
	This variable doesn't appear to be actually used by any code, although
	this file does exist!  Maybe an artifact of old versions.

    HELPDIR	"/usr/local/lib/mm/help"
	"Set help-dir" can set this.  Defaults to #defined value.
	Used to find help files, by help.c.

    MMAIL_PATH	"/usr/local/lib/mm/mmail.el"
	"Set mmail-path" can set this.  Defaults to #defined value.
	Used as path to gnuemacs mmail mode elisp file, if "gnuemacs-mmail"
	is "yes".

    MOVEMAIL	"/usr/local/lib/mm/movemail"
	"Set movemail-path" can set this.  Defaults to #defined value.
	Used as path for program to move mail from spool directory.

 *  USAGEFILE	"/usr/local/lib/mm/usage.log"
	Only if USAGE conditional defined.
	Unchangeable: specifies location to append MM usage info on exit.
