$!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $! ! $! Copyright 2001, 2011 Fidelity Information Services, Inc ! $! ! $! This source code contains the intellectual property ! $! of its copyright holder(s), and is made available ! $! under a license. If you do not know the terms of ! $! the license, please stop and do not read further. ! $! ! $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! $! $! $! KITINSTAL.COM PROCEDURE FOR THE GT.M PRODUCT $! $ ON CONTROL_Y THEN VMI$CALLBACK CONTROL_Y $! ON WARNING THEN EXIT $STATUS !! allow warning errors for INSTALL REPLACE $ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL $ IF P1 .EQS. "VMI$_POSTINSTALL" THEN GOTO POSTINSTALL $ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP $ EXIT VMI$_UNSUPPORTED $! $INSTALL: $ TYPE SYS$INPUT GT.M (c) COPYRIGHT 1985 - 2000 by Sanchez Computer Associates ALL RIGHTS RESERVED $! the following 2 lines must be maintained $ GTM$VMS_VERSION :== 072 ! Minimum VMS version required $ ALPHA = (f$getsyi("arch_name") .eqs. "Alpha") $ IF ALPHA $ THEN $ GTM$DISK_SPACE == 28000 ! Minumum disk space on system disk required $ ELSE $ GTM$DISK_SPACE == 16000 ! Minumum disk space on system disk required $ ENDIF $ IF F$ELEMENT(0,",",VMI$VMS_VERSION) .EQS. "RELEASED" $ THEN $ GTM$VMS_IS == F$ELEMENT(1,",",VMI$VMS_VERSION) $ IF GTM$VMS_IS .LTS. GTM$VMS_VERSION $ THEN $ VMI$CALLBACK MESSAGE E VMSMISMATCH "This GT.M kit requires an existing VMS''GTM$VMS_VERSION' system." $ EXIT VMI$_FAILURE $ ENDIF $ ELSE $ GTM$VMS_IS :== $ WRITE SYS$OUTPUT " No VMS version checking performed for field test versions." $ ENDIF $ IF (GTM$VMS_IS .GES. "052") THEN T1 = F$VERIFY(VMI$KIT_DEBUG) $ VMI$CALLBACK CHECK_NET_UTILIZATION GTM$ROOM 'GTM$DISK_SPACE' $ IF .NOT. GTM$ROOM $ THEN $ VMI$CALLBACK MESSAGE E NOSPACE "There is not enough disk space -- GT.M needs ''GTM$DISK_SPACE' blocks." $ EXIT VMI$_FAILURE $ ENDIF $! setup default answers $ GTM$DOPURGE :== YES $ GTM$RUN_IVP :== YES $ GTM$STD_CNF :== YES $ GTM$DST_OWN :== SYSTEM $ IF F$IDENTIFIER(GTM$DST_OWN,"NAME_TO_NUMBER") .EQ. 0 THEN GTM$DST_OWN :== 1,4 $ GTM$SYS_DST :== YES $ GTM$DST_DIR :== GTM_DIST $ GTM$DST_CRE == GTM$DST_DIR $ GTM$DST_DEV :== $ GTM$STARTDB :== YES $ GTM$MGR_COM :== YES $ GTM$HLP_DIR :== NO $ GTM$DEF_DCL :== YES $ GTM$DEF_SYS :== YES $ GTM$LNK_LOG :== YES $ GTM$INSTALL :== YES $ GTM$DEF_GLD :== YES $ GTM$GBL_DIR :== MUMPS.GLD $ GTM$DEF_RTN :== YES $ GTM$RTN_DIR :== [],GTM$DIST: $ GTM$PCT_RTN :== YES $ VMI$CALLBACK ASK GTM$DOPURGE "Do you want to purge files replaced by this installation" 'GTM$DOPURGE' B - "@VMI$KWD:GTMKITHLP HELP_PURGE" $ IF .NOT. GTM$DOPURGE THEN VMI$CALLBACK SET PURGE NO $ VMI$CALLBACK ASK GTM$STD_CNF "Do you want the standard GT.M configuration (performs INSTALL)" 'GTM$STD_CNF' B - "@VMI$KWD:GTMKITHLP HELP_STD_CNF" $ IF GTM$STD_CNF $ THEN $ GTM$SYS_DST == 1 $ GTM$STARTDB == 1 $ GTM$MGR_COM == 1 $ GTM$HLP_DIR == 0 $ GTM$DEF_DCL == 1 $ GTM$DEF_SYS == 1 $ GTM$INSTALL == 1 $ GTM$LNK_LOG == 1 $ GTM$INSTALL == 1 $ GTM$DEF_GLD == 1 $ GTM$DEF_RTN == 1 $ GTM$PCT_RTN == 1 $ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] $ GTM$DIR_TYPE :== COMMON $ ELSE ! Not standard configuration $ VMI$CALLBACK ASK GTM$DST_OWN "What UIC should own the GT.M distribution" 'GTM$DST_OWN' S "@VMI$KWD:GTMKITHLP HELP_DST_OWN" $ GTM$DST_OWN == GTM$DST_OWN - "[" - "]" $ VMI$CALLBACK ASK GTM$SYS_DST "Do you want the GT.M distribution to go into a System Directory" 'GTM$SYS_DST' B - "@VMI$KWD:GTMKITHLP HELP_SYS_DST" $ IF GTM$SYS_DST $ THEN $ VMI$CALLBACK ASK GTM$DST_DIR "In what System Directory do you want to place GT.M" 'GTM$DST_DIR' S - "@VMI$KWD:GTMKITHLP HELP_SYS_DIR" $ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" $ GTM$DST_CRE == GTM$DST_DIR $ GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] $ GTM$DIR_TYPE :== COMMON $ ELSE ! Not system disk $ VMI$CALLBACK ASK GTM$DST_DEV "On which device do you want to place GT.M" "''GTM$DST_DEV'" S "@VMI$KWD:GTMKITHLP HELP_DST_DEV" $ VMI$CALLBACK ASK GTM$DST_DIR "In what directory on that device do you want to place GT.M" 'GTM$DST_DIR' S - "@VMI$KWD:GTMKITHLP HELP_DST_DIR" $ GTM$DST_DEV == GTM$DST_DEV - ":" $ GTM$DST_DIR == GTM$DST_DIR - "[" - "]" $ GTM$DST_LOG :== 'GTM$DST_DEV':['GTM$DST_DIR'] $ GTM$DST_CRE == GTM$DST_LOG $ GTM$DIR_TYPE :== USER $ ENDIF ! system disk $ VMI$CALLBACK ASK GTM$STARTDB "Do you want GTMSTART.COM in the startup database" 'GTM$STARTDB' B - "@VMI$KWD:GTMKITHLP HELP_STARTDB" $ IF .NOT. GTM$STARTDB $ THEN $ VMI$CALLBACK ASK GTM$MGR_COM "Do you want the GT.M .COM files in SYS$MANAGER" 'GTM$MGR_COM' B - "@VMI$KWD:GTMKITHLP HELP_MGR_COM" $ ENDIF $ VMI$CALLBACK ASK GTM$HLP_DIR "Do you want the GT.M help files in SYS$HELP" 'GTM$HLP_DIR' B "@VMI$KWD:GTMKITHLP HELP_HLP_DIR" $ VMI$CALLBACK ASK GTM$DEF_DCL "Do you want to define GT.M commands to the system" 'GTM$DEF_DCL' B - "@VMI$KWD:GTMKITHLP HELP_DEF_DCL" $ VMI$CALLBACK ASK GTM$DEF_SYS "Do you want to define GT.M logical names in the System Table" 'GTM$DEF_SYS' B - "@VMI$KWD:GTMKITHLP HELP_DEF_SYS" $ VMI$CALLBACK ASK GTM$LNK_LOG "Do you want to define the LNK$LIBRARY logical names" 'GTM$LNK_LOG' B - "@VMI$KWD:GTMKITHLP HELP_LNK_LOG" $ VMI$CALLBACK ASK GTM$RUN_IVP "Do you want to run the IVP (performs INSTALL)" 'GTM$RUN_IVP' B - "@VMI$KWD:GTMKITHLP HELP_RUN_IVP" $ IF GTM$RUN_IVP $ THEN $ GTM$PCT_RTN == 1 $ ELSE $ VMI$CALLBACK ASK GTM$PCT_RTN "Do you want to compile the GT.M percent routines (performs INSTALL)" 'GTM$PCT_RTN' B - "@VMI$KWD:GTMKITHLP HELP_PCT_RTN" $ ENDIF $ IF (GTM$RUN_IVP .OR. GTM$PCT_RTN) $ THEN $ GTM$INSTALL == 1 $ ELSE $ VMI$CALLBACK ASK GTM$INSTALL "Do you want to INSTALL the GT.M shareable images now" 'GTM$INSTALL' B - "@VMI$KWD:GTMKITHLP HELP_INSTALL" $ ENDIF $ VMI$CALLBACK ASK GTM$DEF_RTN "Do you want to have a default definition for GTM$ROUTINES" 'GTM$DEF_RTN' B - "@VMI$KWD:GTMKITHLP HELP_DEF_RTN" $ IF GTM$DEF_RTN $ THEN $ VMI$CALLBACK ASK GTM$RTN_DIR "What is the search specification for GTM$ROUTINES" 'GTM$RTN_DIR' S - "@VMI$KWD:GTMKITHLP HELP_RTN_DIR" $ ENDIF $ VMI$CALLBACK ASK GTM$DEF_GLD "Do you want to have a default definition for GTM$GBLDIR" 'GTM$DEF_GLD' B - "@VMI$KWD:GTMKITHLP HELP_DEF_GLD" $ IF GTM$DEF_GLD $ THEN $ VMI$CALLBACK ASK GTM$GBL_DIR "What is the file specification for GTM$GBLDIR" 'GTM$GBL_DIR' S - "@VMI$KWD:GTMKITHLP HELP_GBL_DIR" $ ENDIF $ ENDIF ! standard configuration $! tell them what's happening $ IF GTM$MGR_COM $ THEN $ WRITE SYS$OUTPUT " The following command files are created and copied to SYS$MANAGER:" $ ELSE $ WRITE SYS$OUTPUT " The following command files are created:" $ ENDIF $ TYPE SYS$INPUT GTMINSTALL.COM GTMLOGICALS.COM GTMLOGIN.COM GTMSTART.COM GTMSTOP.COM Each file contains its own user documentation. All the questions have been asked. Installation now proceeds without your manual intervention for about 10-15 minutes. $ IF GTM$RUN_IVP THEN WRITE SYS$OUTPUT " Finally the Installation Verification Procedure tests the installation." $ WRITE SYS$OUTPUT "" $ VMI$CALLBACK CREATE_DIRECTORY 'GTM$DIR_TYPE' 'GTM$DST_CRE' "/OWNER_UIC=[''GTM$DST_OWN'] /PROTECTION=(WO:RE)" $ VMI$CALLBACK RESTORE_SAVESET B $ VMI$CALLBACK RESTORE_SAVESET C $ WRITE SYS$OUTPUT "" $ VMI$CALLBACK MESSAGE I CRECOM "Creating command files." $! Create GTMINSTALL.COM $ OPEN /WRITE OUFILE VMI$KWD:GTMINSTALL.COM $ WRITE OUFILE "$!" $ WRITE OUFILE "$! GTMINSTALL.COM installs GTMSECSHR and other GT.M images." $ WRITE OUFILE "$! GTMSECSHR is a small protected image and must be installed." $ WRITE OUFILE "$! GTMSHR is the run-time library and is installed for performance." $ WRITE OUFILE "$! GTM$DMOD and MCOMPILE are small images frequently used in development." $ WRITE OUFILE "$!" $ WRITE OUFILE "$ INSTALL" $ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER/PROTECTED GTMSECSHR" $ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTMSHR" $ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER GTM$DMOD" $ WRITE OUFILE "REPLACE /OPEN/SHARED/HEADER MCOMPILE" $ WRITE OUFILE "$ EXIT" $ CLOSE OUFILE $! Create GTMLOGICALS.COM $ GTM$HLP_LOG :== GTM$DIST $ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== SYS$HELP $ OPEN /WRITE OUFILE VMI$KWD:GTMLOGICALS.COM $ WRITE OUFILE "$!" $ WRITE OUFILE "$! GTMLOGICALS.COM defines the logical names required to use GT.M." $ WRITE OUFILE "$! By default the definitions are placed in the PROCESS table." $ WRITE OUFILE "$! Parameter 1, if supplied should be the name of a logical name table" $ WRITE OUFILE "$! and/or the mode of definition." $ WRITE OUFILE "$! Assignments in a ""permanent"" table reduce GT.M activation time." $ WRITE OUFILE "$!" $ IF GTM$LNK_LOG THEN WRITE OUFILE "$! The LNK$LIBRARY names many require adjustment to your environment." $ IF GTM$DEF_GLD THEN WRITE OUFILE "$! GTM$GBLDIR is defined to provide default access to a global directory." $ IF GTM$DEF_RTN THEN WRITE OUFILE "$! GTM$ROUTINES is defined to provide access to the GT.M utilities." $ IF GTM$DEF_RTN THEN WRITE OUFILE "$! You may wish to define a different structure for $ZROUTINES." $ WRITE OUFILE "$!" $ WRITE OUFILE "$ IF (P1 .NES. """") .AND. (F$EXTRACT(0,1,P1) .NES. ""/"") THEN P1 := /'P1" $ WRITE OUFILE "$ DEFINE 'P1' GTM$DIST ''GTM$DST_LOG'" $ IF GTM$DEF_GLD THEN WRITE OUFILE "$ DEFINE 'P1' GTM$GBLDIR ''GTM$GBL_DIR'" $ IF GTM$DEF_RTN THEN WRITE OUFILE "$ DEFINE 'P1' GTM$ROUTINES ""''GTM$RTN_DIR'""" $ WRITE OUFILE "$ DEFINE 'P1' GTM$HELP ''GTM$HLP_LOG'" $ WRITE OUFILE "$ DEFINE 'P1' GTMSHR GTM$DIST:GTMSHR.EXE" $ WRITE OUFILE "$ DEFINE 'P1' GTMSECSHR GTM$DIST:GTMSECSHR.EXE" $ WRITE OUFILE "$ DEFINE 'P1' GTM$DMOD GTM$DIST:GTM$DMOD.EXE" $ WRITE OUFILE "$ DEFINE 'P1' MCOMPILE GTM$DIST:MCOMPILE.EXE" $ IF GTM$LNK_LOG $ THEN $ N1 = 0 $ DN = 0 $ T1 = F$TRNLNM("LNK$LIBRARY") $ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) $ THEN $ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY GTM$DIST:GTMLIB.OLB" $ DN = 1 $ ELSE ! lnk$library is in use $LNK_LOOP: $ N1 = N1 + 1 $ T1 = F$TRNLNM("LNK$LIBRARY_''N1'") $ IF (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) $ THEN $ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMLIB.OLB" $ DN = 1 $ ENDIF $ IF (.NOT. DN) .AND. (N1 .LT. 998) THEN GOTO LNK_LOOP $ ENDIF ! gtmlib handling $ IF DN ! placed gtmlib $ THEN $ N1 = N1 + 1 $ WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1' GTM$DIST:GTMSHR.OLB" $ ELSE $ VMI$CALLBACK MESSAGE I NOLNKLOG "No LNK$LIBRARY logical names available" $ ENDIF $ ENDIF ! setting up LNK$LIBRARYs $ WRITE OUFILE "$ EXIT" $ CLOSE OUFILE $! Create GTMLOGIN.COM $ OPEN /WRITE OUFILE VMI$KWD:GTMLOGIN.COM $ WRITE OUFILE "$!" $ WRITE OUFILE "$! GTMLOGIN.COM performs process specific setup for GT.M." $ WRITE OUFILE "$! It calls GTMLOGICALS.COM if the logical names are not" $ WRITE OUFILE "$! in the SYSTEM table." $ WRITE OUFILE "$! It defines symbols to access GT.M images." $ WRITE OUFILE "$! It defines GT.M commands locally if they are not defined to the system." $ WRITE OUFILE "$! When the command and logical names are not defined on a process level," $ WRITE OUFILE "$! a production user may save start-up time by not using GTMLOGIN." $ WRITE OUFILE "$! CCE is infrequently used, but may be defined as a foreign command." $ WRITE OUFILE "$!" $ IF .NOT. GTM$DEF_SYS $ THEN $ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" $ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" $ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" $ ENDIF $ IF .NOT. GTM$DEF_DCL THEN WRITE OUFILE "$ SET COMMAND GTM$DIST:GTMCOMMANDS.CLD" $ WRITE OUFILE "$ DSE :== $GTM$DIST:DSE.EXE ! Database System Editor" $ WRITE OUFILE "$ GDE :== $GTM$DIST:GDE.EXE ! Global Directory Editor" $ WRITE OUFILE "$ GTM :== MUMPS/DIRECT ! Direct Mode MUMPS" $ WRITE OUFILE "$ LKE :== $GTM$DIST:LKE.EXE ! Lock Editor" $ WRITE OUFILE "$ MUPI*P :== $GTM$DIST:MUPIP.EXE ! MUMPS Peripheral Interchange Program" $ WRITE OUFILE "$ EXIT" $ WRITE OUFILE "$ CCE :== $GTM$DIST:CCE.EXE ! GT.CX Operator Interface Program" $ WRITE OUFILE "$ EXIT" $ CLOSE OUFILE $! Create GTMSTART.COM $ OPEN /WRITE OUFILE VMI$KWD:GTMSTART.COM $ WRITE OUFILE "$!" $ WRITE OUFILE "$! GTMSTART.COM should be placed in the VMS startup database." $ WRITE OUFILE "$! It invokes GTMLOGICALS.COM and GTMINSTALL.COM." $ WRITE OUFILE "$!" $ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" $ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" $ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P1 .EQS. """" .OR. (P1 .EQS. ""FULL"") THEN P1 := SYSTEM/EXEC" $ WRITE OUFILE "$ @'dir'GTMLOGICALS 'P1'" $ WRITE OUFILE "$ @'dir'GTMINSTALL" $ WRITE OUFILE "$ EXIT" $ CLOSE OUFILE $! Create GTMSTOP.COM $ OPEN /WRITE OUFILE VMI$KWD:GTMSTOP.COM $ WRITE OUFILE "$!" $ WRITE OUFILE "$! GTMSTOP.COM stops all the active GT.M processes and does a RUNDOWN." $ WRITE OUFILE "$! Place an invocation or copy of this procedure in the site specific" $ WRITE OUFILE "$! shutdown: SYS$MANAGER:SYSHUTDWN to ensure all GT.M databases are" $ WRITE OUFILE "$! properly closed before VMS terminates. GTMSTOP should follow" $ WRITE OUFILE "$! GTCMSTOP and precede GTCXSTOP, if they are used." $ WRITE OUFILE "$! If GTMSTOP is not intended to disable subsequent use of GT.M," $ WRITE OUFILE "$! add a comment (!) before the INSTALL REMOVE GTMSECSHR." $ WRITE OUFILE "$!" $ IF .NOT. GTM$DEF_SYS $ THEN $ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" $ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" $ WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" $ ENDIF $ WRITE OUFILE "$ MUPIP := $GTM$DIST:MUPIP.EXE" $ WRITE OUFILE "$ STOP := $GTM$DIST:GTM$STOP" $ WRITE OUFILE "$ STOP 'P1'" $ WRITE OUFILE "$ MUPIP RUNDOWN" $ WRITE OUFILE "$ INSTALL REMOVE GTMSECSHR" $ WRITE OUFILE "$ EXIT" $ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P2 .EQS. """" THEN P2 := /SYSTEM/EXEC" $ WRITE OUFILE "$ DEASSIGN 'P2' GTMSECSHR" $ CLOSE OUFILE $ VMI$CALLBACK MESSAGE I PREINS "Preparing files for installation." $! GTMFILES.KIT must be maintained as kit contents change $ GTM$HLP_LOG == GTM$DST_LOG $ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== VMI$ROOT:[SYSHLP] $ OPEN /WRITE OUFILE VMI$KWD:GTMFILES.KIT $ IF GTM$MGR_COM $ THEN $ WRITE OUFILE "GTM$ GTMINSTALL.COM VMI$ROOT:[SYSMGR] C" $ WRITE OUFILE "GTM$ GTMLOGICALS.COM VMI$ROOT:[SYSMGR] C" $ WRITE OUFILE "GTM$ GTMLOGIN.COM VMI$ROOT:[SYSMGR] C" $ WRITE OUFILE "GTM$ GTMSTART.COM VMI$ROOT:[SYSMGR] C" $ WRITE OUFILE "GTM$ GTMSTOP.COM VMI$ROOT:[SYSMGR] C" $ ENDIF $ WRITE OUFILE "GTM$ GTMINSTALL.COM ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMLOGICALS.COM ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMLOGIN.COM ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMSTART.COM ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMSTOP.COM ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ DSE.HLB ''GTM$HLP_LOG'" $ WRITE OUFILE "GTM$ GDE.HLB ''GTM$HLP_LOG'" $ WRITE OUFILE "GTM$ LKE.HLB ''GTM$HLP_LOG'" $ WRITE OUFILE "GTM$ MUMPS.HLB ''GTM$HLP_LOG'" $ WRITE OUFILE "GTM$ MUPIP.HLB ''GTM$HLP_LOG'" $ WRITE OUFILE "GTM$ GTMLIB.OLB ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMSHR.OLB ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMZCALL.MLB ''GTM$DST_LOG'" $ IF ALPHA $ THEN $ WRITE OUFILE "GTM$ GTM$DEFAULTS.M64 ''GTM$DST_LOG'" $ ELSE $ WRITE OUFILE "GTM$ GTM$DEFAULTS.MAR ''GTM$DST_LOG'" $ ENDIF $ WRITE OUFILE "GTM$ GTM$CE.H ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMCOLLECT.OPT ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMCOMMANDS.CLD ''GTM$DST_LOG' C" $ WRITE OUFILE "GTM$ *.M ''GTM$DST_LOG'" $ CLOSE OUFILE $! GTMIMAGES.KIT must be maintained as kit contents change $ OPEN /WRITE OUFILE VMI$KWD:GTMIMAGES.KIT $ WRITE OUFILE "GTM$ GTMSECSHR.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTMSHR.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ DSE.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GDE.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTM$DMOD.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ LKE.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ MCOMPILE.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ MUPIP.EXE ''GTM$DST_LOG'" $ WRITE OUFILE "GTM$ GTM$STOP.EXE ''GTM$DST_LOG'" $ CLOSE OUFILE $! Provide with file.KITs $ VMI$CALLBACK PROVIDE_FILE "" VMI$KWD:GTMFILES.KIT "" T $ VMI$CALLBACK PROVIDE_IMAGE "" VMI$KWD:GTMIMAGES.KIT "" T $ VMI$CALLBACK MESSAGE I FININS "Finalizing the installation." $ IF GTM$DEF_DCL THEN VMI$CALLBACK PROVIDE_DCL_COMMAND GTMCOMMANDS.CLD $ IF GTM$STARTDB THEN VMI$CALLBACK MODIFY_STARTUP_DB ADD GTMSTART.COM LPMAIN $! GTM$INSTALL is TRUE if GTM$RUN_IVP or GTM$PCT_RTN $ IF GTM$INSTALL THEN VMI$CALLBACK SET POSTINSTALL YES $ IF GTM$RUN_IVP THEN VMI$CALLBACK SET IVP YES $ EXIT VMI$_SUCCESS $! $POSTINSTALL: $ ON CONTROL_Y THEN EXIT VMI$_FAILURE $! remove MUPIP from command tables for change from V2.4 to V2.5 $ SET NOON $ DEFINE /USER_MODE SYS$OUTPUT NL: $ DEFINE /USER_MODE SYS$ERROR NL: $ SET COMMAND /TABLE=SYS$COMMON:[SYSLIB]DCLTABLES /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES /DELETE=MUPIP $ DEFINE /USER_MODE SYS$OUTPUT NL: $ DEFINE /USER_MODE SYS$ERROR NL: $ SET COMMAND /DELETE=MUPIP $ SET ON $ IF GTM$MGR_COM $ THEN $ T1 := SYS$MANAGER: $ ELSE $ T1 = GTM$DST_LOG $ ENDIF $ @'T1'GTMSTART $ @'T1'GTMLOGIN $ ON CONTROL_Y THEN EXIT VMI$_FAILURE $ SET DEFAULT GTM$DIST $ T2 = F$ENVIRONMENT("PROTECTION") $ SET PROTECTION=(S=REWD,O=REWD,G=REWD,W=RE)/DEFAULT $ MUMPS GTM$DMOD.M $ IF GTM$LNK_LOG $ THEN $ T1 := $ ELSE $ T1 :=,GTMLIB.OLB/LIB,GTMSHR.OLB/LIB $ ENDIF $ LINK GTM$DMOD.OBJ/NOTRACE'T1 $ IF GTM$PCT_RTN $ THEN $ TYPE SYS$INPUT Compiling the GT.M percent (%) routines. $ MUMPS * $ IF GTM$DOPURGE THEN PURGE *.* $ SET DEFAULT VMI$KWD $ ENDIF ! percent routines $ SET PROTECTION=('T2')/DEFAULT $ EXIT VMI$_SUCCESS $! $IVP: $! The real Installation Verification Procedure. $ TYPE SYS$INPUT GT.M Installation Verification Procedure $! Extract the IVP .COM file from the text library. $ LIBRARIAN /EXTRACT=GTM$IVP /OUTPUT=GTM$IVP.COM GTM$IVP.TLB $ @GTM$IVP $ EXIT $STATUS $!