
			Compiling the Game

Required software:
	gnumake 3.56 (patched version exists in emptools.tar)
	    add -DUSG -DUSGr3 to Makefile "defines" variable for AIX or HP/UX
	mkmf (exists in emptools.tar)

	*** Make SURE your version of GNUmake is up-to-date, since
	older versions were buggy enough to core-dump on machines
	other than suns.

Machines
	The game has been compiled and tested (time and rigor of tests
	in descending order) on the following machines:

		Sequent Symmetry (Dynix V3.0)
		Sun 4/260, SPARC 1 (SunOs 4.0.3)
		VAX 8850 (vax-ultrix)
		Sun 3/280 (SunOs 4.0.3)
		HP/UX 9000/350 (HP-UX 6.5)
		PC/RT 135 (AIX 2.2.1)
		ISI 68020 (isi 5.1 beta)
		VAX 11/780 (BSD 4.3 -- of course)
		RS/6000 (AIX 3.5)

	If you don't have one of these, you may well be out of luck.

Machine-wise configuration

	Determine what kind of machine you're on (sun4, sun3, sequent,
	vax-ultrix, etc).  Go into the make/Systems directory, and
	find the configuration that matches your machine.  If one
	doesn't exist for your machine, copy the Template file to a new
	file.  Add any flags such as -Bstatic, -fpa, -O, or -g as you like.

	setenv SYSTYPE machine-type

	SYSTYPE is used to select the machine-dependent compile line flags
	System/$(SYSYPE) to include with each makefile.

	NOTE: If you don't set your SYSTYPE, your compile may well fail,
	especially if you're on a non-BSD machine.

	setenv ARCH machine-type

	ARCH instructs the makefiles to install binaries in separate
	subdirectories.  You can maintain different architecture binaries
	in the same directory using the ARCH enviornment variable.

Game-wise Configuration

	There are two kinds of constants in Empire; #define-style constants,
	and initialized-variable constants.  All of the "update-related"
	constants are of the initialized-variable variety.  They typically
	can be changed in the middle of the game without any difficulty
	(other than possibly bizarre game behavior, and/or divide by zero
	problems if you go overboard).  They are located in
	lib/global/constants.c.  Other files in lib/global/ have constants
	which can change semi-dynamically (such as the ship characteristics),
	but drastic changes (deletions or additions of entire entries) might
	affect existing game items.  Be careful.

	The #define-style constants are there because they define the
	size of game data structures.  Changing them will change the size
	of a game data structure, which will mean that your running game
	will end up with junk in the items which have their size changed.
	So don't do it, unless you want to write a conversion program
	for the items whose size is changed.

	Constants like this include
		WORLD_X, WORLD_Y,
		MAXNOC,
		MAXSCTV,
		etc

	The same goes for game data structures.  Don't go around adding
	new fields to ships, sectors, etc, unless you're careful to
	convert existing items, or you don't have a current game running.

	Edit h/gamesdef.h, and set up the file accordingly.  The EMPPATH
	is the most important variable, as it points to the place where
	empire expects the data and binaries to be living.  It could be
	the current working directory, or not.  You can change this
	during a game without any problem (although you'd better move
	the data files if you change the EMPPATH).

	#define	EMPPATH(xyz)	"/a/users/mr-frog/EMP/xyz"
	#define	PRVNAM		"Dave Pare"
	#define	PRVLOG		"mr-frog@scam.berkeley.com"
	#define GET_SOURCE	"by ftp'ing to ucbvax."
	#define EMP_PORT	"1617"

	Edit client/globals.c, change empirehost[] to be the name
	where the game will be running.  If you don't care about
	giving away copies if your client (i.e. all your players will
	be on the same machine), you can omit this step.

Constructing Binaries

	run "gnumake dependall" at the top level.  There may be errors.
	They can (probably) be ignored.

	run "gnumake all" at the top level.  No errors should appear.
	(there may be some warnings that appear on sys V lookalikes;
	they'll whine because the sys V port was kind of half-assed)
	If you're not on a supported architecture, you're on your
	own...it's up to you to fix the problem. 

	run "gnumake installall" at the top level.  It should drop all
	the binaries into the bin directory.

	The game binaries are now installed; see the "create" document
	to describe world creation.

Installing Info Pages

	The INFO pages aren't run as a part of the normal make session.
	In order to install them, you must cd into the "info" subdirectory,
	and run "gnumake".  This will nroff all the info documents and place
	them in the "../info.nr" directory, from where players can
	access them during the game.

	If you want to print off a copy of the game rules, type "gnumake
	printout" and it should work.  (I haven't tesed it recently,
	so I'm not positive).  You should probably set the TROFF variable
	in make/GenMakefile to be whatever troff-type printing command
	you want to use, i.e. "TROFF := ptroff".

