Die Subanweisungen führen im Allgemeinen zu einer Prozedur, die alle Aktionen enthält, die notwendig sind, um das angegebene Ziel zu erstellen.
Übersicht der make-Subanweisungen
END-MAKE | Beenden der make-Subanweisungen |
MODIFY-MAKE-DEFAULTS | Festlegen globaler Parameter |
SET-DEPENDENCY | Festlegen von Abhängigkeiten zwischen Komponenten |
SET-POSTPROCESSING | Festlegen von Aktionen, die nach der Folgeverarbeitung |
SET-PREPROCESSING | Festlegen von Aktionen, die vor der Folgeverarbeitung |
SET-STD-ACTION | Festlegen von Standard-Aktionen, die aus einem Elementtyp |
Hinweis
Als make-Subanweisungen sind auch die SDF-Standardanweisungen zulässig.
END-MAKE
Beenden der make-Subanweisungen
END-MAKE kennzeichnet das Ende der make-Subanweisungen. Erst jetzt wird die eigentliche Verarbeitung durchgeführt.
END-MAKE |
Wurde bei BEGIN-MAKE für SUCCESS-PROCESSING synchrones Ausführen(*INCLUDE-PROCEDURE, *CALL-PROCEDURE) der erzeugten Prozedur angegeben, wird LMS beendet.
Anweisungs-Returncode
(SC2) | SC1 | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler | |
2 | 0 | LMS0712 | Touch nicht möglich |
2 | 0 | LMS0714 | Touch auf leere Datei nicht möglich |
2 | 0 | LMS0721 | Das angegebene Ziel ist bereits aktuell |
1 | CMD0230 | Syntaxfehler | |
32 | LMS1002 | Interner Fehler | |
64 | LMS1004 | Sonstige Fehler | |
130 | LMS0041 | Systemadressraum erschöpft |
MODIFY-MAKE-DEFAULTS
Festlegen globaler Parameter
Die globale Ablaufsteuerung für den make-Lauf von LMS erfolgt mit der MODIFY-MAKE-DEFAULTS-Anweisung. Mit MODIFY-MAKE-DEFAULTS können Werte immer wieder geändert werden. Die geänderten Werte gelten für die nachfolgenden Anweisungen.
Die MODIFY-MAKE-DEFAULTS-Operanden ...-VAR
definieren die make-S-Variablen, die vor jeder Aktion erneut gesetzt werden.
Die Deklaration der Variablen erfolgt durch LMS. Benutzerdeklarationen im Preprocessing werden nicht überschrieben.
MODIFY-MAKE-DEFAULTS | ||||||||||||||||||||||||||||
|
LIBRARY = *UNCHANGED / *NONE / <filename 1..54 without-vers> / *LINK(...)
Default-Bibliothek
Bibliothek, die bei Bibliothekselementen für *MAKE-DEFAULT eingesetzt werden soll. Initialwert ist die Bibliothek, die in der BEGIN-MAKE-Anweisung für TARGET angegeben wurde (bei einer Datei als Ziel ist der Wert *NONE).
LIBRARY = *NONE
Keine Default-Bibliothek. Verwendung der Default-Bibliothek in den weiteren Anweisungen führt zu Fehler.
LIBRARY = <filename 1..54 without-vers> Angabe einer Default-Bibliothek.
LIBRARY = *LINK(...)
Angabe einer Default-Bibliothek.
LINK-NAME = <structured-name 1..8>
Dateikettungsname der Default-Bibliothek.
CURRENT-TARGET-VAR = *UNCHANGED / *NONE / <structured-name 1..20>
S-Struktur-Variable, der das aktuelle Ziel zugewiesen wird.
CURRENT-TARGET-VAR = *NONE
Keiner S-Struktur-Variable soll das aktuelle Ziel zugewiesen werden.
CURRENT-TARGET-VAR = <structured-name 1..20>
Der angegebenen S-Struktur-Variable soll das aktuelle Ziel zugewiesen werden.
FROM-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>
S-Listen-Variable, der alle Ausgangskomponenten zum aktuellen Ziel zugewiesen werden.
FROM-OBJECTS-VAR = *NONE
Keiner S-Listen-Variable sollen die Ausgangskomponenten zugewiesen werden.
FROM-OBJECTS-VAR = <structured-name 1..20>
Der angegebene S-Listen-Variable sollen die Ausgangskomponenten zugewiesen werden.
MODIFIED-OBJECTS-VAR = *UNCHANGED / *NONE / <structured-name 1..20>
S-Listen-Variable, der neuere Ausgangskomponenten zugewiesen werden. Das sind alle Ausgangskomponenten, die neuer sind als das aktuelle Ziel bzw. alle, wenn bei BEGIN-MAKE SELECT=*ALL angegeben wurde.
MODIFIED-OBJECTS-VAR = *NONE
Keiner S-Listen-Variable sollen die neueren Komponenten zugewiesen werden.
MODIFIED-OBJECTS-VAR = <structured-name 1..20>
Der angegebenen S-Listen-Variable sollen die neueren Ausgangskomponenten zugewiesen werden.
SUPPRESS-ERRORS = *UNCHANGED / *NONE / *ALL
Default für die Fehlerunterdrückung bei Aktionen.
SUPPRESS-ERRORS = *NONE
Fehler führen zum Abbruch der erzeugten Prozedur (Spinoff).
SUPPRESS-ERRORS = *ALL
Fehler im Ablauf der Aktion werden unterdrückt, führen also nicht zum Abbruch der erzeugten Prozedur. Bei Listen von Aktionen erfolgt die Fehlerunterdrückung nur am Ende. Die Prozedur wird nach der/den Aktion(en) zu dieser Abhängigkeit fortgesetzt.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Beispiel
Für den weiteren make-Lauf sollen die make-S-Variablen sowie die Standardbibliothek neu definiert werden. Die Variable CURT soll jeweils das bearbeitete Ziel, ALLOBJ alle Ausgangskomponenten enthalten.
//MODIFY-MAKE-DEFAULTS LIBRARY =BSPLIB,-
CURRENT-TARGET-VAR=CURT,FROM-OBJECTS-VAR=ALLOBJ
SET-DEPENDENCY
Festlegen von Abhängigkeiten zwischen Komponenten
Die Festlegung der Abhängigkeiten zwischen Objekten erfolgt mit der SET-DEPENDENCY-Anweisung.
SET-DEPENDENCY | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
TARGET-OBJECT = *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) / <filename 1..54 without-vers with-wild(80)>
Zielkomponente.
Ziel der Abhängigkeitsdefinition. Wildcards sind korrespondierend zu den Angaben im FROM-OBJECT-Operanden (siehe auch "Auswahl- und Konstruktionsangabe bei make", Auswahlangabe bei make).
TARGET-OBJECT = *VARIABLE (...)
Die Zielobjekte befinden sich in einer S-Listen-Variablen.
Die einzelnen Listenelemente müssen im Format von LMS vorliegen. Die Version*HIGHEST-EXISTING wird durch *HIGH-EXIST dargestellt.
VARIABLE-NAME = <composed-name 1..255> Name der S-Listen-Variable.
TARGET-OBJECT = list-poss(2000): *LIBRARY-ELEMENT(...)
Die Zielkomponente ist ein Bibliothekselement. Sie muss explizit eingegeben werden.
LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...) Bibliothek des Zielelements.
LIBRARY = *MAKE-DEFAULT
Die durch die make-Subanweisung MODIFY-MAKE-DEFAULTS voreingestellte Bibliothek.
LIBRARY = <filename 1..54 without-vers>
Bibliothek des Zielelements.
LIBRARY = *LINK(...)
Bibliothek des Zielelements.
LINK-NAME = <structured-name 1..8>
Linkname der Bibliothek des Zielelements.
ELEMENT = <composed-name 1..64 with-under with-wild(132)>(...)
Name des Zielelements (Wildcards: siehe "Auswahl- und Konstruktionsangabe bei make", Auswahlangabe bei make).
VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-under>
Version des Zielelements.
VERSION = *HIGHEST-EXISTING
Es wird die höchste existierende Version überschrieben. Existiert keine, wird eine Defaultversion analog LMS erzeugt.
VERSION = *UPPER-LIMIT
Es wird die höchstmögliche Version X’FF’ erzeugt.
VERSION = <composed-name 1..24 with-under>
Der hier angegebene Text wird als Versionsbezeichnung interpretiert.
BASE = *STD / <composed-name 1..24 with-under with-wild>
Legt die Basis des Zielelements fest.
TYPE = <alphanum-name 1..8 with-wild(20)>
Typ, den das Zielelement besitzt.
TARGET-OBJECT = <filename 1..54 without-vers with-wild(80)>
Ziel der Abhängigkeitsdefinition (Wildcards: siehe "Auswahl- und Konstruktionsangabe bei make", Auswahlangabe bei make).
FROM-OBJECT = *NONE / *VARIABLE(...) / list-poss(2000): *LIBRARY-ELEMENT(...) /<filename 1..54 without-vers with-wild-constr>
Ausgangskomponente der Abhängigkeitsdefinition. Die Wildcards sind korrespondierend zu den Angaben im TARGET-OBJECT-Operanden (Wildcards: siehe "Auswahl- und Konstruktionsangabe bei make", Konstruktionsangabe bei make).
FROM-OBJECT = *NONE
Es werden keine Komponenten vorausgesetzt. Die Zielkomponente ist nie aktuell.
FROM-OBJECT = *VARIABLE (...)
Die vorausgesetzten Ausgangsobjekte befinden sich in einer S-Listen-Variablen. Die einzelnen Listenelemente müssen im Format von LMS vorliegen. Die Version *HIGHEST-EXISTING wird durch *HIGH-EXIST dargestellt.
NAME = <composed-name 1..255>
Name der S-Listen-Variable.
FROM-OBJECT = list-poss(2000): *LIBRARY-ELEMENT(...)
Die Ausgangskomponenten sind Bibliothekselemente.
LIBRARY = *MAKE-DEFAULT / <filename 1..54 without-vers> / *LINK(...)
Bibliothek des Ausgangselements.
LIBRARY = *MAKE-DEFAULT
Die durch die make-Subanweisung MODIFY-MAKE-DEFAULTS voreingestellte Bibliothek.
LIBRARY = <filename 1..54 without-vers> Bibliothek des Ausgangselements.
LIBRARY = *LINK(...)
Bibliothek des Ausgangselements.
LINK-NAME = <structured-name 1..8>
Linkname der Bibliothek des Ausgangselements.
ELEMENT = <composed-name 1..132 with-under with-wild-constr>(...)
Name des Ausgangselements (Wildcards: siehe "Auswahl- und Konstruktionsangabe bei make", Konstruktionsangabe bei make).
VERSION = *HIGHEST-EXISTING / *UPPER-LIMIT / <composed-name 1..24 with-under>
Version des Ausgangselements.
VERSION = *HIGHEST-EXISTING
Es wird die höchste existierende Version ausgewählt.
VERSION = *UPPER-LIMIT
Es wird die höchstmögliche Version X’FF’ ausgewählt.
VERSION = <composed-name 1..24 with-under>
Der hier angegebene Text wird als Versionsbezeichnung interpretiert.
BASE = *STD / <composed-name 1..24 with-under with-wild> Legt die Basis des Ausgangselements fest.
TYPE = <alphanum-name 1..20 with-wild-constr> Typ, den das Ausgangselement besitzt.
FROM-OBJECT = <filename 1..54 without-vers with-wild-constr>
Ausgangskomponente der Abhängigkeitsdefinition (Wildcards: siehe "Auswahl- und Konstruktionsangabe bei make", KKonstruktionsangabe bei make).
ACTION = *STD / list-poss(2000): <c-string 1..1800 with-low>
Aktion, die ausgeführt wird, um die Zielkomponente zu erzeugen.
ACTION = *STD
Die bei der make-Subanweisung SET-STD-ACTION für die Kombination aus Ausgangs- und Zieltyp spezifizierte Aktion wird ausgeführt. Sind für TARGET-OBJECT oder FROM-OBJECT Listen angegeben, wird jeweils der Typ des ersten Listenelements zur Bestimmung der Standard-Aktion herangezogen. Für Dateien können keine Standard-Aktionen spezifiziert werden.
ACTION = list-poss(2000): <c-string 1..1800 with-low>
Eine oder mehrere Aktionen, die zur Erzeugung der Zielkomponenten aus den Ausgangskomponenten dienen. Jede einzelne Aktion wird eine eigene Zeile in der durch BEGIN-MAKE erzeugten Prozedur.
SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL
Fehlerunterdrückung bei Aktionen.
SUPPRESS-ERRORS = *MAKE-DEFAULT
Die durch MODIFY-MAKE-DEFAULTS voreingestellte Fehlerunterdrückung.
SUPPRESS-ERRORS = *NONE
Fehler führen zum Abbruch der erzeugten Prozedur (Spinoff).
SUPPRESS-ERRORS = *ALL
Fehler im Ablauf der Aktion werden unterdrückt, führen also nicht zum Abbruch der erzeugten Prozedur. Bei Listen von Aktionen erfolgt die Fehlerunterdrückung nur am Ende. Die Prozedur wird nach der/den Aktion(en) zu dieser Abhängigkeit fortgesetzt.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Hinweise
Das erste Ziel der ersten Abhängigkeitsdefinition kann in BEGIN-MAKE unter dem Namen *FIRST-TARGET als Gesamtziel des make-Laufs bestimmt werden (Voreinstellung).
Am Ende der Aktion sollte kein Programm geladen sein.
Beispiel
Die Phase PROG in der Standardbibliothek besteht aus den Bindemoduln TEIL1 und TEIL2. PROG wird mit Hilfe der Prozedur *LIB(BSPLIB,LINK) erzeugt. Weiterhin sind die Bindemodule (Elementtyp R) aus gleichnamigen Sourcen (Typ S) mit Hilfe der Prozedur *LIB(BSPLIB,COMPILE) erzeugt. Die Auswahlangabe *LIB(,*,R) wirkt auf die im Programmsystem vorhandenen Elemente vom Typ R, also TEIL1 und TEIL2. Die Module sollen aus gleichnamigen Sourcen erzeugt werden. Die Variable ALLOBJ enthalte alle Ausgangskomponenten, die Variable CURT (für current target) das jeweils bearbeitete Ziel.
//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 einer dem UNIX-make ähnlichen, abgekürzten Schreibweise:
//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
Festlegen von Aktionen, die nach der Folgeverarbeitung laufen
Die Aktionen, die die erzeugte Prozedur abschließen, werden mit der Anweisung SET-POSTPROCESSING spezifiziert. Die Anweisung SET-POSTPROCESSING darf nur einmal angegeben werden.
SET-POSTPROCESSING |
ACTION = list-poss(2000): <c-string 1..1800 with-low> |
ACTION = list-poss(2000): <c-string 1..1800 with-low>
Die angegebenen Aktionen werden als letzte in die zu erzeugende Prozedur geschrieben.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Hinweis
Die Aktion wird nicht ausgeführt, wenn das Ziel des make-Laufs aktuell ist.
Beispiel
In der erzeugten Prozedur soll am Ende das Kommando /CALL-PROCEDURE *LIB(BSPLIB,STOP) ausgeführt werden.
//SET-POSTPROCESSING ACTION='/CALL-PROCEDURE *LIB(BSPLIB,STOP)'
SET-PREPROCESSING
Festlegen von Aktionen, die vor der Folgeverarbeitung laufen
Die Aktionen, die am Anfang der erzeugten Prozedur stehen sollen, werden mit der Anweisung SET-PREPROCESSING spezifiziert. Die Anweisung SET-PREPROCESSING darf nur einmal angegeben werden.
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>
Die angegebenen Aktionen werden als erste in die zu erzeugende Prozedur eingebracht.
SUPPRESS-ERRORS = *MAKE-DEFAULT / *NONE / *ALL
Default für die Fehlerunterdrückung bei Aktionen.
SUPPRESS-ERRORS = *MAKE-DEFAULT
Die durch MODIFY-MAKE-DEFAULTS eingestellte Fehlerunterdrückung.
SUPPRESS-ERRORS = *NONE
Fehler führen zum Abbruch der erzeugten Prozedur (Spinoff).
SUPPRESS-ERRORS = *ALL
Fehler im Ablauf der Aktion werden unterdrückt, führen also nicht zum Abbruch der erzeugten Prozedur. Bei Listen von Aktionen erfolgt die Fehlerunterdrückung nur am Ende. Die Prozedur wird nach der/den Aktion(en) zu dieser Abhängigkeit fortgesetzt.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Hinweis
Die Aktion wird nicht ausgeführt, wenn das Ziel des make-Laufs aktuell ist.
Beispiel
In der Prozedur soll am Anfang das Kommando /CALL-PROCEDURE *LIB(BSPLIB,INIT) ausgeführt werden.
//SET-PREPROCESSING ACTION='/CALL-PROCEDURE *LIB(BSPLIB,INIT)'
SET-STD-ACTION
Festlegen von Standard-Aktionen
In der Anweisung SET-STD-ACTION können Standard-Aktionen angegeben werden, mit denen aus Ausgangskomponenten eines bestimmten Typs Zielkomponenten eines anderen Typs erzeugt werden können. Auf diese Standard-Aktionen kann in der SET-DEPENDENCY-Anweisung Bezug genommen werden.
Die Anweisung SET-STD-ACTION kann nur für Abhängigkeiten zwischen Bibliothekselementen wirken und darf pro Kombination von Ausgangs- und Ziel-Typ nur einmal angegeben werden. Dateien können keine Standard-Aktionen zugewiesen werden, da sie keine Typen haben.
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>
Element-Typ der Zielkomponente.
FROM-TYPE = <alphanum-name 1..8>
Element-Typ der Ausgangskomponente.
ACTION = list-poss(2000): <c-string 1..1800 with-low>
Standard-Aktion zur Erzeugung von Komponenten des Ziel-Typs aus Komponenten des Ausgangs-Typs.
Anweisungs-Returncode
(SC2) | Maincode | Bedeutung |
0 | CMD0001 | Ohne Fehler |
Hinweis
Am Ende der Aktion sollte kein Programm geladen sein.
Beispiel
In der SET-DEPENDENCY-Anweisung ohne explizite Aktion sollen Elemente vom Elementtyp S mit Hilfe der spezifizierten Standard-Aktionen Typ-R-Elemente erzeugen.
//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 einer dem UNIX-make ähnlichen, abgekürzten Schreibweise (//SET-STD-ACTION entspricht der Verwendung der .Suffixes des UNIX-make:
//SET-STD-ACTION R,S,- // '/CALL-PROCEDURE *LIB(BSPLIB,COMPILE),(&&(CURT.ELEM))' //SET-DEPENDENCY *LIB(,*,R), *LIB(,*,S)