The only distinction that SCLM makes between a workstation application
and a host application is where the compiler and other tools reside.
The application source and the outputs from builds are stored in PDS
data sets on the host. The result is that all of the SCLM functions
work the same for a workstation application as they do for a host MVS™ application except for build.
The difference between building a workstation application and a
host application is that special build translators are used for the
workstation application. The user doing the workstation build must
use a workstation.
SCLM provides three build translators to build workstation applications.
One translator, FLMLTWST, is the driver and calls the other translators
to perform various tasks. To allow customization of the events that
take place during a workstation build, the FLMLTWST translator is
written in REXX. This allows the translator to be customized to meet
the project's needs. The FLMLTWST translator performs the following
tasks:
- Initialization and set up
SCLM checks the parameters, retrieves
and checks the workstation information, sets up file name mapping
information, and sets up command information.
- Build map parsing
FLMLTWST calls the FLMTBMAP translator to
get the contents of the build map for the member being built. FLMLTWST
parses the information in the build map to get the list of inputs
that must be transferred to the workstation and any additional parameters
that have been specified for the workstation command, such as a compiler
or other tool. FLMLTWST also gets the list of outputs after the command
is complete.
At the same time, the SCLM member names are mapped
to workstation file names based on the file name mapping information.
- Construct command parameters
FLMLTWST supports running multiple
workstation commands during each invocation. The parameters for each
of the commands are put together based on the parameters passed to
FLMLTWST, the contents of the build map (input and output file names
can be included in the parameters), and on the workstation command
information.
- Response file construction
Some workstation commands support
passing parameters using a file called a response file. If
the workstation command information specifies a response file, one
is created in a temporary data set and will be sent to the workstation
with the other workstation command inputs.
If multiple workstation
commands will be issued, the response file for the first workstation
command is sent with the input files. Response files for later commands
are sent just before each command is run.
Response files are
only generated and sent to the workstation if the workstation command
information indicates that one is to be used. If no response file
is used, the command parameters are specified with the workstation
command.
- Transfer inputs to the workstation
FLMLTWST constructs a list
of the input files (includes, source members, and response file) to
be sent to the workstation. The
FLMTXFER translator is then called to send the files to the workstation.
FLMTXFER uses the FILEXFER service to transfer files to the workstation.
The
FLMTXFER translator keeps track of the SCLM members that have been
sent to the workstation. This record is used to ensure that include
members and source members are only transferred to the workstation
once to reduce the time required to build a workstation application.
The record of what has been transferred to the workstation is preserved
in memory allocated by SCLM build. The result is that, within a single
SCLM build, FLMTXFER only downloads a member once no matter how many
source members that include it are built.
If the date and
time of the host member's statistics are the same as the date and
time of its workstation counterpart, SCLM assumes that they are the
same, and does not download the member a second time.
- Perform the workstation command
FLMLTWST constructs the workstation
command based on the information obtained in the set-up step. The
command is issued on the workstation and SCLM waits for the result.
Repeat
this step for each workstation command that will run for the member
being built. Before each command is issued, a response file is constructed
and transferred to the workstation if needed.
- Transfer the outputs to the host system
FLMLTWST uses a list
of outputs obtained from the build map to construct a list of files
to transfer from the workstation to the host system. The FLMTXFER
translator performs the transfer from the workstation to the host.
The data sets where the files are transferred are the data sets allocated
to the ddname specified in the translator definition for FLMLTWST.
If FLMLTWST ends successfully, build transfers the members into the
SCLM hierarchy.
If you have set the FLMALLOC macro IOTYPE=P,
the date and time on the host member statistics are synchronized with
the date and time of the corresponding workstation file, so that if
the member is used for another build step, it will not be downloaded
again.