BZFlag README for IRIX
----------------------

NOTE: BZFlag likely no longer builds successfully on IRIX. However,
we will keep this README file for now as a possible reference in case
someone wants to try.


Building on IRIX will work with either the SGI MIPS compiler or the
GNU gcc3 compiler.  The GNU compiler is available for download from
SGI freeware.

Note that the gcc-3.2.2 version picked up some 6.5.18-isms, so you may
need to track down the older 3.1 release, or obtain a newer version
yourself, if you are using gcc and are unable to compile.

If both the GNU compiler and the SGI MIPS compiler are installed on
the same system, the GNU compiler will be used by default.  To use the
SGI MIPS compiler, you will need to inform the configuration script of
your preference.  You can set the variables as environment variables,
or provide them directly to configure as is shown (and preferred)
below:

# to use the MIPSPro compiler
./configure  CC="cc" CXX="CC" CXXFLAGS="-O2 -OPT:Olimit=32768 -DEFAULT:abi=o32:isa=mips3:proc=r5k -LANG:std -FE:template_in_elf_section -ptused -prelink" CFLAGS="-O2 -OPT:Olimit=32768 -DEFAULT:abi=o32:isa=mips3:proc=r5k -LANG:std -ptused -prelink"
make

If you try to boost the optimization to -O3, it is likely that the
compiler will crash or hang.  The -OPT:Olimit option helps mitigate
any crashes, but some may still be experienced and need to be compiled
by hand with no optimization.  Some files will simply take a very long
time to compile no matter what optimization level, so be patient. ;)

The -LANG:std, -ptused, and -prelink options are necessary for it to
build properly.  Without them, there will be serious problems linking
the binaries with the template instantiations.  The options are not
strictly necessary on the CFLAGS variable (they are required for
CXXFLAGS), but don't hurt.

You may want to use the -no_autoinclude option on the CXXFLAGS and
CFLAGS if your version of the compiler supports that option if you run
into an error, but it should not be necessary.

The last problem that you may encounter on older IRIX systems is a
problem in the curses.h header.  This problem will cause bzadmin to
fail to build properly.  If you have no need for bzadmin, you can
ignore the failure as bzfs and bzflag will have completed before
bzadmin.  Otherwise if you do want bzadmin, the workaround is simple..
The header uses a symbol name that is not valid with the C++ compiler:

cc-1084 CC: ERROR File = /usr/include/curses.h, Line = 611
  The indicated declaration has an invalid combination of type specifiers.

		syncok(WINDOW *, int bool),

The relatively simple work around involves actually editing the
curses.h file.  Copy the /usr/include/curses.h file to the bzflag
include/ directory.  Edit the file and replace "int bool" with "int
b".  The edited file should take precedence over the system header.
Save the file, and restart make and the build should succeed.  Best of
luck.

See the generic install instructions in README for more details.
