]> granicus.if.org Git - nethack/commitdiff
VMS curses
authorPatR <rankin@nethack.org>
Sat, 16 Feb 2019 23:34:23 +0000 (15:34 -0800)
committerPatR <rankin@nethack.org>
Sat, 16 Feb 2019 23:34:23 +0000 (15:34 -0800)
Add untested support for building the curses interface instead of or
in addtion to tty.

While in there, update Makefile.src's isaac64.obj dependency.

sys/vms/Makefile.src
sys/vms/vmsbuild.com

index 86a419a44c55da1704e48de5cfe33c8fda700069..65969830119eded975ecf75c920ecbbd7a434691 100644 (file)
@@ -1,5 +1,5 @@
 #      NetHack Makefile (VMS) - for building nethack itself.
-#      NetHack 3.6     Makefile.src    $NHDT-Date: 1549835645 2019/02/10 21:54:05 $    $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.33 $
+#      NetHack 3.6     Makefile.src    $NHDT-Date: 1550360058 2019/02/16 23:34:18 $    $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.34 $
 # Copyright (c) 2011 by Robert Patrick Rankin
 # NetHack may be freely redistributed.  See license for details.
 
@@ -23,6 +23,7 @@ INC = [-.include]
 SYSSHR = [-.sys.share]
 SRC = [-.src]
 TTY = [-.win.tty]
+CURSES = [-.win.curses]
 UTL = [-.util]
 VMS = [-.sys.vms]
 WINSHR = [-.win.share]
@@ -74,6 +75,13 @@ WINTTYSRC = $(TTY)getline.c $(TTY)termcap.c $(TTY)topl.c $(TTY)wintty.c \
        $(TERMCAPSRC)
 WINTTYOBJ = getline.obj,termcap.obj,topl.obj,wintty.obj $(TERMCAPOBJ)
 #
+# curses; doesn't use termcap; may or may not support TERMTABLE for non-DEC tty
+WINCURSESSRC = $(CURSES)cursdial.c $(CURSES)cursmesg.c $(CURSES)cursinit.c \
+       $(CURSES)cursmisc.c $(CURSES)cursinvt.c $(CURSES)cursstat.c \
+       $(CURSES)cursmain.c $(CURSES)curswins.c
+WINCURSESOBJ = cursdial.obj,cursmesg.obj,cursinit.obj,cursmisc.obj, \
+       cursinvt.obj,cursstat.obj,cursmain.obj,curswins.obj
+#
 # an X11 port (not supported under DECwindows)
 WINX11SRC = $(X11)Window.c $(X11)dialogs.c $(X11)winX.c $(X11)winmap.c \
        $(X11)winmenu.c $(X11)winmesg.c $(X11)winmisc.c $(X11)winstat.c \
@@ -82,8 +90,33 @@ WINX11OBJ = Window.obj,dialogs.obj,winX.obj,winmap.obj,winmenu.obj,\
        winmesg.obj,winmisc.obj,winstat.obj,wintext.obj,winval.obj,tile.obj
 #
 #
+# make sure both WANT_WIN_TTY and WANT_WIN_CURSES have a value
+.ifndef WANT_WIN_CURSES
+WANT_WIN_CURSES=0
+.endif
+.ifndef WANT_WIN_TTY
+.if WANT_WIN_CURSES
+WANT_WIN_TTY=0
+.else
+WANT_WIN_TTY=1
+.endif
+.endif
+
+.if WANT_WIN_TTY
 WINSRC = $(WINTTYSRC)
 WINOBJ = $(WINTTYOBJ)
+.if WANT_WIN_CURSES
+WINSRC +=,$(WINCURSESSRC)
+WINOBJ += $(WINCURSESOBJ)
+.endif
+.else
+.if WANT_WIN_CURSES
+WINSRC = $(WINCURSESSRC)
+WINOBJ = $(WINCURSESOBJ)
+.else
+# Neither WANT_WIN_TTY nor WANT_WIN_CURSES?
+.endif
+.endif
 
 # make NetHack for VMS
 SYSTEM = SysVMS.timestamp;
@@ -344,7 +377,7 @@ vmsfiles.obj :      $(VMS)vmsfiles.c $(CONFIG_H)
 vmsmail.obj :  $(VMS)vmsmail.c $(CONFIG_H) $(INC)mail.h \
                $(INC)wintype.h $(INC)winprocs.h
 #      conditionally used code -- VMS always wants these
-isaac64.obj :  isaac64.c
+isaac64.obj :  isaac64.c $(CONFIG_H) $(INC)isaac64.h
 random.obj :   random.c $(HACK_H)
 random.c :     $(SYSSHR)random.c
        copy $(SYSSHR)random.c random.c
index 3b6e8229567d51591274777e19b6fb235d649961..28b6dba1a224f44dd8a7d74fca5d143ce00f2f74 100755 (executable)
@@ -1,24 +1,30 @@
 $ ! vms/vmsbuild.com -- compile and link NetHack 3.6.*                 [pr]
 $      version_number = "3.6.2"
-$ ! $NHDT-Date: 1549835647 2019/02/10 21:54:07 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.21 $
+$ ! $NHDT-Date: 1550360057 2019/02/16 23:34:17 $  $NHDT-Branch: NetHack-3.6.2-beta01 $:$NHDT-Revision: 1.22 $
 $ ! Copyright (c) 2018 by Robert Patrick Rankin
 $ ! NetHack may be freely redistributed.  See license for details.
 $ !
 $ ! usage:
 $ !   $ set default [.src]     !or [-.-.src] if starting from [.sys.vms]
-$ !   $ @[-.sys.vms]vmsbuild  [compiler-option]  [link-option]  [cc-switches]
+$ !   $ @[-.sys.vms]vmsbuild  [compiler-option]  [link-option]  [cc-switches] -
+$ !                          [linker-switches]  [interface]
 $ ! options:
 $ !    compiler-option :  either "VAXC", "DECC" or "GNUC" or "" !default VAXC
 $ !    link-option     :  either "SHARE[able]" or "LIB[rary]"  !default SHARE
 $ !    cc-switches     :  optional qualifiers for CC (such as "/noOpt/Debug")
+$ !     linker-switches :  optional qualifers for LINK (/Debug or /noTraceback)
+$ !     interface      :  "TTY" or "CURSES" or "TTY+CURSES" or "CURSES+TTY"
 $ ! notes:
-$ !    If the symbol "CC" is defined, compiler-option is not used.
+$ !    If the symbol "CC" is defined, compiler-option is not used (unless it
+$ !      is "LINK").
 $ !    The link-option refers to VAXCRTL (C Run-Time Library) handling;
 $ !      to specify it while letting compiler-option default, use "" as
 $ !      the compiler-option.
 $ !    To re-link without compiling, use "LINK" as special 'compiler-option';
 $ !      to re-link with GNUC library, 'CC' must begin with "G" (or "g").
-$ !    Default wizard definition moved to include/vmsconf.h.
+$ !    All options are positional; to specify a later one without an earlier
+$ !      one, use "" in the earlier one's position, such as
+$ !    $ @[-.sys.vms]vmsbuild "" "" "" "" "TTY+CURSES"
 $
 $        decc_dflt = f$trnlnm("DECC$CC_DEFAULT")
 $        j = (decc_dflt.nes."") .and. 1
@@ -233,6 +239,18 @@ $ if f$search("random.c").eqs."" then  copy [-.sys.share]random.c []*.*
 $ if f$search("tclib.c") .eqs."" then  copy [-.sys.share]tclib.c  []*.*
 $ if f$search("[-.util]lev_yacc.c").eqs."" then  @[-.sys.vms]spec_lev.com
 $!
+$      p5 := 'p5'
+$      ttysrc = "[-.win.tty]getline,[-.win.tty]termcap" -
+               + ",[-.win.tty]topl,[-.win.tty]wintty"
+$      cursessrc = "[-.win.curses]cursdial,[-.win/curses]cursmesg" -
+               + ",[-.win.curses]cursinit,[-.win.curses]cursmisc" -
+               + ",[-.win.curses]cursinvt,[-.win.curses]cursstat" -
+               + ",[-.win.curses]cursmain,[-.win.curses]curswins"
+$      interface = ttysrc !default
+$      if p5.eqs."CURSES" then  interface = cursessrc
+$      if p5.eqs."TTY+CURSES" then  interface = ttysrc + "," + cursessrc
+$      if p5.eqs."CURSES+TTY" then  interface = cursessrc + "," + ttysrc
+$!
 $! create object library
 $!
 $     if c_opt.ne.o_SPCL .or. f$search(nethacklib).eqs."" then -
@@ -265,8 +283,7 @@ $ c_list = "decl,version,[-.sys.vms]vmsmain,[-.sys.vms]vmsunix" -
        + ",[]isaac64" -                        !already in [.src]
        + ",[]random,[]tclib,[]pmatchregex"     !copied from [-.sys.share]
 $ gosub compile_list
-$ c_list = "[-.win.tty]getline,[-.win.tty]termcap" -
-       + ",[-.win.tty]topl,[-.win.tty]wintty"
+$ c_list = interface !ttysrc or cursessrc or both
 $ gosub compile_list
 $ c_list = "allmain,apply,artifact,attrib,ball,bones,botl,cmd,dbridge,detect" -
        + ",dig,display,do,do_name,do_wear,dog,dogmove,dokick,dothrow,drawing" -