Files
nethack/outdated/sys/be
nhmall ba5356603a yn()
A number of C compiler suites have a math.h library that includes a yn()
function name that conflicts with NetHack's yn() macro:
"The y0(), y1(), and yn() functions are Bessel functions of the second kind,
for orders 0, 1, and n, respectively. The argument x must be positive. The
argument n should be greater than or equal to zero. If n is less than zero,
there will be a negative exponent in the result."

At one point, isaac64.h included math.h, although that has since been removed.

Some libraries used in NetHack (Qt for one) do include math.h and that required
build work-arounds to avoid the conflict.

Rename the NetHack macro from yn() to y_n() and avoid the math.h conflict
altogether, eliminating the need for that particular work-around.
2023-01-12 16:04:40 -05:00
..
2023-01-12 16:04:40 -05:00

This file is sys/be/README.  It is for those intending to compile
NetHack 3.6 on a BeOS 4.5 system.

BeOS NetHack currently only supports the TTY windowing system.  In
order to compile it, it would benefit you greatly to think of your Be
system as a UNIX variant.  It is possible to compile using BeIDE.
However, there are four executables and several steps involved in making
NetHack.  Unless you are extremely familiar with the build sequence and
are willing to modify the code somewhat, I suggest you avoid it for now.
Let the UNIX Makefiles take care of all that for you.


Known problems:
+ No special characters for walls.  None of the fonts available for use
  in a tty window has the graphics characters needed to improve the look.
  If such a font existed, then all you need to do is set the dungeon,
  object, and/or monter mappings in your defaults file.
+ The arrow keys don't work.



Build instructions.  From a freshly unpacked source tree:

1. Copy the Makfiles in sys/unix to their proper spots.  You may
   use setup.sh or copy them by hand.  Using setup.sh to create
   links instead of copying the Makefiles will work, but BeOS will
   not let you edit a link.   It may be helpful to read
   sys/unix/Install.unx.

2. Edit src/Makefile:
	o Change System to SysBe.
	o Comment out the UNIX versions of SYSSRC and SYSOBJ variables.
	o Uncomment the BeOS versions of SYSRC and SYSOBJ.
	o Uncomment the BeOS versions of CC, CFLAGS, LD, and LFLAGS.  The
	  flags are different for Intel vs BeBox/Mac.
	o Uncomment one of the Intel or BeBox/Mac BeOS versions of CC, CFLAGS,
	  LD, and LFLAGS.
	o Comment out the default CFLAGS and LFLAGS.
	o Change WINTTYLIB to be -ltermcap.

3. Edit util/Makefile:
	o If on a BeBox/Mac:
	  - Uncomment the BeOS versions of CC and CFLAGS
	  - Comment out the default CFLAGS and LFLAGS.
	o If on Intel:
	  - the default values of CFLAGS and LFLAGS work fine
	o Change YACC and LEX to be bison -y and flex respectively.

4. Edit include/config.h to change HACKDIR to be the location of your
   install directory.

5. Edit top level Makefile and change GAMEDIR to match HACKDIR in
   include/config.h.  Make sure the path to GAMEDIR exists.  Change
   SHELLDIR to a "throw away" directory, like /tmp.  We don't use the
   shell.  Change CHOWN and CHGRP commands to "true", there really
   aren't groups on the BeOS.

6. Type "make install" at the top level.



It is possible that some necessary steps needed to make the game have been
omitted.  Feel free to ad-lib as necessary.