# MACHINES -- operating system specific information
#

nmh is routinely built and tested on recent versions of the following
platforms:
    Cygwin (32- and 64-bit)
    FreeBSD 10
    Linux (Arch, CentOS, Fedora, and Ubuntu distributions)
    macOS
    OpenBSD

nmh was known in the distant past to compile on the following platforms (save
the exceptions noted below), using an ANSI C compiler, such as gcc:
    AIX 4.1.5.0.01
    FreeBSD 9
    IRIX 6.5
    NetBSD 1.4.2
    Solaris 7, 8, and 11 (sparc,x86)
    SunOS 4.1

On all platforms, the following programs are required to build nmh from a
snapshot of the source code repository:
    autoconf 2.68 or later
    automake 1.12 or later
    flex 2.5.4 or later
    bison 2.3 or later,  Berkeley yacc 1.9 or later, or Solaris yacc 4.0
They are not required if building from an nmh distribution (.tar.gz) file.

Platform-specific notes follow.

------------------------------------------------------------------------------
                                    Linux
------------------------------------------------------------------------------

Run-time package requirements:
    ncurses-libs
    gdbm, db4, or libdb (only needed for slocal(1))
    readline (if you want readline support)
    cyrus-sasl-lib / libsasl2 (if configured with --with-cyrus-sasl)
    openssl-libs / libssl (if configured with --with-tls)
    libcurl (if configured with --with-oauth)

Additional build-time package requirements:
    ncurses-devel / libncurses5-devel
    gdbm-devel, db4-devel or libdb-devel/libdb-dev (only needed for slocal(1))
    readline-devel (if you want readline support)
    cyrus-sasl-devel / libsasl2-dev (if configuring with --with-cyrus-sasl)
    openssl-devel / libssl-dev (if configuring with --with-tls)
    libcurl-devel / libcurl-dev (if configured with --with-oauth)

Test suite package requirements:
    ncurses (tput is needed to run test/format/test-curses)

------------------------------------------------------------------------------
                                   Mac OS X
------------------------------------------------------------------------------

If configured with --with-tls on Mac OS X 10.7 or later, there will be
compile warnings from mts/smtp/smtp.c about the deprecated OpenSSL
that is supplied with that system.  nmh will build and run with that
OpenSSL, though it may be an old version.  Alternatively, the OpenSSL
source code is available from http://www.openssl.org/source/.  To
build 64-bit libraries, the OpenSSL configure command should start
with, e.g.,
    ./Configure darwin64-x86_64-cc

To build nmh with those OpenSSL libraries, the CPPFLAGS and LDFLAGS
can be set by adding the following to the nmh configure command line,
or in the shell environment before calling configure or build_nmh:
    CPPFLAGS='-D__arch64__ -IOpenSSL-include-path' LDFLAGS=-LOpenSSL-lib-path

------------------------------------------------------------------------------
                                   FreeBSD
------------------------------------------------------------------------------

Additional build-time package requirements:
    devel/autotools
    ftp/curl (if configured with --with-oauth)

------------------------------------------------------------------------------
                                    Cygwin
------------------------------------------------------------------------------

Run-time package requirements:
    file
    libncurses10 or libncursesw10
    libgdbm4 (only needed for slocal(1))
    libiconv or libiconv2 (if you want iconv support)
    libreadline7 (if you want readline support)
    libsasl2_3 (if configured with --with-cyrus-sasl)
    openssl (if configured with --with-tls)
    libcurl (if configured with --with-oauth)

Additional build-time package requirements:
    libncurses-devel or libncursesw-devel
    libgdbm4-devel (only needed for slocal(1))
    libiconv-devel (if you want iconv support)
    libreadline-devel (if you want readline support)
    libsasl2-devel (if configuring with --with-cyrus-sasl)
    openssl-devel (if configuring with --with-tls)
    libcurl-devel (if configured with --with-oauth)

    Older versions of libncurses-devel do not install /usr/include/curses.h,
    /usr/include/term.h, and /usr/include/termcap.h.  If yours does not,
    either add symlinks in /usr/include/ to those files in its ncurses/
    subdirectory, or build with:
        make DEFAULT_INCLUDES='-I. -I/usr/include/ncurses'

Test suite package requirements:
    ncurses (tput is needed to run test/format/test-curses)

Note that the -link switch to refile cannot be used on FAT32 and other
filesystems that do not support hard links.

------------------------------------------------------------------------------
                                     HP-UX
------------------------------------------------------------------------------

Lots of problems have been reported with using HP-UX `cc'.  In particular,
problems with `scan' giving incorrect dates (everything is 01/00).  It is
highly recommended that you use `gcc' instead.

------------------------------------------------------------------------------
                                  Irix (SGI)
------------------------------------------------------------------------------

Irix make is notoriously buggy. If you're using it, you should "touch
config.h.in" before configuring to prevent a problem where it tries to rebuild
targets that shouldn't be rebuilt. (Alternately, you can just use GNU make
instead of Irix make.)

------------------------------------------------------------------------------
                           SunOS 4.1.1/4.1.3/4.1.4
------------------------------------------------------------------------------

You can't use the C compiler that comes with SunOS 4 since it isn't ANSI C.
But nmh builds just fine with gcc.

------------------------------------------------------------------------------

----------
The nmh team
nmh-workers@nongnu.org
