Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

make substatements

Generally, the make substatements result in a procedure containing all the actions required for the generation of the specified target.

Overview of make substatements

END-MAKE

Concludes the make substatements

MODIFY-MAKE-DEFAULTS

Specifies global parameters

SET-DEPENDENCY

Specifies dependencies between components

SET-POSTPROCESSING

Specifies actions to be performed before the generated
procedure is executed

SET-PREPROCESSING

Specifies actions to be performed after the generated
procedure is executed

SET-STD-ACTION

Specifies standard actions which process one member
type to generate a different one

Note

Standard SDF statements may also be used as make substatements.

END-MAKE

END-MAKE signifies the end of the sequence of make substatements. The procedure generated by the make substatements is not actually processed until after the END-MAKE statement occurs.

END-MAKE


If, in BEGIN-MAKE, synchronous execution of the generated procedure was specified for SUCCESS-PROCESSING (*INCLUDE-PROCEDURE, *CALL-PROCEDURE), LMS is terminated.

Statement return code

(SC2)

SC1

Maincode

Meaning


0

CMD0001

No error

2

0

LMS0712

Touch not possibleTouch not possible on empty file

2

0

LMS0714

Touch not possible on empty file

2

0

LMS0721

The specified target is already current


1

CMD0230

Syntax error


32

LMS1002

Internal error


64

LMS1004

Other error


130

LMS0041

System address space exhausted

MODIFY-MAKE-DEFAULTS

The MODIFY-MAKE-DEFAULTS statement is used for global control of the make run. Values can be changed again and again with MODIFY-MAKE-DEFAULTS. The modified values are valid for the subsequent statements.

The MODIFY-MAKE-DEFAULTS operands ...-VAR define the make S variables, which are set anew before each action.

The variables are declared through LMS. User declarations in the preprocessing section are not overwritten.

MODIFY-MAKE-DEFAULTS

LIBRARY = *UNCHANGED / *NONE / <filename 1..54 without-vers> / *LINK(...)


*LINK(...)



|

LINK-NAME = <structured-name 1..8>

,CURRENT-TARGET-VAR = *UNCHANGED / *NONE / <structured-name 1..20>

,FROM-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>

,MODIFIED-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>

,SUPPRESS-ERRORS = *UNCHANGED / *NONE / *ALL

LIBRARY = *UNCHANGED / *NONE / <filename 1..54 without-vers> / *LINK(...)
Default library.
Library which is to be used for *MAKE-DEFAULT for library members. The initial value is the library that was specified for TARGET in the BEGIN-MAKE statement (when the target is a file, the value is *NONE).

LIBRARY = *NONE
No default library. Use of the default library in subsequent statements results in errors.

LIBRARY = <filename 1..54 without-vers>
Specification of a default library.

LIBRARY = *LINK(...)
Specification of a default library.

LINK-NAME = <structured-name 1..8>
Link name of the default library.

CURRENT-TARGET-VAR = *UNCHANGED / *NONE / <structured-name 1..20>

S structure variable to which the current target is assigned.

CURRENT-TARGET-VAR = *NONE
The current target is not to be assigned to an S structure variable.

CURRENT-TARGET-VAR = <structured-name 1..20>
The current target is to be assigned to the specified S structure variable.

FROM-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>
S list variable to which all the source components for the current target are assigned.

FROM-OBJECTS-VAR = *NONE
The source components are not to be assigned to an S list variable.

FROM-OBJECTS-VAR = <structured-name 1..20>
The source components are to be assigned to the specified S list variable.

MODIFIED-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>
S list variable to which newer source components are assigned. These are all of the source components which are newer than the current target or all of the components if BEGIN-MAKE SELECT=*ALL was specified.

MODIFIED-OBJECTS-VAR = *NONE
The newer components are not to be assigned to an S list variable.

MODIFIED-OBJECTS-VAR = <structured-name 1..20>
The newer source components are to be assigned to the specified S list variable.

SUPPRESS-ERRORS = *UNCHANGED / *NONE / *ALL
Default for error suppression during actions.

SUPPRESS-ERRORS = *NONE
Errors result in the generated procedure being aborted (spin-off).

SUPPRESS-ERRORS = *ALL
Errors occurring during the action are suppressed, i.e. do not result in the generated procedure being aborted. In the case of lists of actions, errors are suppressed only at the end. The procedure resumes after the action(s) related to that dependency.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Example

The make S variables and the standard library are to be redefined for the rest of the make run. The variable CURT is in each case to contain the target processed, and the variable ALLOBJ all of the source components.

//MODIFY-MAKE-DEFAULTS LIBRARY =BSPLIB,-

  CURRENT-TARGET-VAR=CURT,FROM-OBJECTS-VAR=ALLOBJ

SET-DEPENDENCY

The SET-DEPENDENCY statement is used to define the dependencies between objects.

SET-DEPENDENCY

TARGET-OBJECT = *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) /









<filename 1..54 without-vers with-wild(80)>


*VARIABLE(...)



|

VARIABLE-NAME = <composed-name 1..255>


*LIBRARY-ELEMENT(...)



|

LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...)



|


*LINK(...)



|



|

LINK-NAME = <structured-name 1..8>



|

,ELEMENT = <composed-name 1..64 with-under with-wild(132)>(...)



|


<composed-name 1..64 with-under with-wild(132)>(...)



|



|

VERSION = *HIGHEST -EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-under>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|

,TYPE = <alphanum-name 1..8 with-wild(20)>

,FROM-OBJECT = *NONE / *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) /








<filename 1..54 without-vers with-wild-constr>


*VARIABLE(...)



|

NAME = <composed-name 1..255>


*LIBRARY-ELEMENT(...)



|

LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...)



|


*LINK(...)



|



|

LINK-NAME = <structured-name 1..8>



|

,ELEMENT = <composed-name 1..132 with-under with-wild-constr>(...)



|


<composed-name 1..132 with-under with-wildcard-constr>(...)



|



|

VERSION = *HIGHEST -EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-under>



|



|

,BASE = *STD / <composed-name 1..24 with-under with-wild>



|

,TYPE = <alphanum-name 1..20 with-wild-constr>

,ACTION = *STD / list-poss(2000): <c-string 1..1800 with-low>

,SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL

TARGET-OBJECT = *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) / <filename 1..54 without-vers with-wild(80)>
Target component.
Target of the dependency definition. Wildcards are corresponding to the specifications for the FROM-OBJECT operand (see also "Selection and construction specifications in make", “Selection specifications in make”).

TARGET-OBJECT = *VARIABLE (...)
The target objects are listed in an S list variable.
The individual list members must be available in the format of LMS. The version *HIGHEST-EXISTING is represented by *HIGH-EXIST.

VARIABLE-NAME = <composed-name 1..255>
Name of the S list variable.

TARGET-OBJECT = list-poss(2000): *LIBRARY-ELEMENT(...)
The target component is a library member and must be entered explicitly.

LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...)Library of the target member.

LIBRARY = *MAKE-DEFAULT
The library defined as the default by means of the make substatement MODIFY-MAKE-DEFAULTS.

LIBRARY = <filename 1..54 without-vers>
Library of the target member.

LIBRARY = *LINK(...)
Library of the target member.

LINK-NAME = <structured-name 1..8>
Link name of the library of the target member.

ELEMENT = <composed-name 1..64 with-under with-wild(132)>(...)
Name of the target member (for wildcards, see "Selection and construction specifications in make", “Selection specifications in make”).

VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT /
<composed-name 1..24 with-under>
Version of the target member.

VERSION = *HIGHEST-EXISTING
The highest existing version is overwritten. If no such version exists, LMS generates an analogous default version.

VERSION = *UPPER-LIMIT
The highest possible version X’FF’ is generated.

VERSION = <composed-name 1..24 with-under>
The text specified here is interpreted as the version designation.

BASE = *STD / <composed-name 1..24 with-under with-wild>

Defines the base for the target member.

TYPE = <alphanum-name 1..8 with-wild(20)>
Type of the target member.

TARGET-OBJECT = <filename 1..54 without-vers with-wild(80)>
Target of the dependency definition (for wildcards, see "Selection and construction specifications in make", “Selection specifications in make”).

FROM-OBJECT = *NONE / *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) /<filename 1..54 without-vers with-wild-constr>
Source component of the dependency definition. The wildcards are corresponding to the specifications for the TARGET-OBJECT operand (for wildcards, see "Selection and construction specifications in make", “Construction specifications in make”).

FROM-OBJECT = *NONE
There are no source components. The target component is never current.

FROM-OBJECT = *VARIABLE (...)
The required source objects are listed in an S list variable. The individual list members must be available in the LMS format. The version *HIGHEST-EXISTING is represented by *HIGH-EXIST.

NAME = <composed-name 1..255>
Name of the S list variable.

FROM-OBJECT = list-poss(2000): *LIBRARY-ELEMENT(...)
The source components are library members.

LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...)Library of the source member.

LIBRARY = *MAKE-DEFAULT
The library defined as the default by means of the make substatement MODIFY-MAKE-DEFAULTS.

LIBRARY = <filename 1..54 without-vers>
Library of the source member.

LIBRARY = *LINK(...)
Library of the source member.

LINK-NAME = <structured-name 1..8>
Link name of the library of the source member.

ELEMENT = <composed-name 1..132 with-under with-wild-constr>(...)
Name of the source member ((for wildcards, see "Selection and construction specifications in make", “Construction specifications in make”).

VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-under>

Version of the source member.

VERSION = *HIGHEST-EXISTING
The highest existing version is selected.

VERSION = *UPPER-LIMIT
The highest possible version X’FF’ is selected.

VERSION = <composed-name 1..24 with-under>
The text specified here is interpreted as the version designation.

BASE = *STD / <composed-name 1..24 with-under with-wild>
Defines the base for the source member.

TYPE = <alphanum-name 1..20 with-wild-constr>
Type of the source member.

FROM-OBJECT = list-poss(2000): <filename 1..54 without-vers with-wild-constr> Source component of the dependency definition (for wildcards, see "Selection and construction specifications in make", “Construction specifications in make”).

ACTION = *STD / list-poss(2000): <c-string 1..1800 with-low>
Action performed in order to generate the target component.

ACTION = *STD
Executes the action specified in the make substatement SET-STD-ACTION for the combination of the source and the target types. If lists are specified for TARGET-OBJECT or FROM-OBJECT, the type of the first member in the list is taken in each case to determine the standard action. No standard actions can be specified for files.

ACTION = list-poss(2000): <c-string 1..1800 with-low>
One or more actions that generate the target components from the source components. Each action has its own line in the procedure generated by BEGIN-MAKE.

SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL
Suppression of errors occurring during the execution of actions.

SUPPRESS-ERRORS = *MAKE-DEFAULT
The default for error suppression set by means of MODIFY-MAKE-DEFAULTS.

SUPPRESS-ERRORS = *NONE
Errors result in the generated procedure being aborted (spin-off).

SUPPRESS-ERRORS = *ALL

Errors occurring during execution of the action are suppressed, i.e. do not result in the generated procedure being aborted. In the case of lists of actions, errors are suppressed only at the end. The procedure resumes after the action(s) related to that dependency.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Notes

  • The first target of the first dependency definition can be specified as the overall target of the make run (presetting) under the name *FIRST-TARGET in the BEGIN-MAKE statement.

  • At the end of the action, no program is to be loaded.

Example

The phase (load module) PROG in the standard library consists of the object modules PART1 and PART2. PROG is generated using the procedure *LIB(BSPLIB,LINK). The object modules (member type R) are also generated from sources of the same names (type S) using the procedure *LIB(BSPLIB,COMPILE). The selection specification in make
*LIB(,*,R) acts on the type-R members present in the program system, i.e. PART1 and PART2. The modules are to be generated from sources of the same names. The variable ALLOBJ contains all of the source components, and the variable CURT (short for “current target”) in each case the target produced.

//SET-DEPENDENCY TARGET-OBJECT=PROG, -
//   FROM-OBJECT=(*LIB(,TEIL1,R),*LIB(,TEIL2,R)), -
//   ACTION='/CALL-PROCEDURE *LIB(BSPLIB,LINK),(OBJVAR=ALLOBJ)'
//SET-DEPENDENCY -
//   TARGET-OBJECT=*LIB(,*,R),- 
//   FROM-OBJECT=(*LIB(,*,S),*LIB(,GLOBALDATA,M),*LIB(,HEADERS,M)),//
   ACTION='/CALL-PROCEDURE *LIB(BSPLIB,COMPILE),(&&(CURT.ELEM))' 

In abbreviated form similar to the UNIX make:

//SET-DEPENDENCY PROG, (*LIB(,TEIL1,R),*LIB(,TEIL2,R)), -
//    ́/CALL-PROCEDURE *LIB(BSPLIB,LINK),(OBJVAR=ALLOBJ) ́
//SET-DEPENDENCY *LIB(,*,R), *LIB(,*,S),//
    ́/CALL-PROCEDURE *LIB(BSPLIB,COMPILE),(&&(CURT.ELEM)) ́ 

SET-POSTPROCESSING

The SET-POSTPROCESSING statement is used to specify the actions that conclude the generated procedure. The SET-POSTPROCESSING statement must occur only once in any sequence of make statements.

SET-POSTPROCESSING

ACTION = list-poss(2000): <c-string 1..1800 with-low>

ACTION = list-poss(2000): <c-string 1..1800 with-low>
The specified actions are incorporated as the final actions in the generated procedure.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Note

The actions are not executed if the target of the make run is current.

Example

The command /CALL-PROCEDURE *LIB(BSPLIB,STOP) is to be executed at the end of the generated procedure.

//SET-POSTPROCESSING ACTION='/CALL-PROCEDURE *LIB(BSPLIB,STOP)'

SET-PREPROCESSING

The SET-PREPROCESSING statement is used to specify the actions that are to be executed at the beginning of the generated procedure. The SET-PREPROCESSING statement must occur only once in any sequence of make statements.

SET-PREPROCESSING

ACTION = list-poss(2000): <c-string 1..1800 with-low>

SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL

ACTION = list-poss(2000): <c-string 1..1800 with-low>
The specified actions are incorporated as the first actions in the generated procedure.

SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL
Default for error suppression during actions.

SUPPRESS-ERRORS = *MAKE-DEFAULT
The default for error suppression set by means of MODIFY-MAKE-DEFAULTS.

SUPPRESS-ERRORS = *NONE
Errors result in the generated procedure being aborted (spin-off).

SUPPRESS-ERRORS = *ALL
Errors occurring during execution of the action are suppressed, i.e. do not result in the generated procedure being aborted. In the case of lists of actions, errors are suppressed only at the end. The procedure resumes after the action(s) related to that dependency.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Note

The actions are not executed if the target of the make run is current.

Example

The command /CALL-PROCEDURE *LIB(BSPLIB,INIT) is to be executed at the beginning of the generated procedure.

//SET-PREPROCESSING ACTION='/CALL-PROCEDURE *LIB(BSPLIB,INIT)'

SET-STD-ACTION

The SET-STD-ACTION statement is used to specify standard actions which process source components of one type to generate a target components of another type. These standard actions can then be referenced in the SET-DEPENDENCY statement.

The SET-STD-ACTION statement has effect only for dependencies between library members and must be specified only once for each combination of source type and target type. Files cannot be assigned to standard actions because they have no type.

SET-STD-ACTION

TARGET-TYPE = <alphanum-name 1..8>

,FROM-TYPE = <alphanum-name 1..8>

,ACTION = list-poss(2000): <c-string 1..1800 with-low>

TARGET-TYPE = <alphanum-name 1..8>
Type of the target component.

FROM-TYPE = <alphanum-name 1..8>
Type of the source component.

ACTION = list-poss(2000): <c-string 1..1800 with-low>
Standard action for generating components of the target type from components of the source type.

Statement return code

(SC2)        SC1

Maincode

Meaning

0
1

CMD0001
CMD0230

No error
Syntax error

Note

No program should be loaded at the end of the action.

Example

A SET-DEPENDENCY statement with no explicit action is to process type-S members to generate type-R members with the aid of the specified standard actions.

//SET-STD-ACTION -
//   TARGET-TYPE=R,FROM-TYPE=S,//
   ACTION='/CALL-PROCEDURE *LIB(BSPLIB,COMPILE,(&&(CURT.ELEM))'
//SET-DEPENDENCY -
//   TARGET-OBJECT=*LIB(,*,R),FROM-OBJECT=*LIB(,*,S) 

In abbreviated form similar to the UNIX make (//SET-STD-ACTION is equivalent to using the suffixes of the UNIX make):

//SET-STD-ACTION R,S,//
   '/CALL-PROCEDURE *LIB(BSPLIB,COMPILE),(&&(CURT.ELEM))'
//SET-DEPENDENCY *LIB(,*,R), *LIB(,*,S)