mh-gen


     NAME
          mh-gen - generating the MH system

     READ THIS
          This documentation describes how to configure, generate, and
          install the UCI version of the RAND MH system.  Be certain
          to read this document completely before you begin.  You
          probably will also want to familiarize yourself with the MH
          Administrator's Guide before you install MH.  A copy can be
          found in the file doc/ADMIN.doc is the MH sources.

     DISCLAIMER
          Although the MH system was originally developed by the RAND
          Corporation, and is now in the public domain, the RAND
          Corporation assumes no responsibility for MH or this
          particular modification of MH.

          In addition, the Regents of the University of California
          issue the following disclaimer in regard to the UCI version
          of MH:
               Although each program has been tested by its
               contributor, no warranty, express or implied, is made
               by the contributor or the University of California, as
               to the accuracy and functioning of the program and
               related program material, nor shall the fact of
               distribution constitute any such warranty, and no
               responsibility is assumed by the contributor or the
               University of California in connection herewith.

          This version of MH is in the public domain, and as such,
          there are no real restrictions on its use.  The MH source
          code and documentation have no licensing restrictions
          whatsoever.  As a courtesy, the authors ask only that you
          provide appropriate credit to the RAND Corporation and the
          University of California for having developed the software.

     GETTING HELP
          MH is a software package that is neither supported by the
          RAND Corporation nor the University of California.  However,
          since we do use the software ourselves and plan to continue
          using (and improving) MH, bug reports and their associated
          fixes should be reported back to us so that we may include
          them in future releases.  The current computer mailbox for
          MH is Bug-MH@ICS.UCI.EDU (in the ARPA Internet), and
          ...!ucbvax!ucivax!bug-mh (UUCP).

          Presently, there are two Internet discussion groups,
          MH-Users@ICS.UCI.EDU and MH-Workers@ICS.UCI.EDU.  MH-Workers
          is for people discussing code changes to MH.  MH-Users is
          for general discussion about how to use MH.  MH-Users is
          bi-directionally gatewayed into USENET as comp.mail.mh.

     HOW TO GET MH
          Since you probably already have MH, you may not need to read
          this unless you suspect you have an old version.  There are
          two ways to get the latest release:

          1.  If you can FTP to the ARPA Internet, use anonymous FTP
          to ftp.ics.uci.edu [128.195.1.1] and retrieve the file
          pub/mh/mh-6.8.tar.Z.  This is a tar image after being run
          through the compress program (approximately 1.8MB).  There
          should also be a README file in that directory which tells
          what the current release of MH is, and how to get updates.

          This tar file is also available on louie.udel.edu
          [128.175.1.3] in portal/mh-6.8.tar.Z.  You may also find MH
          on various other hosts; to make sure you get the latest
          version and don't waste your time re-fixing bugs, it's best
          to get it from either ftp.ics.uci.edu or louie.udel.edu.

          2.  You can send $75 US to the address below.  This covers
          the cost of a 6250 BPI 9-track magtape, handling, and
          shipping.  In addition, you'll get a laser-printed hard-copy
          of the entire MH documentation set.  Be sure to include your
          USPS address with your check.  Checks must be drawn on U.S.
          funds and should be made payable to:

                    Regents of the University of California

          The distribution address is:

                    Univeristy of California at Irvine
                    Office of Academic Computing
                    360 Computer Science
                    Irvine, CA  92717  USA

                    +1 714 856 5153

          Sadly, if you just want the hard-copies of the
          documentation, you still have to pay the $75.  The tar image
          has the documentation source (the manual is in roff format,
          but the rest are in TeX format).  Postscript formatted
          versions of the TeX papers are available, as are crude tty-
          conversions of those papers.

     SYNOPSIS
          MAKE

     DESCRIPTION
          This is a description of how one can bring up an MH system.
          It is assumed that you have super-user privileges in order
          to (re-)install MH.  Super-user privileges are not required
          to configure or generate MH.

          Become the super-user and cd to /usr/src/local/ (or whatever
          you keep your local sources).  The distribution tape
          contains the hierarchy for the mh.6-8/ directory.  Bring the
          sources on-line:

          # cd /usr/src/local
          % tar xv
          % cd mh-6.8

     CONFIGURATION
          First, go to the conf/ directory.

          % cd conf/

          This directory contains files that will produce source files
          tailored for your choice of MH configuration.  You should
          edit only the file MH.  This file contains configuration
          directives.  These configuration directives are read by the
          mhconfig program to produce customized files.

          For examples of various configurations, look in the
          directory conf/examples/.  The file MH provided in conf/ is
          a reasonable default.  Lines beginning with `#' are
          comments, and are not otherwise interpreted.

          Here are the MH configuration directives available.  Be sure
          to read through this list completely before attempting to
          decide what directives are appropriate for your system.

          More information on some of these options is available in
          the the Administrator's Guide.  If you do not have a printed
          copy, you should configure your system with the default
          configuration file, MH, then generate and print a copy of
          the guide (as described below).

       Installation paths
          bin: /usr/local
               The directory where user-invoked programs go (see
               manual section 1).

          etc: /usr/local/lib/mh
               The directory where pgm-invoked programs go (see manual
               section 8).

          mail: /usr/spool/mail
               The directory where the maildrops are stored.  If this
               pathname is absolute (i.e., begins with a / ), then the
               user's maildrop is a file called $USER in this
               directory.  If the pathname is not absolute, then the
               user's maildrop is in the user's home directory under
               the given name.

          mandir: /usr/man
               The parent directory of the manual entries.

          manuals: standard
               Where manual entries should be installed, relative to
               the directory given with mandir.  Either local to
               install manual entries under manl/, or new to install
               manual entries under mann/, or old to install manual
               entries under mano/, or standard to install manual
               entries under man?/, or bsd44 to install manual entries
               as man?/page.0, or gen to generate but not install
               them, or none to neither generate nor install them.

               Any of these values may have the suffix /cat appended
               to it.   In that case, the manual entries will be
               formatted with nroff -man and they will be installed in
               the corresponding cat? directories.

               For example, to install manual entries under
               /usr/man/u_man/man?, use standard and /usr/man/u_man
               for mandir.  To install formatted manual entires under
               /usr/contrib/man/cat?, use standard/cat and
               /usr/contrib/man for mandir.  To install formatted
               manual entries using the BSD44 convention, use
               bsd44/cat.

          chown: /etc/chown
               The location of the chown(8) on your system.  If chown
               is in your search path, just use the value of chown.
               On SYS5 systems, this should probably be /bin/chown.

          cp: cp
               The command to copy files when installing, if not cp.
               (Some sites use cp -p.)

          ln: ln
               The command to link files together in the source tree,
               if not ln.  If you're using something like lndir to
               keep your compile tree separate from your source tree,
               set this to ln -s or cp.

          remove: mv -f
               How MH should make backup copies of existing files when
               installing new files.  To simply remove the old files,
               use rm -f.

       Compiler/loader
          cc: cc
               The name of your C compiler, if not cc.

          ccoptions: -O
               Options given directly to cc(1).  The most common is -M
               if you're running MH on an ALTOS.  This defaults to -O.
               If you define this and want to keep -O, be sure to
               include it explicitly.  If you're using the GNU C
               compiler, it should include `-traditional'.  See
               options: for `-D' options.

          curses: -lcurses -ltermlib
               This should be the loader option required to load the
               termcap(3) and curses(3) libraries on your system.  On
               SYS5 systems, it probably should be just -lcurses.
               Some sites have reported that both -lcurses and
               -ltermlib are necessary.

          ldoptions: -s
               Options given directly to ld(1) (via cc) at the
               beginning of the command line.  Useful for machines
               which require arguments to tell ld to increase the
               stack space (e.g. the Gould, which uses -m 8).
               Usually, -s is a good choice in any event.

          ldoptlibs:
               Options given directly to ld(1) (via cc) at the end of
               the command line.  The two most common are: -ldbm if
               you're running MMDF with the dbm package; and, -lndir
               if you are generating MH on a system which does not
               load the new directory access mechanism by default
               (e.g., 4.1BSD, SYS5).  If you don't have libndir on
               your system, the sources are in miscellany/libndir/.

          lex: lex -nt
               Alternative version of lex.  Used in zotnet/tws/.

          oldload: off
               This controls how MH will try to process library object
               files to eliminate local symbols.  Support for the
               ALTOS loader if on.  Support for loaders not handling
               `-x -r' correctly if none.

          ranlib: on
               Support for systems with ranlib(1).  For SYSTEM 5
               systems, this should be off which tells MH to use
               lorder and tsort instead.  Some SYSTEM 5 sites reported
               that running this isn't always sufficient.  If this is
               the case, then you should edit conf/makefiles/uip to
               include ../sbr/libmh.a and ../zotnet/libzot.a twice in
               the LIBES variable.

       Message Transport System
          mts: sendmail
               Which message transport system to use.  Either mmdf to
               use MMDF as the transport system, mmdf2 to use MMDF-II
               as the transport system, sendmail to have SendMail as
               the transport system, zmailer to have ZMAILER as the
               transport system, or, mh to have MH as the transport
               system.

               On UNIX systems supporting TCP/IP networking via
               sockets you can add the suffix /smtp to the mts
               setting.  This often yields a superior interface as MH
               will post mail with the local SMTP server instead of
               interacting directly with MMDF or SendMail.  Hence, for
               TCP/IP UNIX systems, the /smtp suffix to either
               sendmail or mmdf2 is the preferred MTS configuration.
               The /smtp suffix is described in detail in the
               Administrator's Guide; be sure to set servers: as
               described in mh-tailor(8) if you use this option.

          mf: off
               Support for mail filtering on those systems in which
               the message transport system isn't integrated with UUCP
               This option is strictly for an MH system using either
               MMDF-I as its transport system or one using stand-alone
               delivery.

       UCI BBoards Facility
          bboards: off
               If on, include support for the UCI BBoards facility.
               BBoards may be enabled with any mts setting.  If off,
               the BBoard reading program bbc will not be installed.
               If nntp, include support for the UCI BBoards facility
               to read the Network News via the NNTP.  If pop
               (formerly popbboards: on), include support for the UCI
               BBoards facility via the POP3 service; this setting
               requires pop: on.

          bbdelivery: off
               If off, the BBoards delivery agent and library files
               will not be installed.  If on, and you set bboards: to
               something besides off, then the BBoards delivery agent
               and library files will be installed in the bbhome
               directory (see below).  To read remote BBoards, the
               usual configuration would have bbc talk to a POP3 or
               NNTP server.  However, it may be useful to set this to
               off if you NFS mount the bbhome directory from another
               host and want to use bbc to read those files directly.

          bbhome: /usr/spool/bboards
               The home directory for the BBoards user.

       Post Office Protocol
          pop: off
               Support for POP service.  This allows local delivery
               for non-local users (a major win).  See
               support/pop/pop.rfc for more information on the POP.
               This option currently works only on UNIX systems with
               TCP/IP sockets.  (It doesn't hurt to enable this option
               regardless of whether or not you intend to use POP.)
               See also bboards: pop to enable reading bboards with
               the POP.

          popdir: /usr/etc
               The directory where the POP daemon (popd) will be
               installed.

          options:
               `-D' options to cc(1).

            APOP='/etc/pop.auth'
                 This option indicates that the POP daemon will
                 support the non-standard APOP command, and specifies
                 the name of APOP authorization database.  The APOP
                 command provides a challenge-based authentication
                 system using the MD5 message digest algorithm.  This
                 facility is documented in The Internet Message (ISBN
                 0-13-092941-7), a book by Marshall T. Rose.

                 This option also causes the popauth program to be
                 installed, which allows the administrator to
                 manipulate the APOP authorization database.  For more
                 details, see support/pop/pop-more.txt and the
                 Administrator's Guide.

            DPOP
                 This option indicates that POP subscribers do not
                 have entries in the passwd(5) file, and instead have
                 their own separate database (a win).

            KPOP
                 Support for KERBEROS with POP.  This code builds
                 popd, inc and msgchk to support only the kpop
                 protocol.  This code is still experimental, but is
                 available for those sites wishing to test it.

            MPOP
                 This option indicates that the POP daemon will
                 support the non-standard XTND SCAN command which
                 provides performance enhancements when using the POP
                 over low-speed connections.  This option also causes
                 an interactive POP client program, popi, to be
                 compiled and installed.  A man page for the popi
                 program is also provided.

                 These extensions are described in The Internet
                 Message, a book by Marshall T. Rose.  For more
                 details, see support/pop/pop-more.txt.  Note: this
                 option requires bboards: pop.

            POP2
                 Have the POP daemon understand the older POP2
                 protocol as well as the MH POP3 protocol - a major
                 win.  The POP daemon auto-magically determines which
                 POP protocol your client is using.  If you're
                 enabling POP service, there's no reason not to enable
                 this option as well.  See also POPSERVICE.

            POPSERVICE
                 The port name the MH POP will use.  For historical
                 reasons, this defaults to pop.

                 In 1987, the MH POP protocol (POP version 3) was
                 published as RFC1081 and was assigned its own port
                 number (110), which differs from the original POP
                 (version 1 and 2) port number (109).

                 To have MH POP use the new assigned port number, set
                 POPSERVICE='pop3', and be sure that this service name
                 is listed in your /etc/services file on both POP
                 client and server hosts as 110/tcp.  If you enable
                 POP2, you can safely leave POPSERVICE undefined
                 unless you are using POP3 clients besides MH.

            RPOP
                 This option indicates that support for the UNIX
                 variant of POP, RPOP, which uses privileged sockets
                 for authentication be enabled.  This peacefully co-
                 exists with the standard POP.

            SHADOW
                 Indicates that the popd POP server can find encrypted
                 passwords in the /etc/shadow file (and not in the
                 /etc/passwd file).  It should be used only for some
                 (newer) SYSTEM 5 systems.

              The APOP and MPOP non-standard POP facilities are
              documented in The Internet Message (ISBN 0-13-092941-7),
              a book by Marshall T. Rose.  For more details, see
              support/pop/pop-more.txt.  The APOP option peacefully
              co-exists with the standard POP.  The MPOP option
              requires bboards: pop.

      Shared libraries
         sharedlib: off
              If sun4, makes libmh.a into a SunOS 4.0 (and later)
              shared library.  If you enable this, be sure to also use
              options SUN40.  If sys5, makes libmh.a into a SYS5 R4
              (and later) shared library.  If you enable this, be sure
              to also use options SVR4.

         slflags: -pic
              The compiler flags to produce position independent code.

         slibdir: /usr/local/lib
              The directory where the MH shared library should go.

           Under SunOS (sun4)
              Since some MH programs are setuid, they'll only look for
              the library in trusted locations.  Putting the library
              somewhere besides /usr/lib or /usr/local/lib is not
              advisable.

              If you must do this, be sure that you add the path given
              by slibdir to the compiler's library search list (e.g.,
              ldoptions: -L/usr/mh/lib) and make sure the path starts
              with a leading `/'.

              You may need to run ldconfig(8) manually whenever a new
              shared object is installed on the system.  See ld(1) for
              more information about using shared libraries.

           Under Solaris 2.0 (and newer)
              The above instructions for SunOS apply, except you
              should set the run-time library search path using `-R'
              instead of `-L' (e.g., ldoptions: -R/usr/mh/lib).

      General System Dependencies
         You should include the following directives which are
         appropriate for your version of UNIX.  If you don't know what
         an option does, it probably doesn't apply to you.

         mailgroup: off
              If set, inc is made set-group-id to this group name.
              Some SYS5 systems want this to be set to mail.  Set this
              if your /usr/spool/mail is not world-writeable.

              Note that slocal doesn't know how to deal with this, and
              will not work under these systems; just making it set-
              group-id will open a security hole.  If you're using
              mailgroup, you should remove slocal (and its man page)
              from your system.

         signal: int
              The base type (int or void) of the function
              parameter/return value of signal(2).  The default is
              int.  Set signal void on systems which use this type
              (e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later).

         sprintf: char *
              The return value of the sprintf library routine.  This
              defaults to char *.  Set this to int if you have an
              older version of SYSTEM 5 which has this routine return
              an int type.

         options:
              `-D' options to cc(1).

           ALTOS
                Use on XENIX/v7 systems.  Also, be sure to use options
                V7.

           ATTVIBUG
                This option causes MH to return to the What now?
                prompt if your initial editor is vi and it exits with
                non-zero status.  Use on Sun OS 4.1 and other systems
                where the /usr/ucb/vi editor was changed to exit with
                its status equal to the number of pseudo-errors
                encountered during the edit.  This causes a problem
                for programs that test the exit status of their editor
                and abort if the status is non-zero.  (This includes
                MH and programs like /usr/etc/vipw).

           AUX
                Use with AUX systems.

           BIND
                If you are running with the BIND code on UNIX systems
                with TCP/IP sockets (e.g. 4.{2,3}BSD), be sure to
                define this.

           BSD41A
                Use on 4.1a Berkeley UNIX systems.

           BSD42
                Use on Berkeley UNIX systems on or after 4.2BSD.

           BSD43
                Use on 4.3 Berkeley UNIX systems.  Also, be sure to
                use options BSD42.  If openlog(3) (see man 3 syslog)
                takes three arguments instead of two, and your
                write(1) command is set-group-id to group tty, use
                this option.  If only one of these conditions is true,
                you lose.

           BSD44
                Use on Berkeley UNIX systems on or after 4.4BSD.
                Also, be sure to use options BSD43 and options BSD42.

           DBMPWD
                Use this option if your getpwent(3) routines read a
                dbm database (such as with Yellow Pages) instead of
                doing a sequential read of /etc/passwd.  Without
                DBMPWD the entire passwd file is read into memory one
                entry at a time for alias expansion.  This is a
                performance improvement when reading a standard
                /etc/passwd file, but is very slow on systems with a
                dbm database.  At one site that runs YP on a large
                passwd file, it showed a 6:1 performance improvement.

           GCOS_HACK
                The so-called gcos field of the password file is used
                as a last resort to find the user's full name (see
                mh-profile(5) for details).  Enable this option if
                your passwd(5) man page notes that the `&' character
                in the gcos field stands for the login name.

           FCNTL
                Directs MH to use the fcntl() system call for kernel-
                level locking.  If you're using a SYS5 system, you may
                want this option.  (See also `FLOCK' and `LOCKF').

           FLOCK
                Directs MH to use the flock() system call for kernel-
                level locking.  If you're on a BSD42 system, and
                you're not using NFS to read or write maildrops, you
                should enable this option.  (See also `FCNTL' and
                `LOCKF').

           HESIOD
                Support for HESIOD. This code was contributed, and
                included no documentation.

           LOCKF
                Directs MH to use the lockf() system call for kernel-
                level locking.  If you're using NFS to read or write
                maildrops, you should enable this option.  (See also
                `FLOCK' and `FCNTL').

           locname
                Hard-wires the local name for the host MH is running
                on.  For example, locname='PICKLE'.  It's probably
                better to either let UNIX tell MH this information, or
                to put the information in the host specific mtstailor
                file.

           MORE
                Defines  the location of the more(1) program.  On
                ALTOS and DUAL systems, set MORE='/usr/bin/more'.  The
                default is /usr/ucb/more.

           NDIR
                For non-Berkeley UNIX systems, this MH will try to
                find the new directory access mechanism by looking in
                <ndir.h> if this option is given.  Otherwise, MH will
                try <dir.h>.  If you still can't get this to work on
                your system, edit h/local.h as appropriate.  (See also
                `SYS5DIR'.)

           NFS
                Tells MH to hack around a problem in the NFS C
                library.  If you get an undefined symbol ruserpass
                when compiling MH, you probably need this option.  If,
                however, you include this option and get an undefined
                symbol __ruserpass when compiling, then you should
                omit this option.  (See also `NORUSERPASS'.)

           NOIOCTLH
                Tells MH not to include the file <sys/ioctl.h>.  To be
                used on systems where this file is not present.

           NORUSERPASS
                Tells MH that your system doesn't have the
                ruserpass(3) routine; MH will include its own copy of
                this routine in its library.  (See also `NFS'.)

           NTOHLSWAP
                Tells MH to use the ntohl() macro when processing msh
                binary map files.  MH can use this macro on systems
                with the include file netinet/in.h, to byte-swap the
                binary information in these map files.  If you're
                using the same map files on machines of different
                architectures, enable this option.

           RENAME
                Include this option if your system has a rename()
                library call.  This is true on BSD42 and newer and
                some SYS5 systems.

           SENDMAILBUG
                Causes SMTP reply code 451 (failure) to be considered
                the same as code 250 (OK).  Since this might cause
                problems, only enable this if you are certain that
                your SendMail will return this code even when it
                doesn't mean to indicate a failure.

           SOCKETS
                Indicates the availability of a socket interface for
                TCP/IP networking that is compatible with 4.{2,3}BSD
                UNIX.  It is not necessary to define this when BSD42
                is already defined, but it might be useful for SYSTEM
                5 or HPUX systems with TCP/IP sockets.

           SUN40
                Use on Sun OS 4.0 (and later?) systems.  You also will
                need options BSD42, options BSD43, and signal void.

                If you're using Sun's brain-damaged approach to
                offering Domain Name Service through NIS, be sure to
                include options BIND and ldoptions -lresolv to work
                around some NIS/DNS bugs.

           SYS5
                Use on AT&T SYSTEM 5 R3 (and newer?) UNIX systems.
                See also mailgroup.

           SYS5DIR
                Define this if your system uses struct dirent instead
                of struct direct.  This is true of System V Release
                3.0 and later.  Uses include file <dirent.h> and the
                routines mkdir, rmdir and getcwd.

           SVR4
                Use on AT&T SYSTEM 5 R4 (and newer?) UNIX systems. You
                should also include options SYS5 and options SYS5DIR.
                See also mailgroup.  You will also need to include
                oldload none if your ld doesn't handle `-x -r'
                correctly.

           TERMINFO
                Define TERMINFO if you have it.  You get it
                automatically if you're running SYS5, and you don't
                get it if you're not.  (If you're not SYS5, you
                probably have termcap.)

           TZNAME
                Use time zone names from the tzname variable, set via
                tzset.  Only applicable on SYSTEM 5 systems and only
                effective when you have asked for alpha-timezones (see
                the ATZ option).  See also ZONEINFO.

           UNISTD
                Include this option if your system has the file
                <unistd.h>.  If not specified, the LOCKF option will
                include <sys/fcntl.h>.

           V7
                Use on V7 UNIX systems.  Also, be sure to use options
                void=int.

           VSPRINTF
                Include this option if your system has the vsprintf(3)
                library routine; otherwise, _doprnt(3) will be used.

           WAITINT
                BSD42 based systems call the wait(2) system routine
                with a pointer to type union wait.  Include this
                option if you included options BSD42, but your system
                calls the wait(2) system routine with a pointer to
                type int (the non-BSD42 default).

           ZONEINFO
                Specify this if you have a BSD43 based system that
                keeps time zone information /etc/zoneinfo or
                /usr/lib/zoneinfo (SunOS), and where the struct tm
                returned by localtime(3) contains a tm_gmtoff element
                (see /usr/include/time.h).  With this fix the GMT
                offset specified in outgoing mail will be corrected
                when the TZ enviornment variable is set to a different
                time zone.  See also TZNAME.

     Site Preferences
        These options change the default behavior of MH or enable
        optional features.  Add the options which are appropriate for
        your configuration or your site preferences.

        editor: prompter
             The default editor for MH.

        options:
             `-D' options to cc(1).

          ATZ
               Directs MH to use alpha-timezones whenever possible.
               You should not use this option if you are on the
               Internet, since it will make your host non-compliant
               with RFC-1123 (Requirements for Internet Hosts).

          ATHENA
               Makes repl `-nocc all' the default instead of
               `-cc all'.  You may want to enable this if you're using
               xmh.

          BANG
               Directs MH to favor `!' over `@' in addressing.

          BERK
               Optional for for 4.{2,3}BSD sites running SendMail.
               Disables nearly all of the RFC822 address and header-
               parsing routines in favor of recognizing such formats
               as ASCnet, and so on.  If you don't need to disable the
               parser for this reason, you probably want to use
               options DUMB instead.

          COMPAT
               If you previously ran a version of MH earlier than mh.4
               use this option.  After a short grace period, remove it
               and re-{configure,generate,install} everything.

          DUMB
               Directs MH not to try and rewrite addresses to their
               official form.

          FOLDPROT
               Defines the octal value for default folder-protection.
               For example, FOLDPROT='0700'.  The default is 0711.

          ISI
               When using repl -ccme, only cc: the first address found
               which belongs to the user; any other Alternate-
               Mailboxes do not receive cc:s.

          LINK
               Defines the filename for alternate file name for dist
               and repl.  For example, LINK='\\043' to use the
               pound-sign character.  The default is @.

          MHE
               Enables crude support for Brien Reid's MHE interface.
               Recommended for use with the GNU Emacs mh-e package.

          MHRC
               Enables MH to recognize the CShell's `~'-construct.
               This is useful for sites that run with a ~/.mhrc for
               their users.

          MIME
               Enables support for multi-media messages, as specified
               in RFC 1341 -- a major win.  This allows you to include
               things like audio, graphics, and the like, in your mail
               messages.  Several MH commands are extended to support
               these multi-media messages, and the mhn command is
               provided to encode and decode MIME messages.  For more
               details, see miscellany/multi-media/READ-ME and mhn(1).

          MSGID
               Enables slocal to detect and surpress duplicate
               messages received.  This code uses the <ndbm.h>
               library, and requires options BSD42 since it uses the
               flock(2) system call for locking.  (Note that this
               means its database locking does not work over NFS.) It
               has only been tested under SUN40.

          MSGPROT
               Defines the octal value for default folder-protection.
               For example, MSGPROT='0600'.  The default is 0644.

          NOMHSEQ
               Directs MH to make private sequences the default.

          OVERHEAD
               Enable MH commands to read profile/context from open
               fd:s without doing an open(); see mh-profile(5) for the
               details.

          RPATHS
               Directs inc to note UNIX From  lines as Return-Path:
               info.

          SBACKUP
               Defines the prefix string for backup file names.  For
               example, SBACKUP='\\043'.  The default is ,.

          TMA
               Support for the TTI trusted mail agent (TMA).  Although
               the TTI TMA is not in the public domain, the MH support
               for the TTI TMA is in the public domain.  You should
               enable this option only if you are licensed to run the
               TMA software (otherwise, you don't have the software in
               your MH source tree).

          TTYD
               Support for TTYD.  This is no longer in wide use, and
               is not recommended.

          UCI
               First, _ and # are recognized as the prefixes for
               scratch files.  Second, support for the UCI
               group-leadership mechanism is enabled in conflict.
               Third, the first line of the file file $HOME/.signature
               is used as the Full Name part of your From: header.
               This may conflict with the interpretation of this file
               by News.  If you're not at UCI, you probably don't want
               this option.

          UK
               Directs the scan program to generate UK-style dates by
               default.

          WHATNOW
               Enable certain MH commands to act differently when
               $mhdraft set.

          YEARMOD
               This option makes the mh-format %(year) function always
               return a value less than 100.  Enable this option if
               you have local mh-format(5) files which cannot handle
               4-digit years.  You should convert these files to use a
               4-character field width, or use the %(modulo 100)
               function to obtain a 2-digit year value.  After a short
               grace period, remove `YEARMOD' and re-
               {configure,generate,install} everything.

     Testing/debugging
       debug: off
            Support for debug mode of MH.  Don't use this unless you
            know what you're doing, which isn't likely if you're
            reading this document!

       regtest: off
            Set this to on if you are doing regression testing among
            different compilations of MH, and you do not want the
            hostname and compile date included in MH binaries.



          Now edit conf/config/mtstailor, depending on your choice of
          the setting for mts in the MH configuration file.  for an
          mts setting of mh, look at the file conf/tailor/mhmts; for
          an mts setting of sendmail, sendmail/smtp, mmdf/smtp, or
          mmdf2/smtp, look at the file conf/tailor/sendmts; and, for
          an mts setting of mmdf, or  mmdf2, look at the file
          conf/tailor/mmdf.

          Now install the configured files into the source areas.  (On
          SYS5 systems, or other systems where you get complaints
          about _index and _rindex being undefined, you should use
          make sys5 to compile mhconfig.)

          % make
          % ./mhconfig MH

          Before proceeding, you should familiarize yourself with the
          Administrator's Guide.  To generate an nroff version, go to
          the doc/ directory and type:

          % (cd ../doc/; make ADMIN.doc)


          If you're already running MH at your site, you should also
          read the mh changes document CHANGES.  The source is in
          papers/changes/.

          After reading the Administrator's Guide, you may decide to
          change your MH configuration.  If so, cd back to the conf/
          directory, re-edit the files MH and conf/config/mtstailor,
          and re-run mhconfig.

          You now proceed based on your choice of a transport system
          (the setting for mts above).  The best interface is achieved
          with sendmail followed by mmdf or (mmdf2), and then mh
          (stand-alone delivery, not recommended).

        SENDMAIL
          If you have not enabled BBoards or POP then no further
          MTS-specific action is required on your part!

          If you have enabled POP, but you want to let SendMail
          deliver mail POP mail using its standard delivery program
          /bin/mail, then, again, no further MTS-specific action is
          required on your part!

          Otherwise, go to the mts/sendmail/ directory.
          % cd ../mts/sendmail/

          This directory contains files whose definitions correspond
          to the configuration of your SendMail system.  If you have
          enabled BBoards or POP service, then you will need to
          re-configure SendMail.  First, in the local info section of
          your site's SendMail configuration file, choose a free
          macro/class (B is used in this distribution), and add these
          lines:

               # BBoards support
               DBbboards
               CBbboards

          Second, immediately after the inclusion of the zerobase
          file, in the machine dependent part of ruleset zero section,
          add these lines:

               # resolve names for the BBoards system
               R$+<@$=B>      $#bboards$@$2$:$1        topic@bboards

          Be sure to use tabs when separating these fields.  Third,
          add the line

               include(bboardsMH.m4)

          after the line

               include(localm.m4)

          in your site's SendMail configuration file.  Finally, you
          should link the file mts/sendmail/bboardsMH.m4 into your
          SendMail cf/ directory and re-configure SendMail.

          If you have enabled POP service, a similar procedure must be
          used on the POP service host, to re-configure SendMail.
          First, in the local info section of your site's SendMail
          configuration file, choose a free macro/class (P is used in
          this distribution), and add these lines:

               # POP support
               DPpop
               CPpop

          Second, immediately after the inclusion of the zerobase
          file, in the machine dependent part of ruleset zero section,
          add these lines:

               # resolve names for the POP system
               R$+<@$=P>      $#pop$@$2$:$1            subscriber@pop

          Be sure to use tabs when separating these fields.  Third,
          add the line

               include(popMH.m4)

          after the line

               include(localm.m4)

          in your site's SendMail configuration file.  Finally, you
          should link the file mts/sendmail/popMH.m4 into your
          SendMail cf/ directory and re-configure SendMail.

        MMDF
          If you want MMDF to be your transport service, and have NOT
          specified mmdf/smtp (or mmdf2/smtp) as your mts setting,
          then go to the mmdf/ directory.  (If you're using mmdf/smtp
          or mmdf2/smtp as your mts setting, then skip to the next
          section.)

          % cd ../mts/mmdf/

          This directory contains files whose definitions correspond
          to the configuration of your MMDF system.

          If you're running MMDF-I, then copy the following files from
          wherever you keep the MMDF sources to this directory:
          mmdf/h/ch.h, mmdf/h/conf.h, utildir/conf_util.h,
          utildir/ll_log.h, mmdf/h/mmdf.h, utildir/util.h,
          mmdf/mmdf_lib.a, and utildir/util_lib.a.

          If you're running MMDF-II, then copy the following files
          from where you keep the MMDF sources to this directory:
          h/ch.h, h/conf.h, h/dm.h, h/ll_log.h, h/mmdf.h, h/util.h,
          and lib/libmmdf.a

          If you have enabled bboards, then the directories
          support/bboards/mmdfI and support/bboards/mmdfII contain
          information you'll need to put a UCI BBoards channel in your
          MMDF configuration.  Similarly, if you have enabled option
          mf and are running MMDF-I, then the zotnet/mf/mmdfI/
          directory contains information you'll need to put a UUCP
          channel in your MMDF-I configuration.  Finally, the
          directory support/pop/mmdfII contains information you'll
          need to put a POP channel in your MMDF-II configuration.

          Note that MMDF-II is distributed with the BBoards channel,
          although the version in the MH distribution might be more
          current, the version in the MMDF-II distribution has been
          tested with that revision of MMDF.

        MMDF/SMTP
          If you are using mmdf/smtp as your mts setting, then no
          further MTS-specific action is required on your part!

        MMDF2/SMTP
          If you are using mmdf2/smtp as your mts setting, then no
          further MTS-specific action is required on your part!

        STAND-ALONE DELIVERY
          If, instead, you want MH to handle its own mail delivery,
          then no further MTS-specific action is required on your
          part!

     GENERATION
          Go to the MH top-level directory and generate the system.

          % cd ../; make

          This will cause a complete generation of the MH system.  If
          all goes well, proceed with installation.  If not, complain,
          as there should be no problems at this step.

     INSTALLATION
          If the directories you chose for the user-programs,
          support-programs and manuals (bin, etc, popdir, slibdir, and
          mandir in the conf/MH file) don't exist, you should create
          them at this point.

          Next, if you enabled support for the UCI BBoards facility,
          then create a login called bboards with the following
          characteristics: home directory is /usr/spool/bboards/ with
          mode 755 (actually, use the value for bbhome given in the MH
          configuration file), login shell is /bin/csh (or /bin/sh),
          and, encrypted password field is *.  The bboards login
          should own the /usr/spool/bboards/ directory.  In addition
          to creating /usr/spool/bboards/, also create
          /usr/spool/bboards/etc/ and /usr/spool/bboards/archive/.
          These directories should also be owned by the bboards login.

          If you enabled support for POP, then on the POP service
          host, create a login called pop with the following
          characteristics: home directory is /usr/spool/pop/ with mode
          755, login shell is /bin/csh, and, encrypted password field
          is *.  If you don't have /bin/csh on your system (V7), then
          /bin/sh is just fine.  The pop login should own the
          /usr/spool/pop/ directory.  You'll also need to add a line
          to the /etc/services file and the /etc/rc.local file, see
          the Administrator's Guide  for more details.

          If this is not the first time you have installed MH, these
          files will need particular attention:

               Directory                 Files
               etc/                      MailAliases, BBoardAliases, mtstailor
               /usr/spool/bboards/       BBoards, .cshrc, .mh_profile
               /usr/spool/bboards/etc/   *

          The MailAliases, BBoardAliases, mtstailor and BBoards files
          will NOT be installed over existing copies; you will need to
          edit these by hand and merge in any changes from your
          previous MH release.  The other files under
          /usr/spool/bboards/ will be overwritten if they exist.  You
          may wish to preserve your old versions of these before
          installing MH.

          As the super-user, and from the mh.6/ directory, install the
          system.

          # make inst-all

          This will cause the MH processes and files to be transferred
          to the appropriate areas with the appropriate attributes.

     TAILORING
          See the Administrator's Guide for information on tailoring
          MH for the MTS, BBoards, and POP.

     DOCUMENTATION
          In addition to this document, the Administrator's Guide, and
          the User's Manual, there are several documents referenced by
          the user's manual which may be useful.  The sources for all
          of these can be found under the papers/ directory.

     OTHER THINGS
          Consult the directory miscellany/ for the sources to a
          number of things which aren't part of the mainstream MH
          distribution, but which are still quite useful.

     FILES
          Too numerous to mention.  Really.

     SEE ALSO
          make(1)

     BUGS
          The mhconfig program should be smarter.

          There's no way to print the Administrator's Guide until
          after you have configured the system; it is difficult to
          configure the system without the Administrator's Guide.

          The Makefiles should know when mhconfig has been run and
          force make clean behavior.