VDE
VDE
Reference Manual


Previous Contents Index


Chapter 2
VDE Commands Invoked from DCL


VDE

The OpenVMS Development Environment (VDE) Utility is a tool that software developers can use to manage software development. VDE uses a relational database to store development information about your software system and to manage multiple instances of that system. VDE also manages the disk directories, CMS libraries, and files that comprise your software system. In managing a software system, VDE can perform the following functions:

VDE includes extensive built-in HELP. At the VDE„, type "HELP". An extensive documentation set, in Bookreader and Postscript formats, is also available.


Format

VDE [vde-command [; vde-command...]]


Parameter

vde-command

A VDE command to be performed. The available VDE commands are described in Chapter 3. You can specify multiple VDE commands if you separate them by semicolons (;).

This parameter is optional; it you omit it, VDE prompts you for commands.


Description

The VDE command invokes the VDE utility and allows you to enter VDE subcommands. Specifying the VDE command with specific qualifiers enables you to modify the VDE environment or invoke separate programs that are part of the VDE system.

To invoke the VDE utility, enter the VDE command at the DCL prompt ($). The system responds with the prompt for the VDE utility (VDE„). For example:


$ VDE
VDE„

At the VDE„ prompt, you can enter VDE subcommands to perform VDE functions. For simplicity, these subcommands are referred to as "VDE commands" in the rest of this description. To exit from VDE, enter the EXIT command or press CTRL/Z.

The following example shows how to enter VDE commands from within the utility:


$ VDE
VDE„ SHOW LIBRARY
Main library LIBNAME in root directory DEV$:[PROJDIR]
VDE„ EXIT
$

You can also enter VDE commands directly on the VDE command line. In this case, VDE does not prompt you for commands. The following example shows how to enter a VDE command from the DCL command line:


$ VDE SHOW LIBRARY
Main library LIBNAME in root directory DEV$:[PROJDIR]
$

You can also enter the following commands from the DCL command line (either interactively or from within a coded file called a "VDE script") to invoke separate programs that are part of the VDE system:

These commands are described separately in this chapter.

To use VDE, you must specify the VDE library that you want to use. The VDE library for a software system consists of a root directory, a VDE database residing in that root directory, and a directory tree that contains all CMS libraries, source files, and other files that make up your software system. You specify the VDE library you want to use by giving the directory specification for the library root directory. The root directory contains the database and the database contains pointers to all other directories that make up the library.

Unless you are creating a new VDE library, you can specify the library using any of three methods. First, you can define a logical name VDE$LIBRARY to give the library's root directory. If you use the same VDE library most of the time, you should define VDE$LIBRARY in your login file. Second, you can use the /LIBRARY qualifier to the VDE command to specify the library mnemonic or root directory. And third, you can use the VDE SET LIBRARY command to specify the mnemonic or root directory. You must use one of these three methods to specify the VDE library.


Qualifiers

/INTERFACE=keyword

The /INTERFACE qualifier allows the user to select a keyword representing the prefered user interface presented by VDE. With the VDE/INTERFACE=DECWINDOWS keyword, the Motif graphical user interface is used. With the VDE/INTERFACE=CHARACTER_CELL keyword, the traditional command interface is used.

/KEPT_PROCESS

/NOKEPT_PROCESS (default)

Specifies whether VDE runs with or without creating a kept process. /KEPT_PROCESS specifies that the VDE utility should run in a kept subprocess that is retained from one invocation of the VDE command to the next. Use of a kept subprocess allows VDE to connect to the VDE database once for many invocations of VDE, thus speeding up subsequent accesses to the database. It also allows VDE to retain state information, such as the default stream and facility, between invocations. /NOKEPT_PROCESS specifies that VDE not run in a kept subprocess.

Do not attempt to use the DCL ATTACH command to attach to a VDE or VSC kept process.

/LIBRARY=directory-spec

Specifies the mnemonic name or root directory of the VDE library with which you want to work. Subsequent VDE operations will access the database associated with that library.

/DEPEND lang ana-file [in-out-file [,in-out-file...]]

The /DEPEND qualifier causes VDE to invoke a separate program that automatically collects build dependency information. The VDE/DEPEND combination is described as a separate command later in this chapter.

/READ_UAF

The /READ_UAF qualifier causes VDE to invoke a separate program used to update the User Table in a VDE database from information in the system user authorization file (UAF). The VDE/READ_UAF combination is described as a separate command later in this chapter.

Examples

#1

$ DEFINE VDE$LIBRARY DEV$:[PROJDIR]
$ VDE
VDE„ SHOW LIBRARY
Main library LIBNAME in root directory DEV$:[PROJDIR]
VDE„ SHOW STREAM V2.1-1
Stream V2.1-1          "First update to version 2.1"
VDE„ HELP
...help text displayed...
VDE„ EXIT
$
      

This example defines logical name VDE$LIBRARY to specify the root directory of the VDE library you want to work with. This directory contains the VDE database for the library. The VDE command entered from DCL then gives the VDE„ prompt. You can now enter VDE commands, in this case the SHOW LIBRARY and SHOW STREAM commands. The EXIT command ends the VDE session and returns you to the DCL prompt ($).

#2

$ VDE SHOW LIBRARY; SHOW STREAM V2.1-1
Main library LIBNAME in root directory DEV$:[PROJDIR]
Stream V2.1-1          "First update to version 2.1"
$
      

This example shows two VDE commands entered directly on the DCL-level VDE command line. Both commands are executed, after which VDE exits and returns you to the DCL prompt ($). In this case, VDE does not prompt for commands. The example assumes that logical name VDE$LIBRARY has already been defined, perhaps in the user's login file.

#3

$ VDE/LIBRARY=DEV$:[ROOTDIR]
VDE„ SHOW LIBRARY
Library LIBNAME in root directory DEV$:[ROOTDIR]
VDE„ EXIT
$
      

In this example, the /LIBRARY qualifier specifies that the root directory for the VDE library is DEV$:[ROOTDIR]. Entering the SHOW LIBRARY command at the VDE prompt confirms that this library has been set.

#4

$ VDE
VDE„ SET LIBRARY DEV$:[ROOTDIR]
VDE„ SHOW LIBRARY
Library LIBNAME in root directory DEV$:[ROOTDIR]
VDE„ EXIT
$
      

This example uses the SET LIBRARY command to specify the root directory of the VDE library to use. The SHOW LIBRARY command confirms that this library has been set.


VDE/DEPEND

Invokes a program that automatically collects build dependency information from a compiler-generated analysis file to determine the inputs and outputs of a build step.

This command should only be invoked in DCL command procedures created from VDE scripts to perform build steps. Do not attempt to run this program interactively.


Format

VDE/DEPEND lang ana-file [in-out-file [,in-out-file...]]


Parameters

lang

The name of the language processor that generated the Source Code Analyzer analysis file. This is a required parameter. Keywords for the supported language processors are as follows:
Keyword Language Processor
ADA Ada compiler
B32 Bliss compiler
C C compiler
DML DBMS preprocessors for compilers
FOR Fortran compiler
MAR Macro assembler
NOANA No analysis file given (only the in-out-file parameters are used)
PLI PLI compiler
PAS Pascal compiler
RBA RDML preprocessor for BASIC
RBL RDML preprocessor for Bliss
RC RDML preprocessor for C
RCO RDML preprocessor for COBOL
RFO RDML preprocessor for FORTRAN
RPA RDML preprocessor for Pascal
REQ Bliss library compilation
SC SQL preprocessor for C
SCO SQL preprocessor for COBOL
SFO SQL preprocessor for FORTRAN
SPA SQL preprocessor for Pascal
SPL SQL preprocessor for PL/I
SQLADA SQL preprocessor for Ada
SQLMOD SQL module language

ana-file

The file specification for the analysis file containing the dependency information. This is a required parameter. If the lang parameter is NOANA, specify two double quotes ("") to indicate that the ana-file parameter is null.

in-out-file

A file specification that specifies an input file or output file for the build step. The file specification can be followed by the /INPUT qualifier to indicate that the file is an input to the step or by the /OUTPUT qualifier to indicate that the file is an output of the step. If neither qualifier is specified, the file is assumed to be an input file. This parameter is used to record input and output files that are not specified in the analysis file or that are not correctly classified as inputs or outputs from the information in the analysis file.

Description

The VDE/DEPEND command invokes a separate program that automatically collects build dependency information from a compiler-generated Source Code Analyzer (SCA) analysis file. The VDE/DEPEND command is used in command procedures generated from VDE scripts to compile source modules. The program reads the analysis (.ANA) file along with information specified on the command line to determine all input and output modules for the current build step. This information is written to the VDE database if the build step completes successfully.

The analysis file specifies all input and output files of the compilation but does not indicate which files are inputs and which files are outputs. VDE/DEPEND therefore requires that you specify the language that was compiled so that the program can guess which files are inputs and which are outputs based on file types. As a result, it is important that you use the standard file types for all of your compilations.

Because the analysis file and command line supply VDE/DEPEND with a list of file names, VDE must translate those file names into VDE module names before it can record build dependencies in its database. To do so, VDE uses the following rules:

As a result of these rules, it is important that each source module or derived module be stored somewhere in the directory tree for the stream you are building and, within that stream, for the facility to which the module belongs. This is a constraint that your scripts must obey; within that constraint, scripts are free to place files anywhere you want.


Examples

#1

$ DEFINE SRC$ DEV$:[ROOTLIB.MAIN.FAC.SRC]
$ DEFINE OBJ$ DEV$:[ROOTLIB.MAIN.FAC.OBJ]
$ VDE FETCH [FAC]FOO.C/OUTPUT=SRC$:
$ CC/ANA=OBJ$:/OBJ=OBJ$:  SRC$:FOO.C
$ VDE/DEPEND C OBJ$:FOO.ANA 
      

This example shows the lines generated from a VDE script to compile module FOO.C. The first two lines define logical names SRC$ and OBJ$ to point to the source and object directories for stream MAIN and facility FAC within the VDE library. The third line fetches source module FOO.C from the VDE library into the source directory. The next line runs the C compiler, compiling module FOO.C to produce an object file FOO.OBJ and an SCA analysis file FOO.ANA. The last line runs VDE/DEPEND to read that analysis file. From information in the analysis file, VDE/DEPEND determines what input files were used and what output files were produced by the compilation. This information will be passed to VDE for inclusion in the VDE database.

#2

$ VDE/DEPEND REQ OBJDIR:LIBDEF.ANA OBJDIR:LIBDEF.L32/OUTPUT 
      

When the command procedure containing this line executes, VDE/DEPEND will read the analysis file OBJDIR:LIBDEF.ANA to determine the input and output modules of a Bliss library compilation. Because a Bliss library compilation produces one .L32 module as an output and may use many .L32 modules as inputs, the VDE/DEPEND command line must specify which .L32 module is the one output. This is done by specifying OBJDIR:LIBDEF.L32 with the /OUTPUT qualifier at the end of the command. This is an example of using an in-out-file parameter to override the default assumption that a module of that type is an input to the compilation.

#3

$ VDE/DEPEND NOANA "" SRCDIR:FOO.MSG/INPUT,OBJDIR:FOO.EXE/OUTPUT 
      

This example shows how VDE/DEPEND can be used to specify input and output modules when no analysis file is available. The message compiler does not produce an analysis file. For this reason, the command uses the NOANA keyword and specifies the null string as the analysis file parameter. The actual input and output files are specified by a list of in-out-file parameters at the end of the command.


VDE/READ_UAF

Updates the User Table in a VDE database from information in the system user authorization file (SYSUAF).

Format

VDE/READ_UAF[/WRITE_UAF]


Description

The VDE/READ_UAF command invokes a separate program that updates the User Table in a VDE database from information in the system user authorization file (SYSUAF). For each user recorded in the VDE database, the program looks up that user in the UAF to determine the user's full name from the UAF owner field. That name is then stored in the VDE database if not already there. The program also determines whether the user's account is still valid. If not, the user is marked as deleted in the VDE database so that the database is no longer accessible to that user.

The VDE/READ_UAF command also supports a /WRITE_UAF qualifier. Specification of VDE/READ_UAF/WRITE_UAF causes VDE to update the process quota values of all VDE users in the System Authorization Database (SYSUAF). Any process quotas below the minimum VDE requirements are increased, but quotas above the minimum are not altered. The /WRITE_UAF qualifier is valid only when specified with /READ_UAF, and it requires read and write access to the SYSUAF database.

VDE/READ_UAF can be run at regular intervals to maintain the VDE database so it stays synchronized with the system authorization database. This way, you do not have to manually maintain the VDE User Table with the CREATE USER, MODIFY USER, and DELETE USER commands. Specification of the the target VDE library is required via the /LIBRARY qualifier on the command, or via the logical name VDE$LIBRARY.

To use this command, you must have read access to the SYSUAF system authorization file. Access to the system authorization file can be granted via OpenVMS an privilege such as READALL or BYPASS, via an ACL on the SYSUAF file, or via various other means. Contact your system manager for assistance.

:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,==

Qualifiers

/DELETE

The /DELETE qualifier causes VDE to delete any VDE usernames that are not also found in SYSUAF. This is not generally desirable, and can potentially lead to problems should SYSUAF be misdirected.

/WRITE_UAF

The /WRITE_UAF qualifier causes VDE to update any process quotas stored in the SYSUAF file that are below the required minimum settings to the minumum settings. Quota values above the minimum settings are not altered.
:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,=:=,==

Example


$ SET PROCESS/PRIVILEGE=BYPASS
$ VDE/READ_UAF/WRITE_UAF/LIBRARY=DEV$:[VDELIBDIR]
$ SET PROCESS/PRIVILEGE=NOBYPASS
      

The first command sets the OpenVMS privilege BYPASS, which overrides all protections on the system authorization database. The second command runs VDE/READ_UAF to update the VDE database from the user authorization file, and the system authorization database process quotas from the list of users in the VDE database. The final line removes the BYPASS privilege to clean up.


Previous Next Contents Index