]> granicus.if.org Git - nethack/commitdiff
*** empty log message ***
authorjwalz <jwalz>
Sat, 5 Jan 2002 21:06:02 +0000 (21:06 +0000)
committerjwalz <jwalz>
Sat, 5 Jan 2002 21:06:02 +0000 (21:06 +0000)
win/X11/Install.X11 [new file with mode: 0644]

diff --git a/win/X11/Install.X11 b/win/X11/Install.X11
new file mode 100644 (file)
index 0000000..201d3f1
--- /dev/null
@@ -0,0 +1,196 @@
+
+This document describes the installation of NetHack with an X11 interface.
+
+There are no explicit UNIX dependencies in this code, but we have only
+tested it under UNIX, using X11R4, X11R5, or X11R6.  We have two reports
+that the code also works under DesqView/X on MS-DOS with djgpp, but you
+will have to add dependencies for the X code to that makefile before you
+can use it.  Other X11R4+ platforms may work as well, with some tweaking
+likely.  Follow WIN* in sys/unix/Makefile.src for compilation hints.
+
+(If you try to compile it with X11R3 or earlier, you will get many errors,
+starting with complaints about XtPointer not being declared.  If you get
+around the compilation problems, you will still need a recent library of
+Athena Widgets to link against.  Once compiled, you can probably run it
+under an R3 X server, though.)
+
+The reason this uses the Athena widget set is that the Athena widgets come
+free from MIT (like X11).  Unfortunately, the companies that resell X11
+(value subtracted er, added software; yea, yea, that's the ticket) usually
+discourage its use by either omitting the set or putting it on the
+"unsupported" portion of their tape.  If you do not have the Athena
+widgets, you may obtain them via anonymous ftp from ftp.x.org.
+
+
+To use this code, define X11_GRAPHICS in include/config.h.  (You can comment
+out TTY_GRAPHICS or change DEFAULT_WINDOW_SYS if you want to, but there's
+little reason to do so.  The X11 version almost requires a config file
+for full effect, so you can just as well set windowtype there; also, you
+or someone else might just possibly be stuck in a situation where you can't
+use the X version -- over a non-blindingly-fast modem, say.)  You may also
+want to define USE_XPM or GRAPHIC_TOMBSTONE as discussed below.
+
+In src/Makefile, add $(WINX11SRC), $(WINX11OBJ), and $(WINX11LIB) to
+WINSRC, WINOBJ, and WINLIB respectively, and compile.  This will give you
+an executable supporting both X11 and tty windowing.
+
+
+If you want to use the optional tiles (multicolored pictures instead of a
+replacement font), you will need to have the win/share files and change
+the VARDATND setting in the top Makefile to contain the tile files before
+you do your 'make all'.
+
+When using tiles, you have the option of defining USE_XPM in config.h.
+This causes NetHack to use the XPM file format for the "x11tiles" file
+rather than a custom format.  Since the XPM format can be processed by
+existing tools such as PBMPlus and XV, you can modify the tiles to suit
+your environment.  For example, you may magnify them for display on
+high-resolution screens using the following command:
+    xpmtoppm x11tiles | pnmscale -xscale 1 -yscale 1.6875 |
+        pnmdepth 255 | ppmquant 100 | ppmtoxpm >x11tiles_big.xpm
+To use XPM, you must have the free XPM libraries installed in your system.
+Official xpm releases can be found by ftp on:
+    ftp.x.org       (198.4.202.8)  contrib/libraries     (Boston, USA)
+    avahi.inria.fr  (138.96.12.1)  pub/xpm     (Sophia Antipolis, France)
+If you do choose to define USE_XPM, be sure to add "-lXpm" to WINX11LIB
+in src/Makefile.
+
+If you define USE_XPM in config.h, you may also define GRAPHIC_TOMBSTONE
+which causes the closing tombstone to be displayed from the image file
+specified by the "tombstone" X resource (rip.xpm by default).  In this
+case, make sure the top Makefile VARDATND also contains rip.xpm.
+
+
+Whether or not you install tile support, you can provide support for
+special graphics symbols via alternate fonts.  (The fonts and tiles
+cannot be used at the same time, but the same executable handles both.)
+The two included X11 fonts use the general NetHack map area remapping
+to represent object/dungeon/trap/effect characters (see win/X11/nethack.rc
+and the Guidebook) as monocolored symbols and monsters as monocolored
+letters.  For instance, a ruby potion will show up as a potion symbol in
+red.  It's easier to see the difference between fonts and tiles than to
+describe it. :-)  Unless you are the only one using your executable and
+you already know which you prefer, we suggest installing the optional files
+for both possibilities and letting each person decide for themselves.
+
+To use the included fonts, you will need to install one or both of them
+and then use the symbol mappings found in nethack.rc.  The fonts are found
+in nh10.bdf and ibm.bdf.  You first need to convert the bdf files to whatever
+form your X11 server recognizes (usually using a command called bdftosnf
+for R4 servers or bdftopcf for R5 servers).  Then run mkfontdir on the
+directory containing your font files (you might want to copy them to GAMEDIR,
+from the top Makefile, after you've done "make install").  If these commands
+aren't familiar, talk to your local X11 guru and read the man pages.
+Finally, add that directory to your font search path (e.g. xset fp+ GAMEDIR,
+setting GAMEDIR to the value of GAMEDIR in the top Makefile).  Alternatively,
+you (assuming you are a system administrator) can install the fonts in your
+standard X11 font directory.  If you do not install the fonts in the standard
+X11 font directory, all persons playing nethack must add that "xset fp+"
+command to their .xinitrc file, or whatever file they execute when starting
+X11.  Adding the "xset" command to the nethack.sh is also an alternative,
+though it may clutter your X11 font search path after playing several games,
+so this method is not recommended.  See the note below for the alternative
+installation procedure for Sun's OpenWindows.
+
+
+If your X11 include files and libraries are not installed in a standard
+place (i.e. /usr/include/X11 and /usr/lib respectively) you will need to
+prepend an appropriate -I<idirectory> parameter to CFLAGS and a
+-L<ldirectory> parameter to LFLAGS, setting <?directory> to the place to
+find the include and library files for X11.
+
+
+Finally, you should also install the NetHack.ad file as NetHack in the
+normal X11 applications defaults directory.  Alternatively, each person
+may append the contents of this file to their .Xdefaults file.  A second
+alternative is copy NetHack.ad to NetHack in GAMEDIR (from the top Makefile)
+and add a line to nethack.sh specifying this additional applications
+defaults directory:
+       XAPPLRESDIR=$HACKDIR; export XAPPLRESDIR
+
+
+Three icon suggestions to the window manager are supported:  nh72, nh56,
+and nh32.  Data for them comes from the source files nh72icon, nh56icon,
+and nh32icon; they are compiled into the program via #includes in winX.c.
+Selection between them is controlled by the "icon" resource in NetHack.ad;
+the default is nh72.
+
+
+Sorry, an Imakefile is not included.  Unlike many X11 programs, X11
+support is only a small, optional, part of nethack, and the Makefile is
+needed for systems that don't use X11.
+
+
+Notes for Sun's OpenWindows:
+    1. For OpenWindows 3.0 (NOT 2.x), define OPENWINBUG in include/unixconf.h.
+       The library bug from SunOS 4.1.x is fixed in Solaris 2.x (or when
+       proper Sun patches have been applied to 4.1.x), so it is also
+       unnecessary there.  (Defining it when unnecessary causes the same
+       problem being avoided when it is necessary. :-)
+
+    2.  In addition to the changes suggested by the comments in src/Makefile,
+
+       -- for OpenWindows 2.x and 3.0 (NOT 3.1) (i.e., versions for SunOS 4.x),
+          add -I/usr/openwin/include to CFLAGS, -L/usr/openwin/lib to LFLAGS,
+          and -lm to WINX11LIB in src/Makefile.
+
+       -- for OpenWindows 3.1 (i.e., versions for Solaris 2.x), add
+          -I/usr/openwin/include to CFLAGS, -L/usr/openwin/lib -L/usr/ccs/lib
+          -R/usr/openwin/lib to LFLAGS, and -lsocket -lnsl -lm
+          to WINX11LIB in src/Makefile.
+
+       (Naturally, if your OpenWindows is installed elsewhere, adapt the
+       openwin paths.)  This will allow you to create a game executable.
+
+    3. Run the fonts through convertfont and run bldfamily on the directory.
+       Now you must let your X server know where to find the fonts.  For a
+       personal installation, the simplest thing is to include the directory
+       of the fonts in the environment variable FONTPATH, as set in your
+       .profile or .login before starting the server.  For a multi-user
+       installation, you have the various "xset fp+" options outlined
+       above for standard X.
+
+    4.  Something must still be done with the NetHack.ad file -- all three
+       of the possibilities mentioned for standard X11 should work.
+
+
+Notes for AIX 3.2:
+    1.  AIX 3.2 includes the Athena Widget Toolkit library (and other things)
+       under the /usr/lpp/X11/Xamples tree, so you will have to add
+       -L/usr/lpp/X11/Xamples/lib to LFLAGS.  If you can't find libXaw.a on
+       your first build, go into /usr/lib/X11/Xamples, read the README file,
+       and build the library.
+
+Notes for XFree86 - (on linux and BSD386 platforms)
+
+    1.  Edit src/Makefile for linux/BSD386. Even though you use the 
+       Open Look Window manager, do not define OPENWINBUG.  Use the 
+       standard X11 object and library options.
+
+    2.  Follow the standard installation directions defined above.
+
+
+File                           Description
+---------      ---------------------------------------------------------------
+nethack.rc     - A sample configuration file for fonts nh10 and ibm.
+nh10.bdf       - A modified version of the 10x20 standard font.
+ibm.bdf                - A modified version of one of the ibm (8x14) nethack font.
+                 Must be used in conjunction with NetHack.ad or nethack.rc.
+nh32icon       - A 32x32 icon bitmap for use with window managers.
+nh56icon       - A 56x56 icon bitmap for use with window managers.
+nh72icon       - A 72x72 icon bitmap for use with window managers.
+nh_icon.xpm    - A color icon for use with window managers.
+NetHack.ad     - A sample .Xdefaults for a color screen.
+../../include/Window.h
+../../include/WindowP.h
+Window.c       - A bare-bones widget that has 16 colors and a drawing canvas.
+../../include/winX.h
+               - Defines for the X window-port.
+win*.c         - Code for the X window-port
+dialogs.c      - A better dialog widget.  Original code (modified slightly
+                 by Dean Luick) distributed under the X copyright by Tim
+                 Theisen.  This is from his Ghostview program (which is under
+                 the GNU public license, v2 or higher).
+pet_mark.xbm   - A pet indicator bitmap for tiles.
+rip.xpm                - A graphical tombstone.
+tile2x11.c     - Converts win/share tiles for X11 use.