First pass at a hints-based build system to augment (not replace) the existing
build system. Anyone who wants to do a build from sys/unix and doesn't want to figure this out just needs to do: sh setup.sh hints/unix instead of: sh setup.sh and then continue on as usual. New files: sys/unix/NewInstall.unx - the new directions sys/unix/hints/* - the hints files. There will be more later. sys/unix/mkmkfile.sh - helper for setup.sh Summary of changes: see NewInstall.unx for info on the new build system introduction of various preprocessor symbols to turn options off that are defaulted on historically comment out nethackrc (and similar) entries that still use the old symbol syntax. commenting out of Makefile.* lines that now come from hints/unix GAMEDIR is replaced with HACKDIR so the Makefiles and the C source agree. Note that I have NOT changed the docs and/or Makefiles for be, msdos, os2, vms, or winnt. If port maintainers don't then I will, but I can't test those ports. nethack.sh now handles the font path automatically
This commit is contained in:
@@ -420,4 +420,4 @@ consolidate vault.h, epri.h, eshk.h, emin.h and edog.h into new mextra.h
|
|||||||
new oextra structure housing pointers to oname, omonst, omid, olong, and omailcmd
|
new oextra structure housing pointers to oname, omonst, omid, olong, and omailcmd
|
||||||
drawing symbols for DECGraphics, IBMGraphics, MACgraphics are now stored in an
|
drawing symbols for DECGraphics, IBMGraphics, MACgraphics are now stored in an
|
||||||
external symbol file that can be changed without rebuilding
|
external symbol file that can be changed without rebuilding
|
||||||
|
new hints-based configuration system
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* SCCS Id: @(#)config.h 3.5 2003/11/23 */
|
/* SCCS Id: @(#)config.h 3.5 2003/12/12 */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -42,7 +42,9 @@
|
|||||||
* Define all of those you want supported in your binary.
|
* Define all of those you want supported in your binary.
|
||||||
* Some combinations make no sense. See the installation document.
|
* Some combinations make no sense. See the installation document.
|
||||||
*/
|
*/
|
||||||
#define TTY_GRAPHICS /* good old tty based graphics */
|
#if !defined(NOTTYGRAPHICS)
|
||||||
|
# define TTY_GRAPHICS /* good old tty based graphics */
|
||||||
|
#endif
|
||||||
/* #define X11_GRAPHICS */ /* X11 interface */
|
/* #define X11_GRAPHICS */ /* X11 interface */
|
||||||
/* #define QT_GRAPHICS */ /* Qt interface */
|
/* #define QT_GRAPHICS */ /* Qt interface */
|
||||||
/* #define GNOME_GRAPHICS */ /* Gnome interface */
|
/* #define GNOME_GRAPHICS */ /* Gnome interface */
|
||||||
@@ -376,7 +378,9 @@ typedef unsigned char uchar;
|
|||||||
/* I/O */
|
/* I/O */
|
||||||
#define REDO /* support for redoing last command - DGK */
|
#define REDO /* support for redoing last command - DGK */
|
||||||
#if !defined(MAC)
|
#if !defined(MAC)
|
||||||
|
# if !defined(NOCLIPPING)
|
||||||
# define CLIPPING /* allow smaller screens -- ERS */
|
# define CLIPPING /* allow smaller screens -- ERS */
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
#define AUTOPICKUP_EXCEPTIONS /* exceptions to autopickup */
|
#define AUTOPICKUP_EXCEPTIONS /* exceptions to autopickup */
|
||||||
#define BARGETHROUGH /* allow some monsters to move others out of their way */
|
#define BARGETHROUGH /* allow some monsters to move others out of their way */
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* SCCS Id: @(#)unixconf.h 3.5 1999/07/02 */
|
/* SCCS Id: @(#)unixconf.h 3.5 2007/12/12 */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -142,8 +142,9 @@
|
|||||||
* variable MAILREADER; otherwise an internal pager will be used.
|
* variable MAILREADER; otherwise an internal pager will be used.
|
||||||
* A stat system call is done on the mailbox every MAILCKFREQ moves.
|
* A stat system call is done on the mailbox every MAILCKFREQ moves.
|
||||||
*/
|
*/
|
||||||
|
#if !defined(NOMAIL)
|
||||||
#define MAIL /* Deliver mail during the game */
|
#define MAIL /* Deliver mail during the game */
|
||||||
|
#endif
|
||||||
|
|
||||||
/* The Andrew Message System does mail a little differently from normal
|
/* The Andrew Message System does mail a little differently from normal
|
||||||
* UNIX. Mail is deposited in the user's own directory in ~/Mailbox
|
* UNIX. Mail is deposited in the user's own directory in ~/Mailbox
|
||||||
|
|||||||
@@ -25,10 +25,10 @@
|
|||||||
in Files, which should be in the top directory.)
|
in Files, which should be in the top directory.)
|
||||||
|
|
||||||
2. Your Makefiles may still be in sys/unix with tags on the end of them.
|
2. Your Makefiles may still be in sys/unix with tags on the end of them.
|
||||||
If so, run "sh setup.sh" in that directory to distribute the Makefiles
|
If so, run "sh setup.sh hints/unix" in that directory to
|
||||||
to places they can do their work. (If later official patches change
|
distribute the Makefiles to places they can do their work. (If
|
||||||
these Makefiles, setup.sh should be rerun to make sure you use the
|
later official patches change these Makefiles, setup.sh should
|
||||||
current copies.)
|
be rerun to make sure you use the current copies.)
|
||||||
|
|
||||||
3. Go to the include subdirectory and edit config.h according to the
|
3. Go to the include subdirectory and edit config.h according to the
|
||||||
comments to match your system and desired set of features. Similarly
|
comments to match your system and desired set of features. Similarly
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
7. Go back to the top directory and edit that Makefile, explaining where
|
7. Go back to the top directory and edit that Makefile, explaining where
|
||||||
you want everything to be installed.
|
you want everything to be installed.
|
||||||
|
|
||||||
Make sure that you follow the comments about setting GAMEDIR -- the
|
Make sure that you follow the comments about setting HACKDIR -- the
|
||||||
installation process will wipe out the contents of the directory you
|
installation process will wipe out the contents of the directory you
|
||||||
point it at, under the assumption that it's debris from an old version
|
point it at, under the assumption that it's debris from an old version
|
||||||
of NetHack. If this is not the case, you'll want to install somewhere
|
of NetHack. If this is not the case, you'll want to install somewhere
|
||||||
@@ -80,7 +80,7 @@
|
|||||||
8. Read doc/recover.man or doc/recover.txt to learn how to use the recover
|
8. Read doc/recover.man or doc/recover.txt to learn how to use the recover
|
||||||
program. The recover program can be used in case of a crash to recover
|
program. The recover program can be used in case of a crash to recover
|
||||||
a game that was in progress. The recover command is installed in the
|
a game that was in progress. The recover command is installed in the
|
||||||
GAMEDIR by default.
|
HACKDIR by default.
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# NetHack Makefile.
|
# NetHack Makefile.
|
||||||
# SCCS Id: @(#)Makefile.src 3.5 2006/01/07
|
# SCCS Id: @(#)Makefile.src 3.5 2007/12/12
|
||||||
|
|
||||||
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
||||||
# recursive make calls if $(MAKE) is used
|
# recursive make calls if $(MAKE) is used
|
||||||
@@ -151,8 +151,8 @@ GNOMEINC=-I/usr/lib/glib/include -I/usr/lib/gnome-libs/include -I../win/gnome
|
|||||||
# flags for debugging:
|
# flags for debugging:
|
||||||
# CFLAGS = -g -I../include
|
# CFLAGS = -g -I../include
|
||||||
|
|
||||||
CFLAGS = -O -I../include
|
#CFLAGS = -O -I../include
|
||||||
LFLAGS =
|
#LFLAGS =
|
||||||
|
|
||||||
# The Qt and Be window systems are written in C++, while the rest of
|
# The Qt and Be window systems are written in C++, while the rest of
|
||||||
# NetHack is standard C. If using Qt, uncomment the LINK line here to get
|
# NetHack is standard C. If using Qt, uncomment the LINK line here to get
|
||||||
@@ -214,8 +214,8 @@ WINBEOBJ =
|
|||||||
|
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
WINSRC = $(WINTTYSRC)
|
#WINSRC = $(WINTTYSRC)
|
||||||
WINOBJ = $(WINTTYOBJ)
|
#WINOBJ = $(WINTTYOBJ)
|
||||||
|
|
||||||
# on some systems the termcap library is in -ltermcap or -lcurses
|
# on some systems the termcap library is in -ltermcap or -lcurses
|
||||||
# on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
|
# on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
|
||||||
@@ -231,7 +231,7 @@ WINOBJ = $(WINTTYOBJ)
|
|||||||
# WINTTYLIB = -lcurses
|
# WINTTYLIB = -lcurses
|
||||||
# WINTTYLIB = -lcurses16
|
# WINTTYLIB = -lcurses16
|
||||||
# WINTTYLIB = -lncurses
|
# WINTTYLIB = -lncurses
|
||||||
WINTTYLIB = -ltermlib
|
#WINTTYLIB = -ltermlib
|
||||||
#
|
#
|
||||||
# libraries for X11
|
# libraries for X11
|
||||||
# If USE_XPM is defined in config.h, you will also need -lXpm here.
|
# If USE_XPM is defined in config.h, you will also need -lXpm here.
|
||||||
@@ -255,7 +255,7 @@ WINGEMLIB = -le_gem -lgem
|
|||||||
# libraries for BeOS
|
# libraries for BeOS
|
||||||
WINBELIB = -lbe
|
WINBELIB = -lbe
|
||||||
|
|
||||||
WINLIB = $(WINTTYLIB)
|
#WINLIB = $(WINTTYLIB)
|
||||||
|
|
||||||
# any other strange libraries your system needs (for Sysunix only -- the more
|
# any other strange libraries your system needs (for Sysunix only -- the more
|
||||||
# specialized targets should already be right)
|
# specialized targets should already be right)
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# NetHack Makefile.
|
# NetHack Makefile.
|
||||||
# SCCS Id: @(#)Makefile.top 3.5 1995/01/05
|
# SCCS Id: @(#)Makefile.top 3.5 2007/12/12
|
||||||
|
|
||||||
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
||||||
# recursive make calls if $(MAKE) is used
|
# recursive make calls if $(MAKE) is used
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
# MAKE = make
|
# MAKE = make
|
||||||
|
|
||||||
# make NetHack
|
# make NetHack
|
||||||
PREFIX = /usr
|
#PREFIX = /usr
|
||||||
GAME = nethack
|
GAME = nethack
|
||||||
# GAME = nethack.prg
|
# GAME = nethack.prg
|
||||||
GAMEUID = games
|
GAMEUID = games
|
||||||
@@ -27,20 +27,19 @@ FILEPERM = 0644
|
|||||||
EXEPERM = 0755
|
EXEPERM = 0755
|
||||||
DIRPERM = 0755
|
DIRPERM = 0755
|
||||||
|
|
||||||
# GAMEDIR also appears in config.h as "HACKDIR".
|
# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else HACKDIR
|
||||||
# VARDIR may also appear in unixconf.h as "VAR_PLAYGROUND" else GAMEDIR
|
|
||||||
#
|
#
|
||||||
# note that 'make install' believes in creating a nice tidy GAMEDIR for
|
# note that 'make install' believes in creating a nice tidy HACKDIR for
|
||||||
# installation, free of debris from previous NetHack versions --
|
# installation, free of debris from previous NetHack versions --
|
||||||
# therefore there should not be anything in GAMEDIR that you want to keep
|
# therefore there should not be anything in HACKDIR that you want to keep
|
||||||
# (if there is, you'll have to do the installation by hand or modify the
|
# (if there is, you'll have to do the installation by hand or modify the
|
||||||
# instructions)
|
# instructions)
|
||||||
GAMEDIR = $(PREFIX)/games/lib/$(GAME)dir
|
#HACKDIR = $(PREFIX)/games/lib/$(GAME)dir
|
||||||
VARDIR = $(GAMEDIR)
|
VARDIR = $(HACKDIR)
|
||||||
SHELLDIR = $(PREFIX)/games
|
SHELLDIR = $(PREFIX)/games
|
||||||
|
|
||||||
# per discussion in Install.X11 and Install.Qt
|
# per discussion in Install.X11 and Install.Qt
|
||||||
VARDATND =
|
#VARDATND =
|
||||||
# VARDATND = x11tiles NetHack.ad pet_mark.xbm
|
# VARDATND = x11tiles NetHack.ad pet_mark.xbm
|
||||||
# VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm
|
# VARDATND = x11tiles NetHack.ad pet_mark.xbm rip.xpm
|
||||||
# for Atari/Gem
|
# for Atari/Gem
|
||||||
@@ -64,8 +63,8 @@ VARDAT = $(VARDATD) $(VARDATND)
|
|||||||
# other permission-related reasons. If that happens, you may want to set the
|
# other permission-related reasons. If that happens, you may want to set the
|
||||||
# command to "true", which is a no-op. Note that disabling chown or chgrp
|
# command to "true", which is a no-op. Note that disabling chown or chgrp
|
||||||
# will only work if setuid (or setgid) behavior is not desired or required.
|
# will only work if setuid (or setgid) behavior is not desired or required.
|
||||||
CHOWN = chown
|
#CHOWN = chown
|
||||||
CHGRP = chgrp
|
#CHGRP = chgrp
|
||||||
|
|
||||||
#
|
#
|
||||||
# end of configuration
|
# end of configuration
|
||||||
@@ -183,48 +182,48 @@ dofiles:
|
|||||||
-e '}' \
|
-e '}' \
|
||||||
-e '$$s/.*/nodlb/p' < dat/options` ; \
|
-e '$$s/.*/nodlb/p' < dat/options` ; \
|
||||||
$(MAKE) dofiles-$${target-nodlb}
|
$(MAKE) dofiles-$${target-nodlb}
|
||||||
(cd dat ; cp symbols $(GAMEDIR) )
|
(cd dat ; cp symbols $(HACKDIR) )
|
||||||
cp src/$(GAME) $(GAMEDIR)
|
cp src/$(GAME) $(HACKDIR)
|
||||||
cp util/recover $(GAMEDIR)
|
cp util/recover $(HACKDIR)
|
||||||
-rm -f $(SHELLDIR)/$(GAME)
|
-rm -f $(SHELLDIR)/$(GAME)
|
||||||
sed -e 's;/usr/games/lib/nethackdir;$(GAMEDIR);' \
|
sed -e 's;/usr/games/lib/nethackdir;$(HACKDIR);' \
|
||||||
-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
|
-e 's;HACKDIR/nethack;HACKDIR/$(GAME);' \
|
||||||
< sys/unix/nethack.sh \
|
< sys/unix/nethack.sh \
|
||||||
> $(SHELLDIR)/$(GAME)
|
> $(SHELLDIR)/$(GAME)
|
||||||
# set up their permissions
|
# set up their permissions
|
||||||
-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
|
-( cd $(HACKDIR) ; $(CHOWN) $(GAMEUID) $(GAME) recover ; \
|
||||||
$(CHGRP) $(GAMEGRP) $(GAME) recover )
|
$(CHGRP) $(GAMEGRP) $(GAME) recover )
|
||||||
chmod $(GAMEPERM) $(GAMEDIR)/$(GAME)
|
chmod $(GAMEPERM) $(HACKDIR)/$(GAME)
|
||||||
chmod $(EXEPERM) $(GAMEDIR)/recover
|
chmod $(EXEPERM) $(HACKDIR)/recover
|
||||||
-$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
|
-$(CHOWN) $(GAMEUID) $(SHELLDIR)/$(GAME)
|
||||||
$(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
|
$(CHGRP) $(GAMEGRP) $(SHELLDIR)/$(GAME)
|
||||||
chmod $(EXEPERM) $(SHELLDIR)/$(GAME)
|
chmod $(EXEPERM) $(SHELLDIR)/$(GAME)
|
||||||
-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) symbols ; \
|
-( cd $(HACKDIR) ; $(CHOWN) $(GAMEUID) symbols ; \
|
||||||
$(CHGRP) $(GAMEGRP) symbols ; \
|
$(CHGRP) $(GAMEGRP) symbols ; \
|
||||||
chmod $(FILEPERM) symbols )
|
chmod $(FILEPERM) symbols )
|
||||||
|
|
||||||
dofiles-dlb: check-dlb
|
dofiles-dlb: check-dlb
|
||||||
( cd dat ; cp nhdat $(DATNODLB) $(GAMEDIR) )
|
( cd dat ; cp nhdat $(DATNODLB) $(HACKDIR) )
|
||||||
# set up their permissions
|
# set up their permissions
|
||||||
-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
|
-( cd $(HACKDIR) ; $(CHOWN) $(GAMEUID) nhdat $(DATNODLB) ; \
|
||||||
$(CHGRP) $(GAMEGRP) nhdat $(DATNODLB) ; \
|
$(CHGRP) $(GAMEGRP) nhdat $(DATNODLB) ; \
|
||||||
chmod $(FILEPERM) nhdat $(DATNODLB) )
|
chmod $(FILEPERM) nhdat $(DATNODLB) )
|
||||||
|
|
||||||
dofiles-nodlb:
|
dofiles-nodlb:
|
||||||
# copy over the game files
|
# copy over the game files
|
||||||
( cd dat ; cp $(DAT) $(GAMEDIR) )
|
( cd dat ; cp $(DAT) $(HACKDIR) )
|
||||||
# set up their permissions
|
# set up their permissions
|
||||||
-( cd $(GAMEDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
|
-( cd $(HACKDIR) ; $(CHOWN) $(GAMEUID) $(DAT) ; \
|
||||||
$(CHGRP) $(GAMEGRP) $(DAT) ; \
|
$(CHGRP) $(GAMEGRP) $(DAT) ; \
|
||||||
chmod $(FILEPERM) $(DAT) )
|
chmod $(FILEPERM) $(DAT) )
|
||||||
|
|
||||||
update: $(GAME) recover $(VARDAT) dungeon spec_levs
|
update: $(GAME) recover $(VARDAT) dungeon spec_levs
|
||||||
# (don't yank the old version out from under people who're playing it)
|
# (don't yank the old version out from under people who're playing it)
|
||||||
-mv $(GAMEDIR)/$(GAME) $(GAMEDIR)/$(GAME).old
|
-mv $(HACKDIR)/$(GAME) $(HACKDIR)/$(GAME).old
|
||||||
# quest.dat is also kept open and has the same problems over NFS
|
# quest.dat is also kept open and has the same problems over NFS
|
||||||
# (quest.dat may be inside nhdat if dlb is in use)
|
# (quest.dat may be inside nhdat if dlb is in use)
|
||||||
-mv $(GAMEDIR)/quest.dat $(GAMEDIR)/quest.dat.old
|
-mv $(HACKDIR)/quest.dat $(HACKDIR)/quest.dat.old
|
||||||
-mv $(GAMEDIR)/nhdat $(GAMEDIR)/nhdat.old
|
-mv $(HACKDIR)/nhdat $(HACKDIR)/nhdat.old
|
||||||
# set up new versions of the game files
|
# set up new versions of the game files
|
||||||
( $(MAKE) dofiles )
|
( $(MAKE) dofiles )
|
||||||
# touch time-sensitive files
|
# touch time-sensitive files
|
||||||
@@ -238,12 +237,12 @@ install: $(GAME) recover $(VARDAT) dungeon spec_levs
|
|||||||
# set up the directories
|
# set up the directories
|
||||||
# not all mkdirs have -p; those that don't will create a -p directory
|
# not all mkdirs have -p; those that don't will create a -p directory
|
||||||
-mkdir -p $(SHELLDIR)
|
-mkdir -p $(SHELLDIR)
|
||||||
-rm -rf $(GAMEDIR) $(VARDIR)
|
-rm -rf $(HACKDIR) $(VARDIR)
|
||||||
-mkdir -p $(GAMEDIR) $(VARDIR) $(VARDIR)/save
|
-mkdir -p $(HACKDIR) $(VARDIR) $(VARDIR)/save
|
||||||
-rmdir ./-p
|
-rmdir ./-p
|
||||||
-$(CHOWN) $(GAMEUID) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
|
-$(CHOWN) $(GAMEUID) $(HACKDIR) $(VARDIR) $(VARDIR)/save
|
||||||
$(CHGRP) $(GAMEGRP) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
|
$(CHGRP) $(GAMEGRP) $(HACKDIR) $(VARDIR) $(VARDIR)/save
|
||||||
chmod $(DIRPERM) $(GAMEDIR) $(VARDIR) $(VARDIR)/save
|
chmod $(DIRPERM) $(HACKDIR) $(VARDIR) $(VARDIR)/save
|
||||||
# set up the game files
|
# set up the game files
|
||||||
( $(MAKE) dofiles )
|
( $(MAKE) dofiles )
|
||||||
# set up some additional files
|
# set up some additional files
|
||||||
@@ -251,6 +250,7 @@ install: $(GAME) recover $(VARDAT) dungeon spec_levs
|
|||||||
-( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \
|
-( cd $(VARDIR) ; $(CHOWN) $(GAMEUID) perm record logfile ; \
|
||||||
$(CHGRP) $(GAMEGRP) perm record logfile ; \
|
$(CHGRP) $(GAMEGRP) perm record logfile ; \
|
||||||
chmod $(FILEPERM) perm record logfile )
|
chmod $(FILEPERM) perm record logfile )
|
||||||
|
true; $(POSTINSTALL)
|
||||||
# and a reminder
|
# and a reminder
|
||||||
@echo You may also want to reinstall the man pages via the doc Makefile.
|
@echo You may also want to reinstall the man pages via the doc Makefile.
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# Makefile for NetHack's utility programs.
|
# Makefile for NetHack's utility programs.
|
||||||
# SCCS Id: @(#)Makefile.utl 3.5 1997/04/19
|
# SCCS Id: @(#)Makefile.utl 3.5 2007/12/12
|
||||||
|
|
||||||
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
# newer makes predefine $(MAKE) to 'make' and do smarter processing of
|
||||||
# recursive make calls if $(MAKE) is used
|
# recursive make calls if $(MAKE) is used
|
||||||
@@ -89,7 +89,7 @@
|
|||||||
# flags for debugging:
|
# flags for debugging:
|
||||||
# CFLAGS = -g -I../include
|
# CFLAGS = -g -I../include
|
||||||
|
|
||||||
CFLAGS = -O -I../include
|
#CFLAGS = -O -I../include
|
||||||
LFLAGS =
|
LFLAGS =
|
||||||
|
|
||||||
LIBS =
|
LIBS =
|
||||||
|
|||||||
38
sys/unix/NewInstall.unx
Normal file
38
sys/unix/NewInstall.unx
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
|
||||||
|
Instructions for installing NetHack 3.5
|
||||||
|
using the new hints system
|
||||||
|
=======================================
|
||||||
|
|
||||||
|
For the moment, we are maintaining two ways to configure NetHack. The
|
||||||
|
traditional system, in which Makefiles and includes are edited, and the
|
||||||
|
new hints system which should be easier for most users to configure.
|
||||||
|
|
||||||
|
If you are using the traditional configuration system, see Install.unx.
|
||||||
|
|
||||||
|
1. Look in the sys/unix/hints directory for a file that matches your system.
|
||||||
|
If there isn't one, build one from the other files; if you need more help
|
||||||
|
see the traditional instructions (in Install.unx) for hints. When you
|
||||||
|
get it right please submit it to us.
|
||||||
|
|
||||||
|
2. Check the hints file for anything that may need to be changed for your
|
||||||
|
installation. Most of the time little or nothing will need to be changed.
|
||||||
|
|
||||||
|
3. Configure and build:
|
||||||
|
"$Top" is the top level source directory (the one with README in it).
|
||||||
|
|
||||||
|
cd $Top/sys/unix
|
||||||
|
sh setup.sh hints/NAME_OF_HINTS_FILE
|
||||||
|
cd ../..
|
||||||
|
make all
|
||||||
|
|
||||||
|
If the build fails, remove all the generated files before retrying the
|
||||||
|
build with: cd $Top; make spotless
|
||||||
|
|
||||||
|
4. Install:
|
||||||
|
Depending on your configuration, this step may or may not need to be done
|
||||||
|
as root; check the hints file.
|
||||||
|
cd $Top
|
||||||
|
make install
|
||||||
|
|
||||||
|
5. If it all worked, you're done. If something went wrong, see Install.unx
|
||||||
|
for information about the settings the hints file tried to automate.
|
||||||
31
sys/unix/hints/macosx
Normal file
31
sys/unix/hints/macosx
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# SCCS Id: @(#)macosx 3.5 2007/12/12
|
||||||
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||||
|
# NetHack may be freely redistributed. See license for details.
|
||||||
|
#
|
||||||
|
# Mac OS X (Darwin) hints file
|
||||||
|
# This is for Mac OS X 10.4.10 (Darwin 8.10). If this doesn't work for some
|
||||||
|
# other version of either Darwin or Mac OS X, make a new file for that OS,
|
||||||
|
# don't change this one.
|
||||||
|
# Useful info: http://www.opensource.apple.com/darwinsource/index.html
|
||||||
|
|
||||||
|
# This is a tty build for a single user.
|
||||||
|
|
||||||
|
# XXX temp testing:
|
||||||
|
HACKDIR=/tmp/nhdir5
|
||||||
|
PREFIX=/tmp
|
||||||
|
|
||||||
|
CC=gcc -W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN
|
||||||
|
|
||||||
|
# XXX -g vs -O should go here, -I../include goes in the makefile
|
||||||
|
CFLAGS=-g -I../include $(CFLAGS2)
|
||||||
|
CFLAGS2=-DNOCLIPPING -DNOMAIL -DNOTPARMDECL -DHACKDIR=\"$(HACKDIR)\"
|
||||||
|
|
||||||
|
WINSRC = $(WINTTYSRC)
|
||||||
|
WINOBJ = $(WINTTYOBJ)
|
||||||
|
WINLIB = $(WINTTYLIB)
|
||||||
|
|
||||||
|
WINTTYLIB=-lncurses
|
||||||
|
|
||||||
|
CHOWN=true
|
||||||
|
CHGRP=true
|
||||||
40
sys/unix/hints/macosx-x11
Normal file
40
sys/unix/hints/macosx-x11
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#
|
||||||
|
# SCCS Id: @(#)macosx-x11 3.5 2007/12/12
|
||||||
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||||
|
# NetHack may be freely redistributed. See license for details.
|
||||||
|
#
|
||||||
|
# Mac OS X (Darwin) hints file for X11
|
||||||
|
# This is for Mac OS X 10.4.10 (Darwin 8.10). If this doesn't work for some
|
||||||
|
# other version of either Darwin or Mac OS X, make a new file for that OS,
|
||||||
|
# don't change this one.
|
||||||
|
# Useful info: http://www.opensource.apple.com/darwinsource/index.html
|
||||||
|
|
||||||
|
# XXX temp testing:
|
||||||
|
HACKDIR=/tmp/nhdir5
|
||||||
|
PREFIX=/tmp
|
||||||
|
|
||||||
|
#HACKDIR=$(PREFIX)/games/lib/$(GAME)dir
|
||||||
|
#PREFIX=/usr
|
||||||
|
|
||||||
|
CC=gcc -W -Wimplicit -Wreturn-type -Wunused -Wformat -Wswitch -Wshadow -Wcast-qual -Wwrite-strings -DGCC_WARN
|
||||||
|
|
||||||
|
# XXX -g vs -O should go here, -I../include goes in the makefile
|
||||||
|
CFLAGS=-g -I../include $(CFLAGS2) $(CFLAGS3)
|
||||||
|
CFLAGS2=-DNOCLIPPING -DNOMAIL -DNOTPARMDECL -DHACKDIR=\"$(HACKDIR)\"
|
||||||
|
CFLAGS3=-DX11_GRAPHICS -DDEFAULT_WINDOW_SYS=\"X11\" -DNOTTYGRAPHICS
|
||||||
|
LFLAGS=-L/usr/X11R6/lib
|
||||||
|
|
||||||
|
#WINTTYLIB=-lncurses
|
||||||
|
|
||||||
|
CHOWN=true
|
||||||
|
CHGRP=true
|
||||||
|
|
||||||
|
WINSRC = $(WINX11SRC)
|
||||||
|
WINOBJ = $(WINX11OBJ)
|
||||||
|
WINLIB = $(WINX11LIB)
|
||||||
|
|
||||||
|
VARDATND = x11tiles NetHack.ad pet_mark.xbm
|
||||||
|
|
||||||
|
# XXX install nethack.rc as .nethackrc
|
||||||
|
|
||||||
|
POSTINSTALL= bdftopcf win/X11/nh10.bdf > $(HACKDIR)/nh10.pcd; (cd $(HACKDIR); mkfontdir)
|
||||||
24
sys/unix/hints/unix
Normal file
24
sys/unix/hints/unix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# SCCS Id: @(#)unix 3.5 2007/12/12
|
||||||
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||||
|
# NetHack may be freely redistributed. See license for details.
|
||||||
|
#
|
||||||
|
# unix hints file
|
||||||
|
# This hints file provides the legacy configuration that NetHack has shipped
|
||||||
|
# with historically - this means you will most likely need to hand edit .h
|
||||||
|
# and Makefiles.
|
||||||
|
|
||||||
|
|
||||||
|
HACKDIR=$(PREFIX)/games/lib/$(GAME)dir
|
||||||
|
PREFIX=/usr
|
||||||
|
|
||||||
|
CFLAGS=-O -I../include
|
||||||
|
|
||||||
|
WINSRC = $(WINTTYSRC)
|
||||||
|
WINOBJ = $(WINTTYOBJ)
|
||||||
|
WINLIB = $(WINTTYLIB)
|
||||||
|
|
||||||
|
WINTTYLIB=-ltermlib
|
||||||
|
|
||||||
|
CHOWN=chown
|
||||||
|
CHGRP=chgrp
|
||||||
12
sys/unix/mkmkfile.sh
Normal file
12
sys/unix/mkmkfile.sh
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# SCCS Id: @(#)macosx 3.5 2007/12/12
|
||||||
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||||
|
# NetHack may be freely redistributed. See license for details.
|
||||||
|
|
||||||
|
# build one makefile
|
||||||
|
# args are:
|
||||||
|
# $1 basefile
|
||||||
|
# $2 install path
|
||||||
|
# $3 hints file
|
||||||
|
|
||||||
|
cat $3 $1 > $2
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# SCCS Id: @(#)nethack.sh 3.5 1990/02/26
|
# SCCS Id: @(#)nethack.sh 3.5 2007/12/12
|
||||||
|
|
||||||
HACKDIR=/usr/games/lib/nethackdir
|
HACKDIR=/usr/games/lib/nethackdir
|
||||||
export HACKDIR
|
export HACKDIR
|
||||||
@@ -15,6 +15,12 @@ x) XUSERFILESEARCHPATH="$HACKDIR/%N.ad"
|
|||||||
esac
|
esac
|
||||||
export XUSERFILESEARCHPATH
|
export XUSERFILESEARCHPATH
|
||||||
|
|
||||||
|
# Get font dir added, but only once (and only if there's an xset to be found).
|
||||||
|
xset p >/dev/null 2>&1 && (
|
||||||
|
xset fp- $HACKDIR >/dev/null 2>&1;
|
||||||
|
xset fp+ $HACKDIR
|
||||||
|
)
|
||||||
|
|
||||||
# see if we can find the full path name of PAGER, so help files work properly
|
# see if we can find the full path name of PAGER, so help files work properly
|
||||||
# assume that if someone sets up a special variable (HACKPAGER) for NetHack,
|
# assume that if someone sets up a special variable (HACKPAGER) for NetHack,
|
||||||
# it will already be in a form acceptable to NetHack
|
# it will already be in a form acceptable to NetHack
|
||||||
|
|||||||
@@ -1,41 +1,24 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copy files to their correct locations.
|
# SCCS Id: @(#)macosx 3.5 2007/12/12
|
||||||
|
# Copyright (c) Kenneth Lorber, Kensington, Maryland, 2007.
|
||||||
|
# NetHack may be freely redistributed. See license for details.
|
||||||
#
|
#
|
||||||
# If arguments are given, try symbolic link first. This is not the default
|
# Build and install makefiles.
|
||||||
# so that most people will have the distribution versions stay around so
|
#
|
||||||
# subsequent patches can be applied. People who pay enough attention to
|
# Argument is the hints file to use (or no argument for traditional setup).
|
||||||
# know there's a non-default behavior are assumed to pay enough attention
|
|
||||||
# to keep distribution versions if they modify things.
|
|
||||||
|
|
||||||
# Were we started from the top level? Cope.
|
# Were we started from the top level? Cope.
|
||||||
if [ -f sys/unix/Makefile.top ]; then cd sys/unix; fi
|
if [ -f sys/unix/Makefile.top ]; then cd sys/unix; fi
|
||||||
|
|
||||||
if [ $# -gt 0 ] ; then
|
case "x$1" in
|
||||||
# First, try to make a symbolic link.
|
x) hints=/dev/null
|
||||||
#
|
;;
|
||||||
ln -s Makefile.top Makefile >/dev/null 2>&1
|
*) hints=$1
|
||||||
if [ $? -eq 0 ] ; then
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
echo "Lucky you! Symbolic links."
|
/bin/sh ./mkmkfile.sh Makefile.top ../../Makefile $hints
|
||||||
rm -f Makefile
|
/bin/sh ./mkmkfile.sh Makefile.dat ../../dat/Makefile $hints
|
||||||
|
/bin/sh ./mkmkfile.sh Makefile.doc ../../doc/Makefile $hints
|
||||||
umask 0
|
/bin/sh ./mkmkfile.sh Makefile.src ../../src/Makefile $hints
|
||||||
ln -s sys/unix/Makefile.top ../../Makefile
|
/bin/sh ./mkmkfile.sh Makefile.utl ../../util/Makefile $hints
|
||||||
ln -s ../sys/unix/Makefile.dat ../../dat/Makefile
|
|
||||||
ln -s ../sys/unix/Makefile.doc ../../doc/Makefile
|
|
||||||
ln -s ../sys/unix/Makefile.src ../../src/Makefile
|
|
||||||
ln -s ../sys/unix/Makefile.utl ../../util/Makefile
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Otherwise...
|
|
||||||
|
|
||||||
echo "Copying Makefiles."
|
|
||||||
|
|
||||||
cp Makefile.top ../../Makefile
|
|
||||||
cp Makefile.dat ../../dat/Makefile
|
|
||||||
cp Makefile.doc ../../doc/Makefile
|
|
||||||
cp Makefile.src ../../src/Makefile
|
|
||||||
cp Makefile.utl ../../util/Makefile
|
|
||||||
|
|||||||
@@ -87,19 +87,17 @@ 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
|
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
|
form your X11 server recognizes (usually using a command called bdftosnf
|
||||||
for R4 servers or bdftopcf for R5 servers). Then run mkfontdir on the
|
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,
|
directory containing your font files (you might want to copy them to HACKDIR,
|
||||||
from the top Makefile, after you've done "make install"). If these commands
|
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.
|
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,
|
nethack.sh automatically adds HACKDIR to your font search path. If
|
||||||
you (assuming you are a system administrator) can install the fonts in your
|
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
|
standard X11 font directory the relevent lines in nethack.sh can be removed.
|
||||||
X11 font directory, all persons playing nethack must add that "xset fp+"
|
Alternatively, all persons playing nethack must add that "xset fp+"
|
||||||
command to their .xinitrc file, or whatever file they execute when starting
|
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,
|
X11. See the note below for the alternative installation procedure
|
||||||
though it may clutter your X11 font search path after playing several games,
|
for Sun's OpenWindows.
|
||||||
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
|
If your X11 include files and libraries are not installed in a standard
|
||||||
|
|||||||
@@ -13,29 +13,32 @@ OPTIONS=verbose,news,fruit:pineapple
|
|||||||
OPTIONS=dogname:Dhairrhuwyth
|
OPTIONS=dogname:Dhairrhuwyth
|
||||||
OPTIONS=catname:Ghisteslwchlohm
|
OPTIONS=catname:Ghisteslwchlohm
|
||||||
#
|
#
|
||||||
|
# The graphics symbols mappings below are for NetHack 3.4. NetHack 3.5
|
||||||
|
# uses a new scheme, but this file has not been updated.
|
||||||
|
#
|
||||||
# There are 17 object symbols and various graphics symbols.
|
# There are 17 object symbols and various graphics symbols.
|
||||||
# The descriptions of these symbols can be found in dat/opthelp.
|
# The descriptions of these symbols can be found in dat/opthelp.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Font: nh10 (10x20)
|
# Font: nh10 (10x20)
|
||||||
#
|
#
|
||||||
OBJECTS= 180 183 188 192 181 184 182 189 190 196 \
|
#OBJECTS= 180 183 188 192 181 184 182 189 190 196 \
|
||||||
191 194 193 187 185 186 195
|
# 191 194 193 187 185 186 195
|
||||||
#
|
#
|
||||||
DUNGEON= 032 025 018 013 012 014 011 015 023 024 \
|
#DUNGEON= 032 025 018 013 012 014 011 015 023 024 \
|
||||||
022 021 128 129 130 131 132 035 035 133 \
|
# 022 021 128 129 130 131 132 035 035 133 \
|
||||||
134 135 136 137 145 146 144 124 143 142 \
|
# 134 135 136 137 145 146 144 124 143 142 \
|
||||||
141 140 149 150 031 031 147 148 031 161 \
|
# 141 140 149 150 031 031 147 148 031 161 \
|
||||||
140
|
# 140
|
||||||
#
|
#
|
||||||
TRAPS= 138 138 138 138 138 138 138 138 138 138 \
|
#TRAPS= 138 138 138 138 138 138 138 138 138 138 \
|
||||||
138 138 138 138 138 139 138 138 138 138 \
|
# 138 138 138 138 138 139 138 138 138 138 \
|
||||||
138 138
|
# 138 138
|
||||||
#
|
#
|
||||||
EFFECTS= 151 152 153 154 155 156 157 158 \
|
#EFFECTS= 151 152 153 154 155 156 157 158 \
|
||||||
159 160 161 162 \
|
# 159 160 161 162 \
|
||||||
163 164 165 166 167 168 169 170 \
|
# 163 164 165 166 167 168 169 170 \
|
||||||
171 172 173 174 175 176 177 178 179
|
# 171 172 173 174 175 176 177 178 179
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Font: ibm (8x14)
|
# Font: ibm (8x14)
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/* SCCS Id: @(#)termcap.c 3.5 2005/11/19 */
|
/* SCCS Id: @(#)termcap.c 3.5 2007/12/12 */
|
||||||
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
|
||||||
/* NetHack may be freely redistributed. See license for details. */
|
/* NetHack may be freely redistributed. See license for details. */
|
||||||
|
|
||||||
@@ -803,7 +803,7 @@ cl_eos() /* free after Robert Viduya */
|
|||||||
|
|
||||||
#include <curses.h>
|
#include <curses.h>
|
||||||
|
|
||||||
#if !defined(LINUX) && !defined(__FreeBSD__)
|
#if !defined(LINUX) && !defined(__FreeBSD__) && !defined(NOTPARMDECL)
|
||||||
extern char *tparm();
|
extern char *tparm();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user