$ ver = 'F$VERIFY(0) $ GOTO VMSBUILD $! $! $! VMSBUILD.COM $! $! Builds VMS version of RNO from sources. The result of this procedure $! is a new RNO.EXE file. $! $! If no parameters are supplied, then we do a MMS-type build, reassem- $! bling or recompiling only those modules which have changed or which $! have no .OBJ present. IF RNO.EXE is missing, or if VAXPRE.MAR has $! changed, a full rebuild is done. $! $! The following parameters can be supplied, in any order (only the $! first character is necessary): $! $! If "DEBUG" is used, the above is done, but the compilations and $! link are done in /DEBUG mode. $! $! If "OPTIONS" is used the caller is prompted for assembly, compile, $! and link options (for example "/DEBUG/LIST"). $! $! If "LINK" is used, then only a re-link is done; nothing is assembled. $! $! If "ALL" is used, a full rebuild is forced. $! $! If "NODOC" is used, formatted source listings are not built. $! $! $! Alan L. Zirkle 17 February 1987 $! Naval Surface Warfare Center $! Dahlgren, Virginia 22448 (703) 663-8023 $! $! $ VMSBUILD: $ fortopt = "" $ assmopt = "" $ linkopt = "" $ dodoc = "T" $ all = "F" $! $ IF F$TRNLNM("RS").EQS."" THEN DEFINE RS [] ! RNO source search list $! $ IF p1 .EQS. "" THEN GOTO START $! $ options = F$EXTRACT(0,1,p1) + F$EXTRACT(0,1,p2) + F$EXTRACT(0,1,p3) + - F$EXTRACT(0,1,p4) + F$EXTRACT(0,1,p5) + F$EXTRACT(0,1,p6) $! $ lopt = F$LENGTH(options) $! $ dodoc = F$LOCATE("N",options) .GE. F$LENGTH(options) $ all = F$LOCATE("A",options) .LT. F$LENGTH(options) $ lnk = F$LOCATE("L",options) .LT. F$LENGTH(options) $ debug = F$LOCATE("D",options) .LT. F$LENGTH(options) $ optns = F$LOCATE("O",options) .LT. F$LENGTH(options) $! $ IF debug THEN fortopt = "/DEBUG/NOOPT" $ IF debug THEN assmopt = "/DEBUG" $ IF debug THEN linkopt = "/DEBUG" $! $ IF .NOT. optns THEN GOTO GOTOPT $ IF lnk THEN GOTO INQ2 $! $ WRITE SYS$OUTPUT " " $ INQUIRE assmopt "Enter MACRO option(s)" $! $ WRITE SYS$OUTPUT " " $ INQUIRE fortopt "Enter FORTRAN option(s)" $! $ INQ2: $ WRITE SYS$OUTPUT " " $ INQUIRE linkopt "Enter LINK option(s)" $! $ GOTOPT: $ IF lnk THEN GOTO END2 $! $ START: $ WRITE SYS$OUTPUT " " $! $ routines = "CMTAB,COMND,ERMSG,ESCAPE,FMTCM,GCIN,HYPHEN,INDEX,INIT," + - "P$M.FOR,PINDX,RNCMD,RNODYN,RNOIF,RNOTABLES.CLD,RUNOFF," + - "STARTN,STYLE,VAXFILES.FOR,VAXIO.MAR" $! $ IF F$MODE() .EQS. "BATCH" THEN MACRO = "MACRO/NOLIST" $ IF F$MODE() .EQS. "BATCH" THEN FORTRAN = "FORTRAN/NOLIST" $! $! If the prefix file is changed, or if the .EXE is missing, everything $! must be recompiled. $! $ pchg = F$SEARCH("RNO.EXE") .EQS. "" .OR. all $! $ IF pchg THEN GOTO LOOP $! $ pchg = F$CVTIME(F$FILE("RNO.EXE","CDT")) .LTS. - F$CVTIME(F$FILE("RS:VAXPRE.MAR","CDT")) $ LOOP: $ routine = F$ELEMENT(0,",",routines) $ IF routine .EQS. "" THEN GOTO END $ routines = routines - routine - "," $! $ name_ = F$PARSE(routine,,,"NAME") $ type_ = F$PARSE(routine,".MAC",,"TYPE") $! $ IF pchg THEN GOTO COMPILE $ IF F$SEARCH(name_+".OBJ") .EQS. "" THEN GOTO COMPILE $ IF F$CVTIME(F$FILE(name_+".OBJ","CDT")) .LTS. - F$CVTIME(F$FILE("RS:"+name_+type_,"CDT")) THEN GOTO COMPILE $ GOTO LOOP $! $ COMPILE: $ WRITE SYS$OUTPUT " Building ",name_ $! $ IF type_ .EQS. ".MAC" .OR. type_ .EQS. ".MAR" THEN - MACRO 'assmopt' RS:VAXPRE+RS:'name_''type_'/OBJECT=[] $ IF type_ .EQS. ".CLD" THEN SET COMMAND /OBJECT=[] RS:'name_' $ IF type_ .EQS. ".FOR" THEN FORTRAN 'fortopt' RS:'name_''type_/OBJECT=[] $! $ IF dodoc THEN - RNO /X9700 SOURCE,RS:'name_''type_' /OUTPUT='name_' /VARIANT='name_' $ GOTO LOOP $! $ END: $ name_ = "VAXPRE" $ IF pchg .AND. dodoc THEN - RNO /X9700 SOURCE,RS:VAXPRE.MAR /OUTPUT=VAXPRE /VARIANT=VAXPRE $! $ END2: $ build_date = F$EXTRACT(0,17,F$TIME()) $! $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT " Building VERSION (",build_date,")" $! $ REFORMAT VERSION.MAR VERSION.MAC /SYMBOLS $ MACRO 'assmopt' RS:VAXPRE+VERSION.MAC/OBJECT=[] $ PURGE VERSION.MAC $ name_ = "VERSION" $ IF dodoc THEN - RNO /X9700 SOURCE,VERSION.MAC /OUTPUT=VERSION /VARIANT=VERSION $! $ WRITE SYS$OUTPUT " " $ WRITE SYS$OUTPUT " Linking RNO" $! $ IF F$SEARCH("/MAP",linkopt) .EQ. F$LENGTH(linkopt) THEN - linkopt = "/NOMAP " + linkopt $! $ LINK 'linkopt' /NOTRACE /EXE=RNO RUNOFF,CMTAB,COMND,ERMSG,FMTCM,GCIN, - HYPHEN,INDEX,INIT,P$M,PINDX,RNCMD,RNODYN,RNOIF,STYLE, - ESCAPE,VAXFILES,VAXIO,VERSION,RNOTABLES,STARTN $! $ PURGE *.OBJ,*.DOC,RNO.EXE $! $ SET COMMAND RNO $! $ WRITE SYS$OUTPUT " " $! $ IF ver THEN SET VERIFY