K --------------------------------------------------------------------------- K Space Telescope Science Institute Tools Group DECUS Atlanta '89 Submissions K ---------------------------------------------------------------------------   G This saveset contains all source, objects, and executables for a series H of tools developed at the Space Telescope Science Institue.  The source J languages include VAX C, FORTRAN, SCAN, MACRo, and MESSAGE.  If you do not@ have one of these compilers, yuo can still link with te objects.  C There are LaTeX documents for most of the tools also included.  The B LaTeX include files have also been included should you want to try to LaTeX these.   G Some of the tools have logical names associated with them that you will 0 need to define before running/building the tool.   Tool descriptions follow:   K ===========================================================================    Tool:		Check Map (CKMAP) Tool   ; Description:	The CKMAP tool scans a VMS link map for PSECT  / 		mismatches and undefined symbols and reports   		these accordingly.   Usage:  &        	$ CHKMAP  :==  @devtools:ckmap 	$ CHKMAP <list-of-map-files>   	 Examples:    	$ CHKMAP RAFSTR.MAP 	$ CHKMAP RAFSTR.MAP RAFSTR.CKM K 	$ CHKMAP disk$bruno:[b192.podps.exe]*.MAP sys$output /EXCLUDE=exclude.list Q 	$ CHKMAP disk$bruno:[b192.podps.exe]*.MAP sys$output /EXCLUDE=XSF,DANZA,UNDEFSYM 0 	$ CHKMAP RAFSTR.MAP /EXCLUDE=XSF,DANZA,UNDEFSYM  	 Software:   
 	CKMAP.COM
 	CKMAP.MMS 	CKMAP_HANDLE_EXCLUDE_FILE.SCN         CKMAP_MAIN.SCN 	CKMAP_MESSAGE.MSG 	CKMAP_REPORT_UTILS.C  	CKMAP_SCAN_MAP.SCN    Build Notes:   	$ MMS/DESCR=CKMAP  ; 	This must be done out of the same directory as the source.    More Documentation:    	CHECK_MAP.TEX   Other:8 	You may want to modify CKMAP.COM to remove the devtools; 	reference with your own logical.  Otherwise, point logical < 	devtools to the directory with CHECK_MAP.EXE and CKMAP.COM.    K ===========================================================================    Tool:		Disk Report Tool   H Description:	The Disk Report tool scans one or more directory log files 6 		creating a series of reports summarizing disk space  		utilization.   Usage:      $ SET COMMAND DEVTOOLS:DISK*    $ DISK_REPORT <Directory-log-file-list>&                  /OUTPUT=<Output-file>                  /NOSUMMARY                   /NOROOT*                  /TOP_DIRECTORIES=<Number>                  /COMPLETE+                  /MASTER=<Master-root-file>                   /MSUMMARY                  /TABLE_ONLY(                  /PERCENT=<Percent-type>*                  /OVER_BLOCK_SIZE=<Number>$                  /MAX_DEPTH=<Number>2                  /DISK_SIZE_TABLE=<Disk-size-file>    	 Examples:       $ DISK_REPORT anky.log   I    $ DISK_REPORT/MASTER/COMPLETE anky.log,bruno.log,ichthy.log,ptero.log    B    $ DISK_REPORT/MASTER=by_user.list/COMPLETE anky.log,bruno.log,-%                 ichthy.log,ptero.log    :    $ DISK_REPORT/MASTER=by_user.list/TABLE_ONLY/COMPLETE -8                 anky.log,bruno.log,ichthy.log,ptero.log       $ DISK_REPORT dir_log.idl  ?    $ DISK/OUT=cory.drpt cory.log/COMPLETE/OVER=2000/MAX_DEPTH=3   2    $ DISK_REPORT/NOSUMMARY/NOROOT/NOTOP/COMPLETE -8                 anky.log,bruno.log,ichthy.log,ptero.log   	 Software:     " Directory DISK$BETTY:[BAUER.DECUS]  	 	DISK.CLD  	DISK.H 	 	DISK.MMS 	 	DISK.SCN  	DISK_CHECK_FLAGS.C  	DISK_CLI_UTILS.SCN          DISK_MASTER_SUMMARY.C          DISK_MAX_BLOCKS.C          DISK_OTHER_UTILS.C         DISK_PROCESS_DATA.C %         DISK_READ_DISK_SIZE_TABLE.SCN          DISK_REPORTS.C 	DISK_REPORT_FRONT_ENDS.SCN  	DISK_REPORT_UTILS.C'         DISK_SORT_DIRECTORIES_BY_SIZE.C $         DISK_WRITE_COMPLETE_REPORT.C     Other files:   	OSB_DISKS.IDL		 	OSB_DISK_USAGE.COM  	OSB_MASTER_ROOT.LIST  	STSI_DISK_LIST.DAT  	UPDATE_OSB_DISK_LOGS.COM    Build Notes:  > 	$ DEFINE devtools []    ! Or to the directory with the source 	$ MMS/DESCR=DISK   ; 	This must be done out of the same directory as the source.    More Documentation:    	DISK_REPORT.TEX   Other:  < 	You may want to modify the DISK.CLD file to use a different 	logical other than devtools.     > 	The other files listed above are some that we use to generate= 	our own disk reports.  You can modify them for your own use.   K ===========================================================================    Tool:		Show Merged CMS Classes  J Description:	The Show Merged CMS Classes tool compares all of the elementsA 		in a CMS library class (typically an SPR class) to see if they  A 		are also inserted, or ``merged'' into another class (typically  , 		a PENDING class) in that same CMS library.   Usage:   	$ SMC :== @DEVTOOLS:SMC.COM 	$ SMC	 <P-class-name>  ; 		 <S-class-name-list -or- @S-class-file -or- ``USE\_CMS''> + 		 <Cms-library-name -or- @Cms-names-file>   	         <Output-report-file> 		 [<``TABLE_ONLY''>]  	         [<``ALL_PENDING''>]  	         [<``ALL\_SPR''>]  	 Examples:   : 	$ SMC PENDING19.2 @disk$bruno:[b192.default]192_spr.com - 		oss_cms oss_cms.smc_report  5 	$ SMC PENDING19.2 SPR.12345,SPR.01923 @cmslibs.com -  		sys$output ALL_PENDING  E 	$ SMC PENDING19.2 SPR.1* @cmslibs.com sys$output ALL_PENDING ALL_SPR   = 	$ SMC PENDING19.2 OSS_CMS oss_cms oss_cms.smc_report ALL_SPR   @ 	$ SMC PENDING19.2 USE_CMS oss_cms oss_cms.smc_report TABLE_ONLY  : 	$ SMC PENDING19.2 @disk$bruno:[b192.default]192_spr.com -! 		@cmslibs.com oss_cms.smc_report   	 Software:    	SMC.COM 	SHOW_MERGED_CLASSES.C 	WEED_CLASSES.C 
 	USE_CMS.C 	SMC_MESSAGES.MSG  	SHOW_MERGED_CLASSES.MMS   Build Notes:   	$ DEFINE sysdefs []  	$ MMS/DESCR=SHOW_MERGED_CLASSES  ; 	This must be done out of the same directory as the source.    More Documentation:    	SMC.TEX   Other: 	 ? 	You may want to modify the SMC.COM to work out of a different  + 	directory other than the logical devtools.     K ===========================================================================     % Tool:		Image Definition Tool (IMGDEF)   F Description:	An image definition file contains the information on how < 		to build an executable image.  It is the primary input to ; 		IMGDEF, which is used to produce an options file, an MMS  9 		file to describe the LINK process, and an MMS file for  ) 		building the image and its components.     Usage:# 	$ IMGDEF :== $SOGSTOOLS:IMGDEF.EXE I         $ IMGDEF [/NOLINK] [/NOBUILD] imgdef-file-spec[.IMGDEF] subsystem    Examples(s):   	$ IMGDEF QABEXC.IMGDEF SPSS  	 Software:    	IMGDEF.MMS  	IMGDEF.SCN  	IMGDEF_LOG.SCN  	IMGDEF_WRITE.SCN    Build Notes:   	$ MMS/DESCR=IMGDEF   ; 	This must be done out of the same directory as the source.    More Documentation:    	IMGDEF.TEX  	IMGDEF.HLP    Other:  : 	The IMGDEF tool is an STSI-specific build tool that could> 	be modified to support other systems.  It provides automated * 	generation of link MMS and options files.  K ===========================================================================      Tool:		Remote CMS Server  H Description:	The Remote CMS tool provides an interface to CMS libraries < 		on a different DECnet node.  This lets the user issue CMS 8 		commands that access a CMS library on a different VAX ' 		without having to log onto that node.    Usage: 	     $ RCMS :== $SYS$SYSTEM:RCMS    $ RCMS    <Any-CMS-command>  	 Examples:   J    $ RCMS SET LIB NEWT::SPSS_CMS     ! This is slightly different from CMS  	    $ RCMS   B    $ RCMS CREATE ELEMENT/KEEP/NOREF/NOCONCURR any_old_element.dat       $ RCMS SHOW LIBRARY/FULL   
    $ RCMS       RCMS> SHOW LIBRARY ,      RCMS> SHOW RESERVATIONS/OUT=reserve.dat>      RCMS> RESERVE any_element.dat "You can reserve with this"
      RCMS> ^Z   	 Software:   	 	RCMS.COM 	 	RCMS.EXE  	RCMS.H 	 	RCMS.MMS 	 	RCMS.OPT 	 	RCMS.TEX  	RCMS_CMS_MESSAGE_HANDLER.C  	RCMS_DEFINE_CMSLIB.C  	RCMS_ESTABLISH_LINK.C 	RCMS_EXECUTE_CMS_COMMAND.C  	RCMS_GET_DEFAULT_DIR.SCN  	RCMS_GET_FIRST_COMMAND.C  	RCMS_GET_INPUT_COMMAND.C  	RCMS_GET_NODE_NAME.C  	RCMS_HANDSHAKE.C  	RCMS_MAIN.C 	RCMS_READ_CMS_COMMAND.C 	RCMS_READ_MESSAGE.C 	RCMS_SCAN_CMS_COMMAND.SCN 	RCMS_SCAN_FOR_SET_LIB.SCN 	RCMS_SEND_CMS_COMMAND.C 	RCMS_SEND_CMS_PARAMETER.C$ 	RCMS_SEND_CMS_SET_LIBRARY_COMMAND.C 	RCMS_SEND_MESSAGE.C 	RCMS_SETUP_MESSAGE_HEADERS.C  	RCMS_SET_LIBRARY_COMMAND.C  	RCMS_TRANSLATE_CMSLIB.C 	RCMS_TRASH_LINK.C
 	RCMS_UTILS.C    Build Notes:   	$ MMS/DESCR=RCMS   ; 	This must be done out of the same directory as the source.    More Documentation:   	 	RCMS.TEX    Other:  K ===========================================================================     $ Tool:		DCOPY Tool (Delete/Copy Tool)  I Description:	The DCOPY is a modified version of the VMS COPY command that ? 		deletes a file in the destination directory before it copies  8 		into it. Before it copies the file to the destination @ 		directory, it checks for the existence of the file, and if it ? 		exists already AND the revision date of the existing file is  ? 		older than the revision date on the file to be copied, DCOPY  @ 		deletes the file.  This is useful when disk space is tight on A 		the destination device.  Stretched logicals are also supported  > 		such that only the first version of a file is copied over a  		stretched directory list.    Usage:    	$ DCO*PY  :==  @sogstools:dcopy 	$ DCOPY	   <Source-files>   		   <Destination-directory>  9                    [<Any-string-turns-off-date-checking>]   	 Examples:   & 	$ DCOPY any_dir:*.exe some_other_dir:$ 	$ DCOPY file1.txt [-] NO_DATE_CHECK* 	$ DCOPY any$dinosaur:file%.txt sys$login:? 	$ DCOPY/OUT=DCOPY.LOG any$dinosaur:file%.txt sys$login: NO_MMS " 	$ DCOPY file1.txt;1 [-.other_dir]  	 Software:  	 
 	DCOPY.COM   Build Notes:   	N/A   More Documentation:   
 	DCOPY.TEX   Other: 	   K ===========================================================================     ( Tool:		MMS Generator For Source (MMSGEN)  I Description:	The MMSGEN tool is used to generate a compile MMS for files  > 		with the following extensions:  .FOR, .EQF, .EQE, .FBL, .C, : 		.SCN, .MSG, .MAR, .MBL, .X.  It scans one or more input 8 		files creating one or more MMS files with the correct @ 		dependency list and action lines to build or compile to target 		object file.   Usage:   	$ SET COMMAND SOGSTOOLS:MMSGEN  	$ MMSGEN	<For-what-sources>" 		        [<MMS-target-directory>]0 	                /EXECUTE=[<MMS-execute-string>]! 	                /TEST_DEPENDENCY  	                /LOG ( 	                /CONCAT=<Concat-string>+ 	                /OUTPUT=<Output-directory> 4 	                /MASTER_TARGET=<Master-target-name>5 	                /TARGET_EXTENSION=<Target-extension>  	                /SYSTEM6 	                /OTHER_DEPENDENCIES=<Dependency-list>1 	                /SEARCH_LIBRARIES=<Library-list> & 	                /ACTION=<Action-list>6 	                /MACRO_LIST=[<Macro-mnemonics-table>]* 	                /PREFACE=[<Preface-file>]  	 Examples:       $ MMSGEN fred.for    $ MMSGEN/EXECUTE fred.for  C    $ MMSGEN/EXECUTE/ACTION=".FOR-$(FORT) $(FORTFLAGS) %%" fred.for  G    $ MMSGEN/EXECUTE fred.for /OTHER_DEPENDENCY=("FRED.CLD", "FRED.LIS")     $ MMSGEN f*.for,r*.c >    $ MMSGEN SPSS_SOURCE:*.FOR SPSS_OBJECT: /CONCAT="_COMPILE"         /OUTPUT=SPSS_MMS_BUILD:2    $ MMSGEN fred.mar /SEARCH_LIB=DIRLIB:MACLIB.MLB.    $ MMSGEN fred.c /TEST_DEPENDENCY /NOSYSTEM =    $ MMSGEN fred.c, forfred.for /SEARCH_LIB=DIRLIB:INCLIB.TLB 9    $ MMSGEN fred.mbl /MACRO_LIST=my_macro_mnemonics.list  E        /SEARCH_LIB=(SOMEDIR:SOME_MACRO1.MLB, SOMEDIR:SOME_MACRO2.MLB) @    $ MMSGEN *.FOR /OUTPUT=COMPILE_ALL.MMS /MASTER_TARGET=ALL.DAT!    $ MMSGEN fred.x /TARGET_EXT=.o G    $ MMSGEN *.c,*.for,*.x,*.scn,*.eqf /PREFACE /EXECUTE /OUTPUT=one.mms .    $ MMSGEN oss_nk.source_list oss_nk_object:   	 Software:    	MMSGEN.CLD  	MMSGEN.EXE  	MMSGEN.MMS  	MMSGEN.SCN  	MMSGEN.TEX  	MMSGEN_FIND_C_DEPENDENCIES.SCN % 	MMSGEN_FIND_FORTRAN_DEPENDENCIES.SCN # 	MMSGEN_FIND_MACRO_DEPENDENCIES.SCN " 	MMSGEN_FIND_MODULE_IN_LIBRARY.SCN" 	MMSGEN_FIND_SCAN_DEPENDENCIES.SCN 	MMSGEN_FIND_X_DEPENDENCIES.SCN  	MMSGEN_MACRO_MNEMONICS.LIST 	MMSGEN_SOGS.PREFACE  	MMSGEN_STRIP_MACRO_COMMENTS.SCN   Build Notes:   	$ DEFINE SOGSTOOLS [] 	$ MMS/DESCR=MMSGEN   ; 	This must be done out of the same directory as the source.    More Documentation:    	MMSGEN.TEX    Other:  K ===========================================================================    Tool:		Link Check Tool (LNKCHK)   
 Description:	 : 		The Link Check tool verifies the existence of all input	? 		files on a link command, passing the command onto the Linker  = 		if all inputs exist.  Link Check is a workaround for a bug  ? 		in the Linker that causes it to go into an endless loop when  ? 		processing many objects with logical searchlists when one of  = 		the objects is missing (either from the command line or an   		options file).   Usage:  )            $ SET COMMAND SOGSTOOLS:LNKCHK             $ LNKCHK [</NOPASS>] ,                     <Any-Valid-Link-Command>  	 Examples:   L       $ LNKCHK  spss_object:any_spss_object, oss_object:any_oss_object.obj,-0                 any.opt/OPTIONS, any.olb/LIBRARY  5       $ LNKCHK/NOPASS  spss_object:any_spss_object, - 6                        oss_object:any_oss_object.obj,-7                        any.opt/OPTIONS, any.olb/LIBRARY   A       $ LNKCHK/MAP/NOTRACE/CONTIG  spss_object:any_spss_object, - G                        any.opt/OPTIONS, any.olb/LIBRARY /EXEC=ANY.EXE -                         /FULL  	 Software:    	LNKCHK.CLD  	LNKCHK.EXE  	LNKCHK.MMS  	LNKCHK.MMS  	LNKCHK.MMS  	LNKCHK_MESSAGES.MSG 	LNKCHK_OPTCHECK_MAIN.FOR   	LNKCHK_OTHER_OPTCHECK_FILES.OPT# 	LNKCHK_PROCESS_LONG_LINK_COMMAND.C  	LNKCHK_TEST_LINK.SCN  	  Build Notes:   	$ DEFINE sogstools [] 	$ MMS/DESCR=OPTCHECK  	$ MMS/DESCR=LNKCHK   ; 	This must be done out of the same directory as the source.    More Documentation:    	LNKCHK.TEX    Other:  K ===========================================================================   