vmsbuild.com update
This commit is contained in:
@@ -4,9 +4,6 @@ $ ! $NHDT-Date: 1609347486 2020/12/30 16:58:06 $ $NHDT-Branch: NetHack-3.7 $:$N
|
|||||||
$ ! Copyright (c) 2018 by Robert Patrick Rankin
|
$ ! Copyright (c) 2018 by Robert Patrick Rankin
|
||||||
$ ! NetHack may be freely redistributed. See license for details.
|
$ ! NetHack may be freely redistributed. See license for details.
|
||||||
$
|
$
|
||||||
$!TODO: Separate the lua build and create an object library for it instead
|
|
||||||
$! of putting lua modules into nethack.olb.
|
|
||||||
$
|
|
||||||
$ luaver = "546"
|
$ luaver = "546"
|
||||||
$ luadotver = "5.4.6"
|
$ luadotver = "5.4.6"
|
||||||
$ luaunderver = "5_4_6"
|
$ luaunderver = "5_4_6"
|
||||||
@@ -65,10 +62,12 @@ $ o_GNUC = 15
|
|||||||
$ o_LINK = 20
|
$ o_LINK = 20
|
||||||
$ o_SPCL = 25
|
$ o_SPCL = 25
|
||||||
$ o_FETCHLUA = 33
|
$ o_FETCHLUA = 33
|
||||||
$ c_opt = f$locate("|"+p1, "|VSIC|VAXC|DECC|GNUC|LINK|SPECIAL|FETCHLUA") !5
|
$ o_BUILDLUA = 42
|
||||||
$ write sys$output c_opt
|
$ c_opt = f$locate("|"+p1, -
|
||||||
|
"|VSIC|VAXC|DECC|GNUC|LINK|SPECIAL|FETCHLUA|BUILDLUA")
|
||||||
|
$! write sys$output c_opt
|
||||||
$ if (c_opt/5)*5 .eq. c_opt then goto p1_ok
|
$ if (c_opt/5)*5 .eq. c_opt then goto p1_ok
|
||||||
$ if c_opt .eq. 33 then goto fetchlua
|
$ if (c_opt .eq. o_FETCHLUA) .OR. (c_opt .eq. o_BUILDLUA) then goto p1_ok
|
||||||
$ copy sys$input: sys$error: !p1 usage
|
$ copy sys$input: sys$error: !p1 usage
|
||||||
%first arg is compiler option; it must be one of
|
%first arg is compiler option; it must be one of
|
||||||
"VSIC" -- use VSI C to compile everything
|
"VSIC" -- use VSI C to compile everything
|
||||||
@@ -78,7 +77,8 @@ $ copy sys$input: sys$error: !p1 usage
|
|||||||
or "LINK" -- skip compilation, just relink nethack.exe
|
or "LINK" -- skip compilation, just relink nethack.exe
|
||||||
or "SPEC[IAL]" -- just compile and link dlb.exe and recover.exe
|
or "SPEC[IAL]" -- just compile and link dlb.exe and recover.exe
|
||||||
or "FETCHLUA" -- skip compilaton, just fetch lua from lua.org
|
or "FETCHLUA" -- skip compilaton, just fetch lua from lua.org
|
||||||
or "" -- default operation (VAXC unless 'CC' is defined)
|
or "BUILDLUA" -- build [-.lib.lua]lua'LUAVER'.olb
|
||||||
|
or "" -- carry out default operation (VAXC unless 'CC' is defined)
|
||||||
|
|
||||||
Note: if a DCL symbol for CC is defined, "VAXC" and "GNUC" are no-ops.
|
Note: if a DCL symbol for CC is defined, "VAXC" and "GNUC" are no-ops.
|
||||||
If the symbol value begins with "G" (or "g"), then the GNU C
|
If the symbol value begins with "G" (or "g"), then the GNU C
|
||||||
@@ -169,7 +169,10 @@ $ c_c_ = "/INCLUDE=[-.INCLUDE]" + c_c_
|
|||||||
$ cxx_c_ = "/INCLUDE=[-.INCLUDE]" + cxx_c_
|
$ cxx_c_ = "/INCLUDE=[-.INCLUDE]" + cxx_c_
|
||||||
$ !
|
$ !
|
||||||
$got_cc:
|
$got_cc:
|
||||||
$ if c_opt.eq.o_VSIC
|
$
|
||||||
|
$! not sure if 8.x DECC supports /NAMES=(AS_IS). Use next line, if so
|
||||||
|
$! if (c_opt.ne.o_VAXC) .and. (c_opt.ne.o_GNUC) .and. (c_opt.ne.o_DECC)
|
||||||
|
$ if (c_opt.ne.o_VAXC) .and. (c_opt.ne.o_GNUC)
|
||||||
$ then
|
$ then
|
||||||
$ c_c_ = c_c_ + "/NAMES=(AS_IS)
|
$ c_c_ = c_c_ + "/NAMES=(AS_IS)
|
||||||
$ cxx_c_ = cxx_c_ + "/NAMES=(AS_IS)
|
$ cxx_c_ = cxx_c_ + "/NAMES=(AS_IS)
|
||||||
@@ -244,7 +247,10 @@ $ if f$type('c_name'_options).nes."" then f_opts = 'c_name'_options
|
|||||||
$ milestone " (",c_name,")"
|
$ milestone " (",c_name,")"
|
||||||
$ if f$search("''c_name'.obj").nes."" then delete 'c_name'.obj;*
|
$ if f$search("''c_name'.obj").nes."" then delete 'c_name'.obj;*
|
||||||
$ 'compiler' 'f_opts' 'c_file'
|
$ 'compiler' 'f_opts' 'c_file'
|
||||||
$ if .not.no_lib then nh_obj_list == nh_obj_list + ",''c_name'.obj;0"
|
$ if .not.no_lib
|
||||||
|
$ then
|
||||||
|
$ libr/Obj/Replace 'nethacklib' 'c_name'.obj;0
|
||||||
|
$ endif
|
||||||
$ return
|
$ return
|
||||||
$!
|
$!
|
||||||
$compile_list: !input via 'c_list'
|
$compile_list: !input via 'c_list'
|
||||||
@@ -257,10 +263,6 @@ $ if c_file.eqs."," then goto c_done
|
|||||||
$ gosub compile_file
|
$ gosub compile_file
|
||||||
$ goto c_loop
|
$ goto c_loop
|
||||||
$ c_done:
|
$ c_done:
|
||||||
$ nh_obj_list == f$extract(1,999,nh_obj_list)
|
|
||||||
$ if nh_obj_list.nes."" then libr/Obj 'nethacklib' 'nh_obj_list'/Replace
|
|
||||||
$! if nh_obj_list.nes."" then delete 'nh_obj_list'
|
|
||||||
$ delete/symbol/global nh_obj_list
|
|
||||||
$ return
|
$ return
|
||||||
$fetchlua:
|
$fetchlua:
|
||||||
$ create/dir [-.lib]
|
$ create/dir [-.lib]
|
||||||
@@ -278,12 +280,14 @@ $ pipe -
|
|||||||
if (f$search("lua-''luaunderver'.DIR;1").nes."") .AND. -
|
if (f$search("lua-''luaunderver'.DIR;1").nes."") .AND. -
|
||||||
(f$search("lua''luaver'.dir;1").eqs."") then -
|
(f$search("lua''luaver'.dir;1").eqs."") then -
|
||||||
rename lua-'luaunderver'.DIR;1 lua'luaver'.dir;1
|
rename lua-'luaunderver'.DIR;1 lua'luaver'.dir;1
|
||||||
|
$ milestone "[-.lib.lua'''luaver']"
|
||||||
$luafixdir:
|
$luafixdir:
|
||||||
set def [-.src]
|
set def [-.src]
|
||||||
$ if f$search("[-.include]nhlua.h;-1").nes."" then -
|
$ if f$search("[-.include]nhlua.h;-1").nes."" then -
|
||||||
purge [-.include]nhlua.h
|
purge [-.include]nhlua.h
|
||||||
$ if f$search("[-.include]nhlua.h").nes."" then -
|
$ if f$search("[-.include]nhlua.h").nes."" then -
|
||||||
delete [-.include]nhlua.h;
|
delete [-.include]nhlua.h;
|
||||||
|
$ milestone " (wiped existing [-.include]nhlua.h)"
|
||||||
$ exit
|
$ exit
|
||||||
$!
|
$!
|
||||||
$! 3.7 runtime LUA level parser/loader
|
$! 3.7 runtime LUA level parser/loader
|
||||||
@@ -292,6 +296,10 @@ $buildlua:
|
|||||||
$ if f$search("[-.lib]lua.dir;").eqs."" then -
|
$ if f$search("[-.lib]lua.dir;").eqs."" then -
|
||||||
create/dir [-.lib.lua]
|
create/dir [-.lib.lua]
|
||||||
$ save_nethacklib = nethacklib
|
$ save_nethacklib = nethacklib
|
||||||
|
$!
|
||||||
|
$! Temporarily override the value of nethacklib so that
|
||||||
|
$! the lua modules go into the lua library, not nethacklib.
|
||||||
|
$!
|
||||||
$ nethacklib = "[-.lib.lua]lua''luaver'.olb"
|
$ nethacklib = "[-.lib.lua]lua''luaver'.olb"
|
||||||
$ if f$search("''nethacklib'").eqs."" then -
|
$ if f$search("''nethacklib'").eqs."" then -
|
||||||
libr/Obj 'nethacklib'/Create
|
libr/Obj 'nethacklib'/Create
|
||||||
@@ -315,10 +323,30 @@ $ c_list = "[-.lib.lua''luaver'.src]lapi,[-.lib.lua''luaver'.src]lauxlib" -
|
|||||||
+ ",[-.lib.lua''luaver'.src]lutf8lib,[-.lib.lua''luaver'.src]lvm" -
|
+ ",[-.lib.lua''luaver'.src]lutf8lib,[-.lib.lua''luaver'.src]lvm" -
|
||||||
+ ",[-.lib.lua''luaver'.src]lzio"
|
+ ",[-.lib.lua''luaver'.src]lzio"
|
||||||
$ gosub compile_list
|
$ gosub compile_list
|
||||||
$ milestone " (''nethacklib')"
|
$ milestone " ''nethacklib'"
|
||||||
|
$ luafinish:
|
||||||
$ nethacklib = save_nethacklib
|
$ nethacklib = save_nethacklib
|
||||||
$ return
|
$ return
|
||||||
$begin:
|
$begin:
|
||||||
|
$ if (c_opt .eq. o_FETCHLUA) .OR. (c_opt .eq. o_BUILDLUA)
|
||||||
|
$ then
|
||||||
|
$ if c_opt .eq. 33 then gosub fetchlua
|
||||||
|
$ if c_opt .eq. 42 then gosub buildlua
|
||||||
|
$ goto done
|
||||||
|
$ endif
|
||||||
|
$!
|
||||||
|
$! Check some prerequisites
|
||||||
|
$!
|
||||||
|
$ if f$search("[-.lib]lua''luaver'.dir").eqs.""
|
||||||
|
$ then
|
||||||
|
$ write sys$output "You need to: @vmsbuild fetchlua
|
||||||
|
$ exit
|
||||||
|
$ endif
|
||||||
|
$ if f$search("[-.lib.lua]lua''luaver'.olb").eqs.""
|
||||||
|
$ then
|
||||||
|
$ write sys$output "You need to: @vmsbuild buildlua
|
||||||
|
$ exit
|
||||||
|
$ endif
|
||||||
$!
|
$!
|
||||||
$! miscellaneous special source file setup
|
$! miscellaneous special source file setup
|
||||||
$!
|
$!
|
||||||
@@ -356,6 +384,7 @@ $ write f "#include ""[-.lib.lua''luaver'.src]lauxlib.h"""
|
|||||||
$ write f "/*nhlua.h*/"
|
$ write f "/*nhlua.h*/"
|
||||||
$ close f
|
$ close f
|
||||||
$ endif
|
$ endif
|
||||||
|
$ milestone " ([-.include]nhlua.h)"
|
||||||
$!
|
$!
|
||||||
$! create object library
|
$! create object library
|
||||||
$!
|
$!
|
||||||
@@ -366,7 +395,6 @@ $!
|
|||||||
$! compile and link makedefs, then nethack, dlb+recover.
|
$! compile and link makedefs, then nethack, dlb+recover.
|
||||||
$!
|
$!
|
||||||
$ milestone "<compiling...>"
|
$ milestone "<compiling...>"
|
||||||
$ gosub buildlua
|
|
||||||
$!
|
$!
|
||||||
$ c_list = "[-.sys.vms]vmsmisc,[-.sys.vms]vmsfiles,[]alloc,dlb," -
|
$ c_list = "[-.sys.vms]vmsmisc,[-.sys.vms]vmsfiles,[]alloc,dlb," -
|
||||||
+ "monst,objects,date,#[-.util]panic"
|
+ "monst,objects,date,#[-.util]panic"
|
||||||
@@ -386,7 +414,7 @@ $! makedefs -v !date.h
|
|||||||
$ milestone " (*.c)"
|
$ milestone " (*.c)"
|
||||||
$ set default [-.src]
|
$ set default [-.src]
|
||||||
$! compile most of the source files:
|
$! compile most of the source files:
|
||||||
$ c_list = "decl,version,[-.sys.vms]vmsmain,[-.sys.vms]vmsunix" -
|
$ c_list = "decl,version,[-.sys.vms]vmsunix" -
|
||||||
+ ",[-.sys.vms]vmstty,[-.sys.vms]vmsmail" -
|
+ ",[-.sys.vms]vmstty,[-.sys.vms]vmsmail" -
|
||||||
+ ",[]isaac64" - !already in [.src]
|
+ ",[]isaac64" - !already in [.src]
|
||||||
+ ",[]tclib,[]regex" !copied from [-.sys.share]
|
+ ",[]tclib,[]regex" !copied from [-.sys.share]
|
||||||
@@ -401,54 +429,31 @@ $ gosub compile_list
|
|||||||
$ c_list = "hack,hacklib,insight,invent,light,lock,mail,makemon" -
|
$ c_list = "hack,hacklib,insight,invent,light,lock,mail,makemon" -
|
||||||
+ ",mcastu,mdlib,mhitm,mhitu,minion,mklev,mkmap,mkmaze" -
|
+ ",mcastu,mdlib,mhitm,mhitu,minion,mklev,mkmap,mkmaze" -
|
||||||
+ ",mkobj,mkroom,mon,mondata,monmove,mplayer,mthrowu,muse" -
|
+ ",mkobj,mkroom,mon,mondata,monmove,mplayer,mthrowu,muse" -
|
||||||
+ ",music,o_init,objnam,options,pager,pickup"
|
+ ",music"
|
||||||
$ gosub compile_list
|
$ gosub compile_list
|
||||||
$ c_list = "pline,polyself,potion,pray,priest,quest,questpgr,read" -
|
$!
|
||||||
|
$! Files added in 3.7 for Lua glue
|
||||||
|
$!
|
||||||
|
$ c_list = "nhlua,nhlobj,nhlsel"
|
||||||
|
$ gosub compile_list
|
||||||
|
$ c_list = "o_init,objnam,options,pager,pickup" -
|
||||||
|
+ ",pline,polyself,potion,pray,priest,quest,questpgr,read" -
|
||||||
+ ",rect,region,restore,rip,rnd,role,rumors,save,sfstruct,shk" -
|
+ ",rect,region,restore,rip,rnd,role,rumors,save,sfstruct,shk" -
|
||||||
+ ",shknam,sit,sounds,sp_lev,spell,steal,steed,symbols" -
|
+ ",shknam,sit,sounds,sp_lev,spell,steal,steed,symbols" -
|
||||||
+ ",sys,teleport,timeout,topten,track,trap,utf8map,u_init"
|
+ ",sys,teleport,timeout,topten,track,trap,utf8map,u_init"
|
||||||
$ gosub compile_list
|
$ gosub compile_list
|
||||||
$ c_list = "uhitm,vault,vision,weapon,were,wield,windows" -
|
$ c_list = "uhitm,vault,vision,weapon,were,wield,windows" -
|
||||||
+ ",wizard,worm,worn,write,zap,date"
|
+ ",wizard,worm,worn,write,zap"
|
||||||
$ gosub compile_list
|
|
||||||
$!
|
|
||||||
$! Files added in 3.7
|
|
||||||
$!
|
|
||||||
$ c_list = "nhlua,nhlobj,nhlsel"
|
|
||||||
$ gosub compile_list
|
$ gosub compile_list
|
||||||
$!
|
$!
|
||||||
$link:
|
$link:
|
||||||
|
$! We do these at the end
|
||||||
|
$ c_list = "#[-.sys.vms]vmsmain,#date"
|
||||||
|
$ gosub compile_list
|
||||||
$ milestone "<linking...>"
|
$ milestone "<linking...>"
|
||||||
$ link vmsmain.obj, -
|
$ link /EXECUTABLE=nethack.exe vmsmain.obj,date.obj-
|
||||||
regex.obj, allmain.obj, alloc.obj, apply.obj, -
|
+[-.src]nethack.olb/library -
|
||||||
artifact.obj, attrib.obj, ball.obj, bones.obj, botl.obj, -
|
+sys$disk:[-.lib.lua]lua546.olb/library
|
||||||
cmd.obj, dbridge.obj, decl.obj, detect.obj, dig.obj, display.obj, -
|
|
||||||
dlb.obj, do.obj, do_name.obj, do_wear.obj, dog.obj, dogmove.obj, -
|
|
||||||
dokick.obj, dothrow.obj, drawing.obj, dungeon.obj, eat.obj, -
|
|
||||||
end.obj, engrave.obj, exper.obj, explode.obj, extralev.obj, -
|
|
||||||
files.obj, fountain.obj, hack.obj, hacklib.obj, insight.obj, -
|
|
||||||
invent.obj, isaac64.obj, light.obj, lock.obj, mail.obj, -
|
|
||||||
makemon.obj, mcastu.obj, mdlib.obj, mhitm.obj, mhitu.obj, -
|
|
||||||
minion.obj, mklev.obj, mkmap.obj, mkmaze.obj, mkobj.obj, -
|
|
||||||
mkroom.obj, mon.obj, mondata.obj, monmove.obj, monst.obj, -
|
|
||||||
mplayer.obj, mthrowu.obj, muse.obj, music.obj, nhlua.obj, -
|
|
||||||
nhlsel.obj, nhlobj.obj, objnam.obj, o_init.obj, objects.obj, -
|
|
||||||
options.obj, pager.obj, pickup.obj, pline.obj, polyself.obj, -
|
|
||||||
potion.obj, pray.obj, priest.obj, quest.obj, questpgr.obj, -
|
|
||||||
read.obj, rect.obj, region.obj, restore.obj, rip.obj, rnd.obj, -
|
|
||||||
role.obj, rumors.obj, save.obj, sfstruct.obj, shk.obj, shknam.obj, -
|
|
||||||
sit.obj, sounds.obj, sp_lev.obj, spell.obj, steal.obj, steed.obj, -
|
|
||||||
symbols.obj, sys.obj, teleport.obj, timeout.obj, topten.obj, -
|
|
||||||
track.obj, trap.obj, u_init.obj, utf8map.obj, uhitm.obj, -
|
|
||||||
vault.obj, version.obj, vision.obj, weapon.obj, were.obj, -
|
|
||||||
wield.obj, windows.obj, wizard.obj, worm.obj, worn.obj, -
|
|
||||||
write.obj, zap.obj, vmsfiles.obj, vmsmail.obj, vmsmisc.obj, -
|
|
||||||
vmstty.obj, vmsunix.obj, getline.obj, termcap.obj, topl.obj, -
|
|
||||||
wintty.obj, tclib.obj, date.obj -
|
|
||||||
/EXECUTABLE=nethack.exe -
|
|
||||||
+sys$disk:[-.lib.lua]lua'luaver'.olb/library
|
|
||||||
$! link/Exe=nethack.exe [-.lib.lua]lua'luaver'.olb/Lib, -
|
|
||||||
$! nethack.opt/Options,ident.opt/Options,crtl.opt/Options
|
|
||||||
$ milestone "NetHack"
|
$ milestone "NetHack"
|
||||||
$ if c_opt.eq.o_LINK then goto done !"LINK" only
|
$ if c_opt.eq.o_LINK then goto done !"LINK" only
|
||||||
$special:
|
$special:
|
||||||
|
|||||||
Reference in New Issue
Block a user