Child pages
  • Compiling and Linking OECN State Software
Skip to end of metadata
Go to start of metadata


COBOLALL and LINKALL are DCL command procedures used to compile and link State software programs. COBOLALL will compile, then link all COBOL source files found in the specified directory. If OECN$CUSTOM: is defined this procedure will look first in that directory for any customized COBOL Copy libraries.

LINKALL will link all object files found in the specified directory. It is generally not necessary to recompile programs on the State software distributions, thus LINKALL is the procedure that will be used most often.


The parameters for both COBOLALL and LINKALL are identical. The command procedures may be submitted to batch using the /PARAMETER qualifier or executed interactively with @.

Parameter Description


Device/Directory where source and/or object code is located.


Reserved for use by SSDT.


LINK qualifiers (default is /NOTRACE).


Program name, optional. Specifies the name of an individual program to be compiled or linked. This parameter causes the procedure to compile and/or link only the program specified.



The above command will compile and link all the programs in DUA0:[ODE.USPS.V3P7.DIST] using the /NOTRACE qualifier during the linking process.


This command will link using the /TRACE qualifier all object code files found in the directory pointed to by the USPS37: logical. The logical would have to be one that will have a defined value when the batch job executes.


This command will only compile the CHKPRT program in USPS37:.

Error Reporting

If errors occur during the linking or compiling process a VMS Mail message will be sent to all usernames specified in OECN$UTL:SENDMAIL.COM. The SENDMAIL.COM is a Mail distribution list created by the OECN_INSTALL installation procedure. You may change this file using a text editor if desired.

Compiling Individual Programs

CBL.COM is a DCL command procedure used to compile a single program. It may be used to compile State software programs or other COBOL programs.

The procedure provides the following capabilities:

  • Searches your default directory for COBOL Copy libraries first, The order of searching for libraries is SYS$DISK:[],OECN$CUSTOM: and OECN$LIB:. This is useful for developing new or modified libraries.
  • Spawns a subprocess to do the compile, freeing your terminal.
  • Allows COBOL and some LINK qualifiers to be passed.
  • Provides a log of error messages generated during the compile. Notifies the user via REPLY/USER the success or failure of the compile (requires OPER privilege).

Execute the procedure by passing the name of the program to compile as the first parameter. You may append any valid COBOL command qualifier to the parameter.

The following special qualifiers are also allowed:

Qualifier Function


Generates a listing and automatically prints the listing on SYS$PRINT.


Automatically compiles and links with the /DEBUG qualifier.


Skips the linking process


Links with PCA, Performance, Coverage Analyzer. You must have PCA installed on your system to use this qualifier.


Specifies the distribution directory to which the program belongs. This
causes CBL to search the distribution directory for libraries after
searching OECN$CUSTOM. It also causes CBL to search for package
specific subprograms that might be required by the program. You should
use this qualifier when compiling programs released by SSDT as part of
a package.


In order to use CBL you should define the following symbol in your

$ CBL == "@OECN$UTL:CBL _"

The underscore (_) is required. If you wish you can add qualifiers after the underscore. For example, if you always want to compile with /LIST and /CHECK you could define the symbol as:




Will spawn a subprocess to compile and link the CHKPRT program in the default directory. The log of the operation will be in SYS$DISK:[]CHKPRT.LOG. CBL will look in specified distribution directory for libraries and subprograms.


This command will generate a listing of the program called MYPROG and submit it for printing on SYS$PRINT. No executable will be produced due to the /NOOBJECT qualifier.

  • No labels