CODE CONTROL PROCEDURES FOR GREEN BANK OVLBI EARTH STATION -- p r e l i m i n a r y -- 92/07/17 LRD 1. The official version of all source code, object modules, makefiles, and documentation for the real-time control software and also for off-line software needed for earth station operations will be kept in directory ~ovlbi on the complex of Sun workstations. Miscellaneous other information of common interest to all members of the development team may also be kept there. (Exactly which disk is used to hold ~ovlbi is not critical, and will be decided later. Initially, it will be in the server computer "sadira.") 2. Normally, development team members should not log on as "ovlbi" but rather as themselves. Editing, compiling, and debugging should usually be done in one's own directory using copies of the official code. Use of the ovlbi account should be limited to file maintenance activities. (This policy might be changed if it proves impractical.) 3. The real-time control source code will be strictly separated into three categories: A. VLBA: Source modules (.c and .h) copied exactly from the VLBA control code and intended to be maintained by the VLBA monitor/control group in Socorro. This means that if the VLBA group updates such a module, we will automatically adopt the new version. B. VLBA-modified: Source modules that have the same names and basically the same function as in the VLBA control system, but that we have modified (slightly) for our use. Maintenance of these modules is joint between the GB-ES group and the Socorro VLBA M/C group. When their module is revised, we will incorporate the revisions into ours. (On the other hand, if we make modifications that are not specific to our application but that might be useful to the VLBA M/C group also, we can submit the modified module for possible adoption by the Socorro group; if they do adopt it, then it reverts to category A.) C. ES specific: Modules specially developed for the Green Bank Earth Station. Maintenance of these is our responsibility completely. Such modules might have the same names as VLBA modules, and they might have started out as modified versions of VLBA modules. Nevertheless, any module placed in this category will be decoupled from any changes made elsewhere. 4. Use of SCCS: All source code and documentation files for the earth station project will be controlled by the UNIX utility SCCS. Category A code is already maintained under SCCS in Socorro, so we will not duplicate this; instead, we will extract copies of their modules as needed. Categories B and C will be maintained in separate directories under SCCS in Green Bank. 5. Directory structure: The ~ovlbi directory will have at least the following subdirectories, each limited to the contents specified here. ovlbi/vlba-all copy of all (or a large portion) of the VLBA source modules, including ones that we are not using, kept for reference only. /vlba Category A source code (.c and .h files), extracted from the SCCS files in Socorro, but including only those modules actually incorporated into the Earth Station control system. /SCCS-vlba Category B source code (.c and .h) SCCS files (modified VLBA code); modules currently used in the ES control system. /SCCS Category C source code and documentation for the ES real time control system, as SCCS files (.c, .h, .doc, makefiles, and possibly other file types). /code current version of source code for ES control system, extracted from ./vlba, ./SCCS-vlba, and ./SCCS. This directory should contain only .c files and makefiles. Together with ../h (below) and libraries kept elsewhere, this should contain everything needed to build a current version of the ES control system. (It may be useful to set up automatic extraction of these files on a regular schedule, perhaps daily.) /h header files needed by ../code, extracted from ../vlba, ../SCCS-vlba, and ../SCCS. Header files and libraries purchased commercially (especially VxWorks files) should not have copies here, but should instead have their own homes. /vw files needed to build the VxWorks kernel on the control computer, including modified versions of source files supplied by Wind River, and makefiles. Some standard and unmodified Wind River files may have copies here for convenience, but generally the latter should have their own, separate homes. /target object file libraries for loading to the control computer, created from ../code, ../h, ../vw, and commercial libraries from makefile in ../code. Also here is the control computer's startup script. /offline code for programs that run before and after a tracking pass, under UNIX, usually in a Sun: /offline/code .c and makefiles /offline/h .h /offline/bin executables /memoseries copies of text of some (hopefully most) OVLBI-ES memos. May be ASCII files or TeX input files. /public miscellaneous material that we want to make publically available, and is therefore inappropriate to keep in directories belonging to individuals. Additional directories under ~ovlbi, as well as additional subdirectories under some of those already defined, may be defined later. But the contents of the directories already defined should continue to be as described above.