--------------------------------------------------------------------------- Space Telescope Science Institute Tools Group DECUS Atlanta '89 Submissions --------------------------------------------------------------------------- This saveset contains all source, objects, and executables for a series of tools developed in the OSB Tool Group at the Space Telescope Science Institue in Baltimore Md. The source languages include VAX C, FORTRAN, SCAN, MACRo, and MESSAGE. If you do not have one of these compilers, yuo can still link with the objects. There are LaTeX documents for most of the tools also included. The LaTeX include files have also been included should you want to try to LaTeX these. Some of the tools have logical names associated with them that you will need to define before running/building the tool. Tool descriptions follow: =========================================================================== 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 Examples: $ CHKMAP RAFSTR.MAP $ CHKMAP RAFSTR.MAP RAFSTR.CKM $ CHKMAP disk$bruno:[b192.podps.exe]*.MAP sys$output /EXCLUDE=exclude.list $ CHKMAP disk$bruno:[b192.podps.exe]*.MAP sys$output /EXCLUDE=XSF,DANZA,UNDEFSYM $ 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: 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. =========================================================================== Tool: Disk Report Tool Description: The Disk Report tool scans one or more directory log files creating a series of reports summarizing disk space utilization. Usage: $ SET COMMAND DEVTOOLS:DISK $ DISK_REPORT /OUTPUT= /NOSUMMARY /NOROOT /TOP_DIRECTORIES= /COMPLETE /MASTER= /MSUMMARY /TABLE_ONLY /PERCENT= /OVER_BLOCK_SIZE= /MAX_DEPTH= /DISK_SIZE_TABLE= Examples: $ DISK_REPORT anky.log $ DISK_REPORT/MASTER/COMPLETE anky.log,bruno.log,ichthy.log,ptero.log $ DISK_REPORT/MASTER=by_user.list/COMPLETE anky.log,bruno.log,- ichthy.log,ptero.log $ DISK_REPORT/MASTER=by_user.list/TABLE_ONLY/COMPLETE - 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 $ DISK_REPORT/NOSUMMARY/NOROOT/NOTOP/COMPLETE - 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. =========================================================================== Tool: Show Merged CMS Classes Description: The Show Merged CMS Classes tool compares all of the elements in a CMS library class (typically an SPR class) to see if they are also inserted, or ``merged'' into another class (typically a PENDING class) in that same CMS library. Usage: $ SMC :== @DEVTOOLS:SMC.COM $ SMC [<``TABLE_ONLY''>] [<``ALL_PENDING''>] [<``ALL\_SPR''>] Examples: $ SMC PENDING19.2 @disk$bruno:[b192.default]192_spr.com - oss_cms oss_cms.smc_report $ SMC PENDING19.2 SPR.12345,SPR.01923 @cmslibs.com - sys$output ALL_PENDING $ 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. =========================================================================== Tool: Image Definition Tool (IMGDEF) 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 file to describe the LINK process, and an MMS file for building the image and its components. Usage: $ IMGDEF :== $SOGSTOOLS:IMGDEF.EXE $ 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. =========================================================================== Tool: Remote CMS Server Description: The Remote CMS tool provides an interface to CMS libraries on a different DECnet node. This lets the user issue CMS commands that access a CMS library on a different VAX without having to log onto that node. Usage: $ RCMS :== $SYS$SYSTEM:RCMS $ RCMS Examples: $ RCMS SET LIB NEWT::SPSS_CMS ! This is slightly different from CMS $ RCMS $ 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: =========================================================================== Tool: DCOPY Tool (Delete/Copy Tool) Description: The DCOPY is a modified version of the VMS COPY command that deletes a file in the destination directory before it copies 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 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 [] 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: =========================================================================== Tool: MMS Generator For Source (MMSGEN) 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 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 [] /EXECUTE=[] /TEST_DEPENDENCY /LOG /CONCAT= /OUTPUT= /MASTER_TARGET= /TARGET_EXTENSION= /SYSTEM /OTHER_DEPENDENCIES= /SEARCH_LIBRARIES= /ACTION= /MACRO_LIST=[] /PREFACE=[] Examples: $ MMSGEN fred.for $ MMSGEN/EXECUTE fred.for $ MMSGEN/EXECUTE/ACTION=".FOR-$(FORT) $(FORTFLAGS) %%" fred.for $ 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: $ MMSGEN fred.mar /SEARCH_LIB=DIRLIB:MACLIB.MLB $ MMSGEN fred.c /TEST_DEPENDENCY /NOSYSTEM $ MMSGEN fred.c, forfred.for /SEARCH_LIB=DIRLIB:INCLIB.TLB $ MMSGEN fred.mbl /MACRO_LIST=my_macro_mnemonics.list /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 $ 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: =========================================================================== 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 [] Examples: $ LNKCHK spss_object:any_spss_object, oss_object:any_oss_object.obj,- any.opt/OPTIONS, any.olb/LIBRARY $ LNKCHK/NOPASS spss_object:any_spss_object, - oss_object:any_oss_object.obj,- any.opt/OPTIONS, any.olb/LIBRARY $ LNKCHK/MAP/NOTRACE/CONTIG spss_object:any_spss_object, - 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: ===========================================================================