Creating an object library under TSO

The object library utility has the following syntax:
Read syntax diagramSkip visual syntax diagram
>>-C370LIB------------------------------------------------------>

>--+-ADD--LIB--(libname(membername))--+----------------+-+-----><
   |                                  '-OBJ--(objname)-' |   
   +-DEL--LIB--(libname(membername))---------------------+   
   +-MAP--LIB--(libname)--+-------------+----------------+   
   |                      '-LIST--(map)-'                |   
   +-MAP370--LIB--(libname)--+-------------+-------------+   
   |                         '-LIST--(map)-'             |   
   +-MAP390--LIB--(libname)--+-------------+-------------+   
   |                         '-LIST--(map)-'             |   
   +-DIR--LIB--(libname)---------------------------------+   
   '-DIR390--LIB--(libname)------------------------------'   

where:
ADD
Adds (or replaces) an object module to an object library.

If you use ADD to insert an object module to a member of a library that already exists, the previous member is deleted prior to the insert. If the source data set is the same as the target data set, ADD does not delete the member, and only updates the Object Library Utility directory.

DEL
Deletes an object module from an object library.
MAP
Lists the names (entry points) of object library members in the Enhanced Directory Member if it is available; otherwise in the Basic Directory Member. You will only see object library members that were compiled with the options IPA(NOOBJECT), XPLINK or LP64 in the listing if the Enhanced Directory Member is available.
MAP370
Lists the names (entry points) of all object library members in the Basic Directory Member.
MAP390
Lists the names (entry points) of all object library members in the Enhanced Directory Member.
DIR
Builds the Object Library Utility directory member. The object library utility directory contains the names (entry points) of library members. The DIR function is only necessary if object modules were previously added or deleted from the library without using the object library utility.
DIR390
As of z/OS® V1R2, the DIR and DIR390 commands are aliases of each other, and can be used interchangeably.
LIB(libname(membername))
Specifies the target data set for the ADD and DEL functions. The data set name must contain a member specification to indicate which member Object Library Utility should create, replace, or delete.
OBJ(objname)
Specifies the source data set that contains the object module that is to be added to the library. If you do not specify a data set name, the object library utility uses the target data set that you specified in LIB(libname(membername)) as the source.
LIB(libname)
Specifies the object library for which a map is to be produced or for which an object library utility directory is to be built.
LIST(map)
Specifies the data set that is to contain the object library utility listing. If you specified an asterisk (*), the listing is directed to your terminal. If you do not specify a data set name, a name is generated using the library name and the qualifier MAP. If TEST.OBJ is the input library data set, and your user prefix is FRANK, the data set name for the listing is FRANK.TEST.OBJ.MAP.

Under TSO, for z/OS XL C you can use either the C370LIB REXX EXEC or the CC REXX EXEC with the parameter C370LIB. The C370LIB parameter of the CC REXX EXEC specifies that, if the object module from the compile is directed to a PDS member, the object library utility directory is to be updated. This step is the equivalent to a compile and C370LIB ADD step. If the C370LIB parameter is specified, and the object module is not directed to a member of a PDS, the C370LIB parameter is ignored.