packages icon
			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