games/nethack*: enable curses user interface

The "nethack" wrapper script that papers over the existence of nethack-tty
and nethack-x11 has been made more like the original way to select UIs
(since there are now 3, and each game binary supports more than one of them).
This commit is contained in:
rhialto 2023-09-02 13:45:14 +00:00
parent 013ac58743
commit 1e8773910d
15 changed files with 214 additions and 116 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile,v 1.34 2020/01/28 21:11:30 rhialto Exp $
# $NetBSD: Makefile,v 1.35 2023/09/02 13:45:14 rhialto Exp $
#
.include "../../games/nethack-lib/Makefile.common"
@ -34,7 +34,8 @@ CONF_FILES_PERMS+= /dev/null ${VARDIR}/record \
${NETHACK_USER} ${NETHACK_GROUP} 664
CONF_FILES_PERMS+= /dev/null ${VARDIR}/xlogfile \
${NETHACK_USER} ${NETHACK_GROUP} 664
CONF_FILES+= /dev/null ${HACKDIR}/sysconf
CONF_FILES_PERMS+= ${HACKDIR}/sysconf.example ${HACKDIR}/sysconf \
${NETHACK_USER} ${NETHACK_GROUP} 644
REQD_DIRS_PERMS+= ${VARDIR} \
${NETHACK_USER} ${NETHACK_GROUP} 775
@ -49,7 +50,10 @@ CHECK_FILES_SKIP+= ${VARDIR}/logfile \
# Like bin/nethack-*, bin/recover also has to operate on save files
# owned by ${NETHACK_USER}:${NETHACK_GROUP}. This means bin/recover
# can only work when it's setuid'ed to that user/group.
# can only work when it's setuid'ed to that user:group.
SPECIAL_PERMS+= ${PREFIX}/bin/recover ${GAMEPERM}
post-install:
cd ${WRKSRC} && ${INSTALL_DATA} sys/unix/sysconf ${DESTDIR}${HACKDIR}/sysconf.example
.include "../../mk/bsd.pkg.mk"

View File

@ -1,4 +1,4 @@
# $NetBSD: Makefile.common,v 1.46 2023/08/27 15:59:19 rhialto Exp $
# $NetBSD: Makefile.common,v 1.47 2023/09/02 13:45:14 rhialto Exp $
#
# used by games/nethack/Makefile
# used by games/nethack-lib/Makefile
@ -21,7 +21,7 @@ NETHACK_DIR= nethackdir${NETHACK_SAVEVER:S/.//g}
NETHACK_SAVEVER= 3.6.0
DISTNAME= nethack-${NETHACK_DISTVER}-src
PKGREVISION= 1
PKGREVISION= 2
CATEGORIES= games
MASTER_SITES= https://www.nethack.org/download/${NETHACK_BASEVER}/
EXTRACT_SUFX= .tgz
@ -30,6 +30,7 @@ MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= https://www.nethack.org/
LICENSE= nethack-license
# sh: ../util/makedefs: permission denied
MAKE_JOBS_SAFE= no
.if !defined(META_PACKAGE)
@ -38,9 +39,20 @@ WRKSRC= ${WRKDIR}/NetHack-${NETHACK_BASEVER}
HAS_CONFIGURE= yes
CONFIGURE_SCRIPT= ./sys/unix/setup.sh
USE_TOOLS+= gzip yacc lex awk
USE_LANGUAGES+= c c++
# NetBSD's curses doesn't put the cursor where the game wants it
# but leaves it in some random position. The playability of the game
# depends on it, though. Therefore we prefer ncurses.
USE_NCURSES= yes
.include "../../mk/curses.buildlink3.mk"
.include "../../mk/termcap.buildlink3.mk"
# If we link ncurses, it has termcap/terminfo built in;
# we should not link with the native version.
. if "${CURSES_TYPE}" != "ncurses"
. include "../../mk/termcap.buildlink3.mk"
. endif
OPSYSVARS+= NETHACK_OS
NETHACK_OS.Linux= SYSV
@ -74,14 +86,23 @@ MAKE_ENV+= INSTALL_DATA=${INSTALL_DATA:Q}
MAKE_ENV+= INSTALL_SCRIPT=${INSTALL_SCRIPT:Q}
MAKE_ENV+= INSTALL_PROGRAM=${INSTALL_PROGRAM:Q}
. if "${CURSES_TYPE}" == "ncurses"
WINTTYLIB= # no separate termcap/terminfo needed
. else
WINTTYLIB= -L${BUILDLINK_PREFIX.termcap}/lib \
${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.termcap}/lib \
-l${BUILDLINK_LIBNAME.termcap}
${BUILDLINK_LDADD.termcap}
. endif
MAKE_ENV+= WINTTYLIB=${WINTTYLIB:Q}
WINCURSESLIB= -L${BUILDLINK_PREFIX.curses}/lib \
${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.curses}/lib \
${BUILDLINK_LDADD.curses}
MAKE_ENV+= WINCURSESLIB=${WINCURSESLIB:Q}
CHECK_PORTABILITY_SKIP+= sys/unix/hints/macosx.sh
pre-configure:
post-extract:
${RUN}${CHMOD} 755 ${WRKSRC}/sys/unix/setup.sh
# Substitute NETHACK_DIR in PLIST.

View File

@ -1,4 +1,4 @@
@comment $NetBSD: PLIST,v 1.9 2019/10/24 11:51:23 pho Exp $
@comment $NetBSD: PLIST,v 1.10 2023/09/02 13:45:14 rhialto Exp $
bin/nethack
bin/recover
man/man6/dgn_comp.6
@ -137,6 +137,7 @@ share/${NETHACK_DIR}/soko3-2.lev
share/${NETHACK_DIR}/soko4-1.lev
share/${NETHACK_DIR}/soko4-2.lev
share/${NETHACK_DIR}/symbols
share/${NETHACK_DIR}/sysconf.example
share/${NETHACK_DIR}/tower1.lev
share/${NETHACK_DIR}/tower2.lev
share/${NETHACK_DIR}/tower3.lev

View File

@ -1,16 +1,18 @@
$NetBSD: distinfo,v 1.31 2023/08/27 15:59:19 rhialto Exp $
$NetBSD: distinfo,v 1.32 2023/09/02 13:45:14 rhialto Exp $
BLAKE2s (nethack-367-src.tgz) = 56c447099ddfdbd1c2dcb0d85b859031057c76fa6a885d9a0fcaae87d47cd371
SHA512 (nethack-367-src.tgz) = 7890d17e087f4344d30e9a908fa1f24d7c72bc714c4a6415ed59800902cc0aa6b3ce94c5d73857b0222349b96b1fdc8bf3f93b3ac1153477ad1419af7b0d3fb5
Size (nethack-367-src.tgz) = 5577415 bytes
SHA1 (patch-ai) = 73c5b2ea1227531089474705f2f18bc411366365
SHA1 (patch-include_config.h) = c48f9a5a758ddffb4825d7959e8ecaf30ea12b91
SHA1 (patch-include_config.h) = 963b9b6e580cbdf5516207a485a0baa6b0b7909f
SHA1 (patch-include_system.h) = b1b53f513c3f6983e0e56eace74c71875b5df3f2
SHA1 (patch-include_unixconf.h) = 6846c72526f3bda7fe3eccbce641e5feee14d901
SHA1 (patch-src_mail.c) = 5b2a67e0b4d0fc9c715573d1bad6bcafa67b469e
SHA1 (patch-sys_unix_Makefile.doc) = 6219620c50dc7eac6601f87d4a295cb10f02e141
SHA1 (patch-sys_unix_Makefile.src) = 639f33146101e91d5fabed47f9e9703b957e48d1
SHA1 (patch-sys_unix_Makefile.src) = 36c4adc70551b5a460ebeb86eeb34fb188e5b420
SHA1 (patch-sys_unix_Makefile.top) = 0736aafda67dec45657f9f15338ce2f89add9747
SHA1 (patch-sys_unix_Makefile.utl) = 55da562baa7240d811eb7597e77a8beaf58d7d81
SHA1 (patch-sys_unix_nethack.sh) = 0a0178e3bdc3e78f004bd0112938f3c9e49faf40
SHA1 (patch-sys_unix_Makefile.utl) = b36a85ffa0bd561c2d77776cdf68e6a89273d5c9
SHA1 (patch-sys_unix_nethack.sh) = 0f400835ea9505e5429cc51eccdb7b2e48799777
SHA1 (patch-util_recover.c) = 60e5ec35313a97cf788ff1ed4a4772bbcf24bc48
SHA1 (patch-win_curses_cursmain.c) = f7c51305c65c08686b00ba92a128f9c995dcf1dc
SHA1 (patch-win_curses_curswins.c) = b65ae0f74477cf7c1dbc2ff1f802841270dae7d4

View File

@ -1,6 +1,6 @@
$NetBSD: patch-include_config.h,v 1.2 2023/08/27 15:59:19 rhialto Exp $
$NetBSD: patch-include_config.h,v 1.3 2023/09/02 13:45:14 rhialto Exp $
Make window system configurable.
Make included UI types configurable.
--- include/config.h.orig 2023-02-15 21:52:57.000000000 +0000
+++ include/config.h

View File

@ -1,6 +1,6 @@
$NetBSD: patch-sys_unix_Makefile.src,v 1.4 2023/08/27 15:59:19 rhialto Exp $
$NetBSD: patch-sys_unix_Makefile.src,v 1.5 2023/09/02 13:45:14 rhialto Exp $
Make window system configurable.
Make included UI types configurable.
--- sys/unix/Makefile.src.orig 2023-02-15 21:52:57.000000000 +0000
+++ sys/unix/Makefile.src
@ -9,7 +9,7 @@ Make window system configurable.
# Usually, the C compiler driver is used for linking:
-#LINK=$(CC)
+.if "${GTYPE}" == "-qt"
+.if "${QT_GRAPHICS}" != ""
+LINK=$(CXX)
+.else
+LINK=$(CC)
@ -17,33 +17,26 @@ Make window system configurable.
# Pick the SYSSRC and SYSOBJ lines corresponding to your desired operating
# system.
@@ -170,9 +174,24 @@ GNOMEINC=-I/usr/lib/glib/include -I/usr/
@@ -169,10 +173,17 @@ GNOMEINC=-I/usr/lib/glib/include -I/usr/
# flags for debugging:
# CFLAGS = -g -I../include
+#CFLAGS += -ggdb
+#LFLAGS += -ggdb
-#CFLAGS = -O -I../include
+CFLAGS += -I../include
#LFLAGS =
+.if "${GTYPE}" == "-x11" || "${GTYPE}" == "-qt"
+.if "${X11_GRAPHICS}" != "" || "${QT_GRAPHICS}" != ""
+CFLAGS += -I${X11BASE}/include
+LFLAGS += ${LDFLAGS}
+.endif
+
+.if "${GTYPE}" == "-tty"
+CFLAGS += -DGTYPE_TTY
+.elif "${GTYPE}" == "-curses"
+CFLAGS += -DGTYPE_CURSES
+.elif "${GTYPE}" == "-x11"
+CFLAGS += -DGTYPE_X11
+.elif "${GTYPE}" == "-qt"
+CFLAGS += -DGTYPE_QT
+.endif
+
# 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
# the C++ libraries linked in.
@@ -267,13 +286,25 @@ WINBEOBJ =
@@ -267,13 +278,26 @@ WINBEOBJ =
#WINBEOBJ = winbe.o NHWindow.o NHMenuWindow.o NHMapWindow.o tile.o
#
#
@ -57,14 +50,15 @@ Make window system configurable.
#WINOBJ = $(WINCURSESOBJ)
-#
+
+.if "${GTYPE}" == "-tty"
+.elif "${GTYPE}" == "-curses"
+.if "${CURSES_GRAPHICS}" != ""
+WINSRC += $(WINCURSESSRC)
+WINOBJ += $(WINCURSESOBJ)
+.elif "${GTYPE}" == "-x11"
+.endif
+.if "${X11_GRAPHICS}" != ""
+WINSRC += $(WINX11SRC)
+WINOBJ += $(WINX11OBJ)
+.elif "$(GTYPE)" == "-qt"
+.endif
+.if "${QT_GRAPHICS}" != ""
+WINSRC += $(WINQT4SRC)
+WINOBJ += $(WINQT4OBJ)
+.endif
@ -72,7 +66,7 @@ Make window system configurable.
# on some systems the termcap library is in -ltermcap or -lcurses
# on 386 Xenix, the -ltermlib tputs() seems not to work; use -lcurses instead
# Sysatt uses shared library in lieu of this option
@@ -292,14 +323,14 @@ WINBEOBJ =
@@ -292,14 +316,14 @@ WINBEOBJ =
#
# libraries for X11
# If USE_XPM is defined in config.h, you will also need -lXpm here.
@ -89,14 +83,12 @@ Make window system configurable.
#
# libraries for Qt 4
WINQT4LIB = `pkg-config QtGui --libs`
@@ -320,18 +351,27 @@ WINGEMLIB = -le_gem -lgem
WINBELIB = -lbe
@@ -321,17 +345,28 @@ WINBELIB = -lbe
#
# libraries for curses port
-# link with ncurses
# link with ncurses
-WINCURSESLIB = -lncurses
+# link with (n)curses
+WINCURSESLIB = -lcurses # or -L${PREFIX}/lib -Wl,-R,${PREFIX}/lib -lncurses
+#WINCURSESLIB = -lncurses # Set from the pkg Makefile instead
# link with pdcurses for SDL, installed in a separate directory
#WINCURSESLIB = -L/usr/local/lib/pdcurses -lpdcurses -lSDL
# same as above, for XCurses
@ -107,14 +99,15 @@ Make window system configurable.
#
# For Curses
#WINLIB = $(WINCURSESLIB)
-#
#
+
+.if "${GTYPE}" == "-tty"
+.elif "${GTYPE}" == "-curses"
+.if "${CURSES_GRAPHICS}" != ""
+WINLIB += $(WINCURSESLIB)
+.elif "${GTYPE}" == "-x11"
+.endif
+.if "${X11_GRAPHICS}" != ""
+WINLIB += $(WINX11LIB)
+.elif "${GTYPE}" == "-qt"
+.endif
+.if "$(QT_GRAPHICS)" != ""
+WINLIB += $(WINQTLIB)
+.endif
+

View File

@ -1,6 +1,6 @@
$NetBSD: patch-sys_unix_Makefile.utl,v 1.4 2023/08/27 15:59:19 rhialto Exp $
$NetBSD: patch-sys_unix_Makefile.utl,v 1.5 2023/09/02 13:45:14 rhialto Exp $
Make window system configurable.
Make included UI types configurable.
--- sys/unix/Makefile.utl.orig 2023-02-15 21:52:57.000000000 +0000
+++ sys/unix/Makefile.utl
@ -9,24 +9,7 @@ Make window system configurable.
# CFLAGS = -g -I../include
-#CFLAGS = -O -I../include
+CFLAGS = -I../include
+CFLAGS += -I../include
#LFLAGS =
# we specify C preprocessor flags via CFLAGS; files built with default rules
@@ -104,6 +104,16 @@ CPPFLAGS =
LIBS =
+.if "${GTYPE}" == "-tty"
+CFLAGS += -DGTYPE_TTY
+.elif "${GTYPE}" == "-curses"
+CFLAGS += -DGTYPE_CURSES
+.elif "${GTYPE}" == "-x11"
+CFLAGS += -DGTYPE_X11
+.elif "${GTYPE}" == "-qt"
+CFLAGS += -DGTYPE_QT
+.endif
+
# If you are cross-compiling, you must use this:
#OBJDIR = .
# otherwise, you can save a little bit of disk space with this:

View File

@ -1,13 +1,11 @@
$NetBSD: patch-sys_unix_nethack.sh,v 1.2 2023/08/27 15:59:19 rhialto Exp $
$NetBSD: patch-sys_unix_nethack.sh,v 1.3 2023/09/02 13:45:14 rhialto Exp $
Modify the wrapper script so users can choose the UI type on the
command line.
Modify the wrapper script to find the app-defaults, the font path,
the nethack binary with the highest number of UIs.
(Perhaps this should be handled by the pkg_alternatives framework.)
--- sys/unix/nethack.sh.orig 2019-05-08 07:00:16.000000000 +0000
--- sys/unix/nethack.sh.orig 2023-02-15 21:52:57.000000000 +0000
+++ sys/unix/nethack.sh
@@ -3,9 +3,32 @@
@@ -3,23 +3,56 @@
# Copyright (c) 2015 by Kenneth Lorber, Kensington, Maryland
# NetHack may be freely redistributed. See license for details.
@ -15,30 +13,60 @@ command line.
+HACKDIR="@HACKDIR@"
export HACKDIR
-HACK=$HACKDIR/nethack
+
+UILIST="tty curses x11 qt"
+findbin ()
+{
+ for x in $UILIST; do
+ if [ -x "@PREFIX@/bin/nethack-$x" ]; then
+ echo $x
+ return
+ fi
+ done
+}
+
+if [ -z "$1" -o -z "${1%%-*}" ]; then
+ UI=`findbin`
+else
+ UI=$1
+ shift
-# Since Nethack.ad is installed in HACKDIR, add it to XUSERFILESEARCHPATH
+UILIST="curses tty"
+if [ -n "$DISPLAY" ]
+then
+ UILIST="qt x11 $UILIST"
+fi
+
+if [ -z "$UI" ]; then
+ echo "No UI ($UILIST) found"
+case "$1" in
+ qt|x11|curses|tty)
+ echo "Please select the UI by putting 'windowtype:$1' in your \$NETHACKOPTIONS"
+ echo "or 'OPTIONS=windowtype:$1' at the top of your \$HOME/.nethackrc file."
+ exit 1
+ ;;
+esac
+
+HACK=""
+
+for x in $UILIST
+do
+ if [ -x "@PREFIX@/bin/nethack-$x" ]
+ then
+ HACK="@PREFIX@/bin/nethack-$x"
+ break
+ fi
+done
+
+if [ -z "$HACK" ]
+then
+ echo "No UI found (nethack-$UILIST)"
+ exit 1
+fi
+HACK="@PREFIX@/bin/nethack-${UI}"
# Since Nethack.ad is installed in HACKDIR, add it to XUSERFILESEARCHPATH
+
+# Since app-defaults/NetHack is installed in @PREFIX@/lib/X11,
+# add it to XUSERFILESEARCHPATH.
case "x$XUSERFILESEARCHPATH" in
-x) XUSERFILESEARCHPATH="$HACKDIR/%N.ad"
+x) XUSERFILESEARCHPATH="@PREFIX@/lib/X11/app-defaults/%N"
;;
-*) XUSERFILESEARCHPATH="$XUSERFILESEARCHPATH:$HACKDIR/%N.ad"
+*) XUSERFILESEARCHPATH="$XUSERFILESEARCHPATH:@PREFIX@/lib/X11/app-defaults/%N"
;;
esac
export XUSERFILESEARCHPATH
# Get font dir added, but only once (and only if there's an xset to be found).
-test -n "$DISPLAY" -a -f $HACKDIR/fonts.dir && xset p >/dev/null 2>&1 && (
- xset fp- $HACKDIR >/dev/null 2>&1;
- xset fp+ $HACKDIR
+test -n "$DISPLAY" -a -f @PREFIX@/share/fonts/X11/misc/fonts.dir && xset p >/dev/null 2>&1 && (
+ if ! xset q | grep @PREFIX@/share/fonts/X11/misc >/dev/null 2>&1
+ then
+ xset fp+ @PREFIX@/share/fonts/X11/misc
+ fi
)
# see if we can find the full path name of PAGER, so help files work properly

View File

@ -0,0 +1,15 @@
$NetBSD: patch-win_curses_cursmain.c,v 1.1 2023/09/02 13:45:14 rhialto Exp $
Include the window resizing code also for NetBSD curses.
--- win/curses/cursmain.c.orig 2023-02-15 21:52:57.000000000 +0000
+++ win/curses/cursmain.c
@@ -277,7 +277,7 @@ curses_get_nh_event()
do_reset = TRUE;
}
#endif
-#ifdef NCURSES_VERSION /* Is there a better way to detect ncurses? */
+#if 1 /* def NCURSES_VERSION */ /* Is there a better way to detect ncurses? */
if (is_term_resized(term_rows, term_cols)) {
if (!isendwin()) {
endwin();

View File

@ -0,0 +1,32 @@
$NetBSD: patch-win_curses_curswins.c,v 1.1 2023/09/02 13:45:14 rhialto Exp $
NetBSD's curses crashes when status_window is NULL, which can happen
while #quit'ing.
--- win/curses/curswins.c.orig 2023-08-28 19:22:25.737331832 +0000
+++ win/curses/curswins.c
@@ -173,12 +173,18 @@ curses_refresh_nethack_windows()
touchwin(stdscr);
refresh();
} else {
- touchwin(status_window);
- wnoutrefresh(status_window);
- touchwin(map_window);
- wnoutrefresh(map_window);
- touchwin(message_window);
- wnoutrefresh(message_window);
+ if (status_window) {
+ touchwin(status_window);
+ wnoutrefresh(status_window);
+ }
+ if (map_window) {
+ touchwin(map_window);
+ wnoutrefresh(map_window);
+ }
+ if (message_window) {
+ touchwin(message_window);
+ wnoutrefresh(message_window);
+ }
if (inv_window) {
touchwin(inv_window);
wnoutrefresh(inv_window);

View File

@ -1,7 +1,8 @@
===========================================================================
$NetBSD: MESSAGE,v 1.2 2002/09/24 12:30:01 wiz Exp $
$NetBSD: MESSAGE,v 1.3 2023/09/02 13:45:14 rhialto Exp $
You can run the tty NetHack by simply typing: "nethack"
or with "nethack tty"
You can run the tty NetHack by typing "nethack".
Select the windowing type with "OPTIONS=windowtype:tty" in your
$HOME/.nethackrc. Another possible values is "curses".
===========================================================================

View File

@ -1,17 +1,23 @@
# $NetBSD: Makefile,v 1.21 2019/10/24 11:51:52 pho Exp $
# $NetBSD: Makefile,v 1.22 2023/09/02 13:45:14 rhialto Exp $
#
.include "../../games/nethack-lib/Makefile.common"
PKGNAME= nethack-tty-${NETHACK_VERSION}
COMMENT= The tty/console based version of NetHack
COMMENT= The tty and curses based version of NetHack
DEPENDS+= nethack-lib-${NETHACK_VERSION}{,nb*}:../../games/nethack-lib
BUILD_TARGET= nethack
CONFIGURE_ARGS= sys/unix/hints/pkgsrc
MAKE_ENV+= GAME=nethack
MAKE_ENV+= GTYPE=-tty
pre-configure:
( ${ECHO} '#-PRE'; \
${ECHO} 'CFLAGS+=-DCURSES_GRAPHICS'; \
${ECHO} 'CURSES_GRAPHICS=1'; \
) > ${WRKSRC}/sys/unix/hints/pkgsrc
INSTALLATION_DIRS+= bin
do-install:

View File

@ -1,10 +1,12 @@
===========================================================================
$NetBSD: MESSAGE,v 1.7 2019/12/07 13:27:08 rhialto Exp $
$NetBSD: MESSAGE,v 1.8 2023/09/02 13:45:14 rhialto Exp $
You can run the X11 NetHack by typing "nethack x11".
You can run the X11 NetHack by typing "nethack".
Select the windowing type with "OPTIONS=windowtype:x11" in your
$HOME/.nethackrc. Other possible values are "curses" and "tty".
Two fonts were installed for NetHack. You must add
${PREFIX}/share/fonts/X11/misc to fontpath and set one of
Two fonts were installed for NetHack. The nethack wrapper script
adds ${PREFIX}/share/fonts/X11/misc to fontpath. You can set one of
NetHack*map*font: nh10
NetHack*map*font: -misc-fixed-medium-r-normal-ibmpc-14-120-75-75-c-80-iso8859-1
@ -21,7 +23,6 @@ find its app-defaults file:
XFILESEARCHPATH=%D:/usr/pkg/lib/X11/%T/%N%C:/usr/pkg/lib/X11/%T/%N
To fall back to tty mode, use "NETHACKOPTIONS=windowtype:tty nethack"
or set that option in your .nethackrc file.
but the nethack wrapper script sets XUSERFILESEARCHPATH for you.
===========================================================================

View File

@ -1,9 +1,9 @@
# $NetBSD: Makefile,v 1.42 2020/01/29 20:23:16 rhialto Exp $
# $NetBSD: Makefile,v 1.43 2023/09/02 13:45:14 rhialto Exp $
.include "../../games/nethack-lib/Makefile.common"
PKGNAME= nethack-x11-${NETHACK_VERSION}
COMMENT= The X11 version of NetHack
COMMENT= The X11 and tty/curses version of NetHack
CATEGORIES+= x11
@ -11,7 +11,7 @@ DEPENDS+= nethack-lib-${NETHACK_VERSION}{,nb*}:../../games/nethack-lib
BUILD_TARGET= nethack ${VARDATND}
MAKE_ENV+= GAME=nethack
MAKE_ENV+= GTYPE=-x11
CONFIGURE_ARGS= sys/unix/hints/pkgsrc
VARDATND= x11tiles NetHack.ad pet_mark.xbm pilemark.xbm rip.xpm
MAKE_ENV+= VARDATND=${VARDATND:Q}
@ -25,6 +25,15 @@ PATCHDIR= ${.CURDIR}/../../games/nethack-lib/patches
SPECIAL_PERMS+= ${PREFIX}/bin/nethack-x11 \
${GAMEPERM}
pre-configure:
( ${ECHO} '#-PRE'; \
${ECHO} 'CFLAGS+=-DCURSES_GRAPHICS'; \
${ECHO} 'CURSES_GRAPHICS=1'; \
${ECHO} 'CFLAGS+=-DX11_GRAPHICS'; \
${ECHO} 'X11_GRAPHICS=1'; \
) > ${WRKSRC}/sys/unix/hints/pkgsrc
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/src/nethack \
${DESTDIR}${PREFIX}/bin/nethack-x11
@ -48,6 +57,9 @@ post-install:
${DESTDIR}${HACKDIR}/nethack.x11.rc
.include "../../x11/libXaw/buildlink3.mk"
.include "../../x11/libXext/buildlink3.mk"
.include "../../x11/libXmu/buildlink3.mk"
.include "../../x11/libXpm/buildlink3.mk"
.include "../../x11/libXt/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"

View File

@ -1,10 +1,9 @@
===========================================================================
$NetBSD: MESSAGE,v 1.2 2002/09/24 12:30:00 wiz Exp $
$NetBSD: MESSAGE,v 1.3 2023/09/02 13:45:14 rhialto Exp $
You can run the tty version of nethack by executing:
"nethack" or "nethack tty"
The X11 version: "nethack x11"
The QT version: "nethack qt"
Please select the UI by putting 'windowtype:x11' in your $NETHACKOPTIONS
or 'OPTIONS=windowtype:tty' at the top of your $HOME/.nethackrc file.
Available UIs are tty, curses and x11.
Happy Hacking!