The build processor automatically compiles, links, or deletes output
to make build outputs match build inputs. The build function:
- Ensures total project integrity by verifying that all components
defined to the architecture being built are present and complete
- Performs necessary translations such as compiles and links
- Conditionally saves translator output in the database
- Generates a build report
Build compiles, links, and integrates software components according
to the architecture. For any group in the hierarchy, the build function
uses the software components within the hierarchy of that group to
update the out-of-date members. Use build to compile and link individual
components as well as to integrate the smaller components into larger
components.
For each component that it processes, the build function takes
one of the following actions:
- Does nothing if the component has not changed since the previous
build
- Deletes out-of-date outputs if that will leave the component in
an up-to-date state
- Compiles or links changed components.
At the completion
of the build, SCLM, when requested, produces a report identifying
the members that were generated or deleted by the build function.
You also can specify that a Build Report be generated without actually
invoking any translators. The Build Report identifies those components
in the hierarchy that would change if translators were to be invoked.
With the PTFs for APAR OA21104 applied, a build can also
be run in information mode. When this is done the options passed to
the translators, and the data sets used in the concatenations for
resolving the include dependencies, are written to the build report
output in XML format. The options that would be passed to a compiler
will be shown, after FLMTOPTS and Compilation Control architecture
member overrides have been taken into consideration. In addition,
all DDs in the SYSLIB, or any other IOTYPE=I allocation, will be shown
as they would be passed to the compiler with all FLMCPYLB, FLMINCLS
and FLMSYSLB overrides taken into consideration.
Before build begins processing the member, it tries to open the
VSAM accounting and cross-reference data sets for the group where
the build is taking place. If you do not have UPDATE authority to
the data sets or if there is an error opening one of the data sets,
the build will fail. See BUILD—Build a Member for
more information about the processing done by the build processor.
The panel shown in Figure 1 appears when
you select Option 4, Build, from the SCLM Main Menu.
Figure 1. SCLM Build (FLMB#P) Menu SCLM Utilities Jobcard Test Workstation Build Help
──────────────────────────────────────────────────────────────────────────────
SCLM Build - Entry Panel
Command ===>
Build input:
Project . : PDF42SVT
Group . . . DEV1
Type . . . . ARCHDEF Enter "/" to select option
Member . . . SAMPLE / Error Listings only
Workstation Build
Mode . . 1 1. Conditional Scope . . . 2 1. Limited
2. Unconditional 2. Normal
3. Forced 3. Subunit
4. Report 4. Extended
5. Information
Output control:
Ex Sub Process . . 1 1. Execute
Messages . . 3 3 1. Terminal 2. Submit
Report . . . 3 3 2. Printer
Listings . . 3 3 3. Data set Printer . . H
4. None Volume . .
The fields for the SCLM Build - Entry panel are:
- Project
- The project that you specified on the SCLM Main Menu. An Alternate
field also appears if you specified an alternate project.
- Group
- The group in which the build is to occur.
- Type
- The type of the member to build.
- Member
- The name of the member to build.
- Scope
- You
must specify a scope equal to or greater than the scope specified
with the SCOPE keyword in the FLMLANGL macro.
- Limited
- To process those components
that the architecture members directly reference. If you use a source
member, the build function processes only that member.
- Normal
- To
process the components and members referenced by the specified architecture
member. In addition, this scope processes upward dependencies for
all Ada-type source members referenced directly by the architecture
member and all source members referenced as upward dependencies.
- Subunit
- To
process the components and members processed in normal scope as well
as downward dependencies for all Ada-type source members referenced
directly by the architecture members.
- Extended
- To
process the components and members processed in normal scope as well
as downward dependencies for all source members within the normal
scope and the source to all outputs referenced. In addition, extended
scope processes any outputs referenced via LINK architecture definition
statements or parsed includes. Extended scope also includes anything
that Promote verifies that is related to the member built. For example
if the architecture definition statement LINK is used to reference
a load module, the architecture definition that created the referenced
load module is included in the extended scope.
Because SCLM uses
information from the most recent build map to determine what should
be included in extended scope, extended scope may include members
that are no longer relevant to the architecture. If you receive error
messages about members that are no longer relevant to the architecture
definition, try building in normal scope before using extended scope.
- Mode
-
- Conditional
- To
check for unacceptable translator return codes (for example, compiler
or linker return codes). Processing stops immediately if build detects
any translation errors.
SCLM saves build maps and translator output
only for translations that complete successfully. However, the translator
listings (if desired) for all components processed, and the build
report, are saved and reflect the final results of the build.
- Unconditional
- To
continue processing of all members despite translation errors of other
members.
Use this mode when you need to update complete applications
or large subapplications. You can also use this mode initially to
detect translation errors in several components.
As with the
conditional mode, BUILD will stop when verification errors occur and
not continue on to execute the BUILD translators. After a successful
verification of the members, SCLM will pass control to the BUILD translators,
regardless of the return code value from each translator. This will
provide information as to the extent of any errors that may have been
introduced by changing the members. A conditional BUILD would stop
after the first translator return code that exceeds the GOODRC value
for the related FLMTRNSL macro.
Build does not attempt a translation
unless all of its dependencies that were in scope were completed successfully.
For example, a link-edit is not attempted if the compilation of a
source member failed.
- Forced
- To force all requested
components to be translated again regardless of the previous status
of the modules.
- Report
- To
generate a complete build report without performing an actual build.
The report reflects the potential results of an unconditional build.
- Information
- With
the PTFs for APAR OA21104 applied, the information Build returns
an XML document describing the input that would have been passed to
the BUILD translators on a Forced Build. The information is returned
in the build report and contains the options passed to the translators,
along with the data set allocations made by SCLM for IOTYPE=I allocations,
which are include dependency allocations.
- Output control
- Specify the destination for messages, report, and listings when
they are executed (Ex) or submitted (Sub), by entering the corresponding
destination number: 1 for Terminal, 2 for Printer, 3 for Dataset,
or 4 for None.
When executing a build in the foreground, the build
listing is browsed if a translation error occurs; otherwise, the build
report is browsed. The translator is responsible for providing the
build listing.
Note: If no output is specified for Report, no build
user exit information is produced. That is because SCLM provides the
build user exit with information from the build report.
The
data sets that are created are not deleted. Specifying a volume that
already contains a report, message or listing data set could result
in JCL errors when the job is submitted.
- Error listings only
- The build service allows you to generate a temporary listings
file. If you do not select Error listings only, all translator listings
are copied to the temporary listings file. If you select it, only
those members receiving a translator error are copied to the temporary
listings file. An empty file indicates that no errors occurred. The
file is temporary in the sense that the contents are not under SCLM
control and may be purged by the user.
- Workstation Build
- Specify whether the build will invoke any workstation translators.
For a foreground build which invokes a workstation translator, SCLM
will verify that an ISPF workstation connection exists before executing
the build. For a batch build which invokes a workstation translator,
SCLM will verify that the information required to initiate an ISPF
workstation connection has been set by a previous build or the workstation
build pull-down. If not, SCLM will prompt the user to enter this
information before the build job is submitted. If the build does not
invoke a workstation translator, do not specify this field.
- Process
- You can call the processing part of the build utility from the
interactive or batch environment by selecting Execute or Submit, respectively.
If you request batch processing by selecting Submit, you must specify
the job statement information that is used in the JCL generated for
batch processing.
For information about using a unique jobname
on the jobcard in batch processing, see Batch Processing.
- Printer
- Specify the printer output class.
- Volume
- Specify the volume on which SCLM should save data sets.