    			X M R I S V4.04
                            X M R E D V1.02
    		Copyright (C) 1995, 1994, 1993, 1992 Nathan Sidwell
    RCS $Id: README 1.3 Tue, 16 Mar 1999 11:28:16 +0000 nathan $

    Modify the Imakefile as appropriate for your system. This should just mean
    setting SCORE to point to the score file directory, and maybe setting
    THEBINDIR and THEMANDIR. Both the FONT and the SCORE are checked for sanity.

    The source will compile with both ANSI and K&R compilers, provided that
    they both correctly define __STDC__. You can also use FUNCPROTO to specify
    partial conformance. FUNCPROTO is used in the same way that Xfuncproto.h
    uses it. Namely bit 0 specifies function prototypes and ANSI declarations,
    bit 1 specifies if varargs are used like ansi does, bit 2 specifies if
    const is available, bit 3 specifies if function args should be prototyped.
    Most KnR compilers can take FUNCPROTO=5 or 7.
    Some DEC 5000 systems appear to have incorrectly set up xmkmf, there are some
    lines in the Imakefile which will need to be uncommented to get them
    to compile properly. The openwindows include files for solaris are
    broken for K&R compilers (problems with _XString and _Xconst). The
    offending files are Intrinsic.h, Xfuncproto.h, and Xresource.h

    There are a few things which may cause problems with different
    platforms. The timer interrupt stuff, in timer.c, knows about
    BSD, SYSV, __hpux and POSIX signals, make sure that the correct define
    is given to the compiler from the Imakefile. The elapsed time should
    use gettimeofday, if you haven't got that function, then supply
    the define USETIME, this will give less accurate timing. Also
    gettimeofday may or may not need a timezone argument, this is checked
    by the system type in timer.c.

    Set SCORE to the name of the high score directory.
    The score file uses lockf or flock by default, this doesn't work
    on some distributed filing systems. If so,
    define USELOCKFILE, and a lock file is used to do the locking with
    open(O_CREAT | O_EXCL). The name of the lock file is xmris.lock.
    For this to work the high score directory must be writeable, which
    is not the case with lockf. Personal high score files are also put
    in this directory, if xmris can create them there, otherwise they
    will be put in the users' home directory.

    You may need to force static linking, and not use shared libraries, or
    store a library load path with the binary with the linker -R option.
    The EXTRA_LOAD_FLAGS can be used for this. (This may be necessary for
    a setuid version, as these programs only search /usr/lib to do the
    dynamic linking, disregarding LD_LIBRARY_PATH, for obvious reasons.)

    The make file is configured so that 'make install' will install a setuid
    xmris owned by games in the BINDIR. Set up the score directory
    appropriately, copying the example garden files into it.
    You can alter OWNER, SCOREFILEFLAGS and INSTPGMFLAGS as you require.
    If you do not want to install xmris into the normal locations, then
    alter THEBINDIR, THEMANDIR and XAPPLOADDIR appropriately.

    To make on your system type

    	xmkmf
    	make
    	make install
    	make install.man

    Xmred uses the same database as xmris, so that it can pick up the color
    resources. This means that it will not use its fallback resources if you have
    an old Xmris resource file installed. The result will be xmred laying itself
    out incorrectly, such that you will not be able to use it.

    The scram program is used to generate the sprites in the smallest
    number of bitplanes. You will get some warnings warnings of the form
    'Warning: Noswap color 'COLOR_WHITE' has no pixels', these may be ignored.

    To remove all the garbage left by a make you can do

    	make clean

    This removes all the object files, and all the sprites generated by scram.

    There is are two debug options to the compiler, NDEBUG, which inhibits
    asserts, if defined. Also DEBUGEVENTLOOP which prints the X events, as they
    are seen.

    Please report modifications, so that they can be considered for
    inclusion in later releases (especially true of system specific stuff).

    email to nathan@pact.srf.ac.uk

    XMRIS has been tested on the following systems, os's and compilers
    (but not all combinations of them!), and X release R4, R5 & R6, and
    openwindows. Interestingly on a 40MHz sparc classic, openwindows is
    a tad to slow, but X11R5 has no problems, even with the fastest
    animation.

    Platform:
    Sparc 1 monochrome, 8bit pseudo colour
    Sparc 1+
    Sparc IPC 8bit pseudo colour
    Sparc 2
    Sparc classic
    DECstation 5000
    pmax 3100 8bit greyscale
    pmax 5000 colour
    HP 9000/720
    i386 PC

    OS:
    Sunos 4.1, 4.1.1, 4.1.2
    Solaris 2.1, 2.2
    Ultrix 4.0, 4.2a
    RiscOS 5.0B
    Mach 2.5
    HP-UX 7.05, 8.05, 8.07
    linux

    compiler:
    gcc 1.38
    cc
    sun cc
    sun c++
    gcc 2.3.3

    Have fun.

    nathan