z/OS ISPF Software Configuration and Library Manager Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Modifying example language definitions

z/OS ISPF Software Configuration and Library Manager Guide and Reference
SC19-3625-00

Use the following macros to modify language definitions for specific project requirements.

Table 1. SCLM Macros for Language Definition
Macro Purpose
FLMSYSLB Use this macro to define data sets that contain system, project, or language dependencies that are referenced by SCLM members but are not in the SCLM hierarchy themselves. Examples are system macros for Assembler programs and compiler-supplied include files for C programs.
FLMLANGL Use this macro to define the language to SCLM.
FLMINCLS Use this macro to associate sets of includes found during the parse of a member with the types in the project definition that contain those includes. FLMALLOC macros then reference this macro to allocate the include libraries for build translators. The FLMINCLS macro can be used multiple times for each language, but each FLMINCLS macro must have a unique name within the language and be associated with at least one FLMALLOC macro. This helps ensure that the includes that are found by build are the same ones found by the translators.
FLMLRBLD Use this macro to tell SCLM to automatically rebuild members with this language after they are promoted into the listed groups.
FLMTRNSL Use this macro to define a translator for a language. It can be used multiple times for a language.
FLMTOPTS Use this macro to vary the options passed to a build translator based on the group where the build is taking place. Options can be appended to the existing options or replace the options completely.

FLMTOPTS macros must follow an FLMTRNSL macro with FUNCTN=BUILD.

FLMTCOND Use this macro to specify conditional execution of a BUILD translator. Part of the specification can include examination of return codes from previous BUILD translators in the language definition.
FLMALLOC Use this macro for each data set allocation required by a translator. If you are using a ddname substitution list, specify an FLMALLOC macro for each ddname in the correct order. If not, determine the ddnames that are needed by the translator and specify an FLMALLOC macro for each ddname.
FLMCPYLB Use this macro to identify data sets to be concatenated to a ddname. The data sets must be preallocated. The FLMCPYLB data sets are used as input to the Parse and other translators.
For each language, take the following actions as necessary:
  • Specify data sets containing dependencies that are not to be tracked, such as assembler system macros (macro FLMSYSLB).
  • Specify the maximum number of includes, change codes, user data records, compilation units, and external dependencies expected in a source member (macro FLMLANGL; keyword BUFSIZE).
  • Determine if ddname substitution is needed for the translator. This information can be found in the translator documentation. Adjust the PORDER parameter on the FLMTRNSL macro as needed.
  • Verify translator load module names and load data sets for accuracy (macro FLMTRNSL; keywords COMPILE, DSNAME, and TASKLIB).
  • Adjust translator return codes to project requirements if nonzero return codes are acceptable (macro FLMTRNSL; keyword GOODRC).
  • Update default translator options (macro FLMTRNSL; keyword OPTIONS).
  • Verify translator version information (macro FLMTRNSL; keyword VERSION).
  • Specify output listings (macro FLMALLOC; keyword PRINT).
  • Specify output default types (macro FLMALLOC; keyword DFLTTYP) to match the FLMTYPE type specified in the project definition.
  • Verify that system libraries are being allocated for build translators. Either specify ALCSYSLB=Y on the FLMLANGL macro or ensure that the data sets from FLMSYSLB macros are specified on FLMCPYLB macros following IOTYPE=I allocations.
  • Specify the include sets for the language to use. You must specify all the include-sets returned by the parser for the language. If you add a new FLMINCLS macro, ensure that it is referenced by at least one FLMALLOC of a build translator. If you remove an FLMINCLS macro, update any FLMALLOC macros that reference it, ensuring that no member's accounting data contains references to that include set.

Figure 1 shows an example of an Enterprise COBOL language definition.

Figure 1. Enterprise COBOL Language Definition Example (Part 1 of 2)
********************************************************************
*                                                                  *
*            Enterprise COBOL LANGUAGE DEFINITION FOR SCLM         *
********************************************************************
*
         FLMLANGL    LANG=COBE                                         C
               LANGDESC='ENTERPRISE COBOL',                            C


********************************************************************
*         --PARSER TRANSLATOR--                                    *
********************************************************************
*
          FLMTRNSL   CALLNAM='SCLM COBOL PARSE',                       C
               FUNCTN=PARSE,                                           C
               COMPILE=FLMLPCBL,                                       C
               PORDER=1,                                               C
               CALLMETH=LINK,                                          C
               OPTIONS=(@@FLMLIS,@@FLMSTP,@@FLMSIZ,)
*          (* SOURCE      *)
           FLMALLOC  IOTYPE=A,DDNAME=SOURCE
            FLMCPYLB @@FLMDSN(@@FLMMBR)
*
*********************************************************************
*         --ENTERPRISE COBOL INTERFACE--                            *
*********************************************************************
*
          FLMTRNSL   CALLNAM='ENTERPRISE COBOL COMPILER',              C
               FUNCTN=BUILD,                                           C
               COMPILE=IGYCRCTL,                                       C
               DSNAME=IGY,SIGYCOMP,                                    C
               VERSION=3.1,                                            C
               GOODRC=0,                                               C
               PORDER=1,                                               C
               OPTIONS=(XREF,LIB,APOST,NODYNAM,LIST,NONUMBER,NOSEQ)
*
*********************************************************************
*         --DDNAME ALLOCATION--                                     *
*********************************************************************
*
 FLMALLOC  IOTYPE=O,DDNAME=SYSLIN,KEYREF=OBJ,                          C
     RECNUM=5000,DFLTTYP=OBJ
*
 FLMALLOC  IOTYPE=I,DDNAME=SYSLIB,KEYREF=SINC
*
 FLMALLOC  IOTYPE=S,DDNAME=SYSIN,KEYREF=SINC,RECNUM=2000
*
 FLMALLOC  IOTYPE=W,DDNAME=SYSUT1,RECNUM=5000
*
 FLMALLOC  IOTYPE=W,DDNAME=SYSUT2,RECNUM=5000
*
 FLMALLOC  IOTYPE=W,DDNAME=SYSUT3,RECNUM=5000
*
 FLMALLOC  IOTYPE=W,DDNAME=SYSUT4,RECNUM=5000
*
 FLMALLOC  IOTYPE=A,DDNAME=SYSUT5,RECNUM=5000
*
 FLMALLOC  IOTYPE=A,DDNAME=SYSUT6,RECNUM=5000
*
 FLMALLOC  IOTYPE=A,DDNAME=SYSUT7,RECNUM=5000
 
Figure 2. Enterprise COBOL Language Definition Example (Part 2 of 2)
*
 FLMALLOC  IOTYPE=A,DDNAME=SYSTERM
  FLMCPYLB NULLFILE
*
 FLMALLOC  IOTYPE=A,DDNAME=SYSPUNCH
  FLMCPYLB NULLFILE
*
 FLMALLOC  IOTYPE=O,DDNAME=SYSPRINT,KEYREF=LIST,                       C
     RECFM=FBA,LREC=133,                                               C
     RECNUM=50000,PRINT=Y,DFLTTYP=LIST
In the example in Figure 1, the COBOL language is defined to SCLM by the FLMLANGL macro. The FLMTRNSL parameters specify particular information about the compiler:
  • The name of the compiler: ENTERPRISE COBOL.
  • The name of the compiler load module: IGYCRCTL.
  • The version of the compiler: 3.3.1.
  • The compiler options: XREF, LIB, APOST, NODYNAM, LIST, NONUMBER, NOSEQ.
The FLMALLOC macros following the build FLMTRNSL macro specify each ddname needed by the COBOL compiler. SCLM allocates the ddnames specified on the FLMALLOC macro before invoking the translator (in this example, the COBOL IKFCBL00 load module). The FLMALLOC parameters allow specification of the record format (RECFM), the logical record length (LRECL), the number of records (RECNUM), and other options. An FLMCPYLB macro specifies that a ddname be associated with a null data set.

The language definitions must be defined to the project definition, either by placing the language definitions directly into the project definition or having the language definitions copied into the project definition when the project definition is assembled. It is easier to maintain the project definition if each language definition is kept in a separate member and copied into the project definition when the project definition is assembled. The example project definition Figure 1 uses this method of including the language definitions.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014