Trailing-Edge
-
PDP-10 Archives
-
tops10_integ_tools_v4_10jan-86
-
70,6067/tvaxv2/tv.com
There are 7 other files named tv.com in the archive. Click here to see a list.
$ VERIFY = F$VERIFY(0)
$!
$! TV.COM
$! TV.COM is the main COM-file, to build/rebuild TV.EXE.
$! The procedure will call the other COM-files, to perform
$! specific actions. In case certain actions have to be
$! left out of a special procedure, the sequence can be
$! changed easily.
$!
$! Author: Jan Postmus, Digital SWS, Utrecht, The Netherlands.
$!
$! Tayloring procedure
$! If certain programs don't need to be compiled,
$! the specific step can be taken out of the sequence
$! by placing a "!" after the "$"-sign.
$!
$! Calling TV.COM
$! Normally TV.COM will run from time-sharing or batch.
$! The following parameters can be specified:
$! no parameters NOLIST, NOMAP, NOCROSS
$! LIST LIST, MAP, NOCROSS
$! CROSS LIST, MAP, CROSS
$!
$! LIST, NOLIST used in MACRO-statement of TVCOMP.COM
$! MAP, NOMAP used in LINK-statement of TVLINK.COM
$! CROSS, NOCROSS used in MACRO- and LINK-statements
$! of both TVCOMP.COM and TVLINK.COM.
$!
$! Error-handling
$! In case an error is detected in one of the steps,
$! the main procedure is notified (exit-code = 101),
$! and the failure is saved in ERROR_CODE.
$! At the end of the procedure, this is repeated.
$! In order to detect, whether the step(s) are run
$! individually or in stream, the list-parameter is
$! used, therefore, care should be taken, when changing
$! the procedure(s).
$!
$! Termination of procedure
$! The procedure can be terminated by CTRL-Y.
$! In case the procedure is terminated, while one of the
$! steps is executed, this is reported by exit-code = 103
$! to the main-procedure. At the end, a message is given
$! to report this again.
$!
$ ON CONTROL_Y THEN GOTO TV_FATAL
$ SET NOON
$!
$! Check whether parameters were specified.
$!
$ TV_10:
$!
$ IF "''P1'" .NES. "" THEN GOTO TV_30
$!
$ TV_20:
$!
$! Set internal parameters to default.
$!
$ LST_PAR == "NOLIST"
$ MAP_PAR == "NOMAP"
$ GOTO TV_50
$!
$ TV_30:
$!
$ IF "''F$EXTRACT(0,1,P1)'" .NES. "L" THEN GOTO TV_40
$!
$! Set internal parameters to list, no cross-reference.
$!
$ LST_PAR == "LIST/NOCROSS"
$ MAP_PAR == "MAP/NOCROSS"
$ GOTO TV_50
$!
$ TV_40:
$!
$ IF "''F$EXTRACT(0,1,P1)'" .NES. "C" THEN GOTO TV_20
$!
$! Set internal parameters to list, cross-reference.
$!
$ LST_PAR == "LIST/CROSS"
$ MAP_PAR == "MAP/CROSS"
$ GOTO TV_50
$!
$ TV_50:
$!
$! Start procedure to build TV.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure started."
$ WRITE SYS$OUTPUT " * Selected parameters: /''LST_PAR' /''MAP_PAR'"
$ WRITE SYS$OUTPUT " * If necessary, procedure can be terminated by CTRL-Y."
$!
$! First put TVMACROS in TV.MLB.
$!
$ @TVMACROS
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Compile subroutines GTVRxx, and place them into TV.OLB.
$!
$ @TVCOMP GTVR01
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR02
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR03
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR04
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR05
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR06
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR07
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR08
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR09
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ @TVCOMP GTVR10
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Compile main TV-program, place object into TV.OLB.
$!
$ @TVCOMP TVMAIN
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$! Create TV.EXE, by linking all TV modules from TV.OLB.
$!
$ @TVLINK
$!
$ IF $STATUS .EQ. 101 THEN GOTO TV_ERROR
$ IF $STATUS .EQ. 103 THEN GOTO TV_FATAL
$!
$ TV_END:
$!
$! Normal (correct) end of procedure.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure finished."
$ EXIT_CODE = 1
$ GOTO TV_LAST
$!
$ TV_ERROR:
$!
$! Error detected in one of the steps.
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * Error detected during TV build procedure."
$ WRITE SYS$OUTPUT " * Error: ''F$MESSAGE(ERROR_CODE)'."
$ EXIT_CODE = ERROR_CODE
$ DELETE /SYMBOL /GLOBAL ERROR_CODE
$ GOTO TV_LAST
$!
$ TV_FATAL:
$!
$! Procedure terminated by CTRL-Y
$!
$ WRITE SYS$OUTPUT " "
$ WRITE SYS$OUTPUT " * TV build procedure terminated by ^Y."
$ EXIT_CODE = 103
$ GOTO TV_LAST
$!
$ TV_LAST:
$!
$! Finishing the procedure.
$!
$! Get rid of used symbols.
$!
$ DELETE /SYMBOL /GLOBAL LST_PAR
$ DELETE /SYMBOL /GLOBAL MAP_PAR
$!
$! Restore verify-mode.
$!
$ IF VERIFY .EQ. 1 THEN SET VERIFY
$!
$ EXIT EXIT_CODE