Es werden eines oder mehrere Quellprogramme übersetzt und es wird pro Übersetzungseinheit ein Modul generiert.
COMPILE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
SOURCE =
Mit dieser Option werden eines oder mehrere Quellprogramme angegeben, die übersetzt werden sollen.
Ein Quellprogramm kann von der Systemdatei SYSDTA, aus einer katalogisierten BS2000-Datei, aus einer PLAM-Bibliothek oder aus einer POSIX-Datei eingelesen werden.
Bei der Quellprogrammeingabe von SYSDTA kann pro COMPILE-Anweisung nur ein Quellprogramm eingelesen werden.
SOURCE = *SYSDTA
Die Eingabe von der Systemdatei SYSDTA ist nur in den C-Modi und im Cfront-C++-Modus des Compilers möglich. In den Modi C++ V3, C++ 2017 und C++2020 wird die Angabe *SYSDTA mit einer entsprechenden Fehlermeldung abgewiesen. SYSDTA ist im Dialogbetrieb der Datensichtstation zugewiesen und kann mit dem ASSIGN-SYSDTA-Kommando auf eine katalogisierte Datei oder ein PLAM-Bibliothekselement umgewiesen werden (siehe auch "Hinweise zur Eingabe über SYSDTA").
SOURCE = <filename 1..54>
<filename> ist der Name einer katalogisierten BS2000-Datei.
SOURCE = <posix-pathname>
Als <posix-pathname> ist nur ein Dateiname zugelassen. Zur Beschreibung des Begriffs <posix-pathname> siehe "Compiler-Ein-/Ausgaben im POSIX-Dateisystem".
SOURCE = *LIBRARY-ELEMENT(...)
Es werden eine PLAM-Bibliothek und ein Element daraus angegeben.
LIBRARY = <filename 1..54>
<filename> ist der Name einer PLAM-Bibliothek.
LIBRARY = *LINK(...)
LINK-NAME = <filename 1..8>
<filename> ist der Linkname einer PLAM-Bibliothek. Der Linkname muss vor Aufruf des Compilers mit dem ADD-FILE-LINK-Kommando dem Bibliotheksnamen zugeordnet worden sein.
ELEMENT = <composed-name 1..64 with-under>(...)
<composed-name> bezeichnet den vollqualifizierten Namen eines Elements aus der zuvor angegebenen PLAM-Bibliothek. Das Element muss vom Typ S sein.
VERSION = *HIGHEST-EXISTING
Enthält die Elementangabe keine Versionsbezeichnung, nimmt der Compiler das Element mit der höchsten Version.
VERSION = <composed-name 1..24 with-under>
Der Compiler nimmt das Element mit der angegebenen Version.
MODULE-OUTPUT =
Mit dieser Option wird gesteuert, in welcher Bibliothek und/oder unter welchem Namen die erzeugten Module abgelegt werden sollen.
MODULE-OUTPUT = *SOURCE-LOCATION
Das Modul wird dorthin geschrieben, wo auch das Quellprogramm steht. Ist das Quellprogramm ein PLAM-Bibliothekselement, wird das Modul in die Bibliothek des Quellprogramms geschrieben. Ist das Quellprogramm eine POSIX-Datei, wird das Modul als Objektdatei (.o-Datei) in das Dateiverzeichnis des Quellprogramms geschrieben.
Der Element- bzw. Objektdatei-Name wird aus dem Quellprogrammnamen abgeleitet (siehe Abschnitt „Bildung von Modulnamen“).
Das Modul kann nicht in eine write-only
Datei geschrieben werden. Die Bibliothek bzw. die Objektdatei in Posix muss immer auch eine Leseberechtigung haben.
Die Angabe *SOURCE-LOCATION ist unzulässig, wenn das Quellprogramm aus einer katalogisierten BS2000-Datei oder über SYSDTA eingelesen wird (siehe "Hinweise zur Eingabe über SYSDTA").
MODULE-OUTPUT = <posix-pathname>
Das Modul wird als LLM-Objektdatei in das POSIX-Dateisystem geschrieben.
Als <posix-pathname> ist sowohl ein Dateiname als auch ein Dateiverzeichnis zugelassen. Zur Beschreibung des Begriffs <posix-pathname> siehe "Compiler-Ein-/Ausgaben im POSIX-Dateisystem".
Bei der Angabe eines Dateinamens wird die Objektdatei unter diesem Namen abgelegt. Die Angabe eines Dateinamens ist unzulässig, wenn mehrere Quellprogramme mit einer COMPILE-Anweisung übersetzt werden.
Bei der Angabe eines Dateiverzeichnisnamens dvz wird eine Objektdatei für jedes übersetzte Quellprogramm unter dem Standardnamen quelldatei.o in das Dateiverzeichnis dvz geschrieben (siehe auch Abschnitt „Bildung von Modulnamen“).
Die mit <posix-pathname> angegebenen Dateiverzeichnisse müssen bereits existieren.
Bei der Bildung der Dateinamen ist zu beachten, dass Objektdateien im POSIX-Subsystem nur sinnvoll weiterverarbeitet (gebunden) werden können, wenn der Name das Suffix .o
enthält oder ein Suffix, das mit der Option -Y F
der cc
/c11
/c89
/CC
-Kommandos vereinbart wurde (siehe Handbuch „POSIX-Kommandos des C/C++-Compilers“ [1]).
MODULE-OUTPUT = *LIBRARY-ELEMENT(...)
Es wird angegeben, in welcher PLAM-Bibliothek (LIBRARY=) und unter welchem Elementnamen (ELEMENT=) das Modul abgelegt werden soll.
LIBRARY = *STD-LIBRARY
Standardmäßig werden Module in die Bibliothek SYS.PROG.LIB geschrieben.
LIBRARY = *SOURCE-LIBRARY
Das Modul wird in die PLAM-Bibliothek geschrieben, in der das Quellprogramm steht. Die Angabe *SOURCE-LIBRARY ist unzulässig, wenn das Quellprogramm aus einer katalogisierten BS2000-Datei, einer POSIX-Datei oder über SYSDTA eingelesen wird.
LIBRARY =<filename 1..54>
Das Modul wird in die PLAM-Bibliothek mit dem angegebenen Namen geschrieben.
LIBRARY = *LINK(...)
LINK-NAME = <filename 1..8>
Mit <filename> kann (statt eines katalogisierten Bibliotheksnamens) auch ein Linkname angegeben werden. Der Linkname muss vor Aufruf des Compilers mit dem ADD-FILE-LINK-Kommando der PLAM-Bibliothek zugeordnet worden sein.
ELEMENT = *STD-ELEMENT(...)
Der Elementname wird aus dem Quellprogrammnamen abgeleitet (siehe Abschnitt „Bildung von Modulnamen“).
VERSION = *UPPER-LIMIT
Enthält die Elementangabe keine Versionsbezeichnung, verwendet der Compiler die höchstmögliche Version.
VERSION = *INCREMENT
Das Element erhält die gegenüber der höchsten vorhandenen Version um 1 inkrementierte Versionsnummer, vorausgesetzt, die höchste vorhandene Versionsbezeichnung endet mit einer inkrementierbaren Zahl. Ist die Versionsbezeichnung nicht inkrementierbar, wird der Übersetzungslauf mit Fehler abgebrochen.
Achtung: In den Modi C++ V3, C++ 2017 und C++ 2020 ist die Angabe von *INCREMENT nicht erlaubt.
Beispiel
höchste vorhandene Version | durch *INCREMENT erzeugte Version |
ABC1 | ABC2 |
ABC9 | Fehler |
ABC09 | ABC10 |
003 | 004 |
keine | 001 |
VERSION = <composed-name 1..24 with-under>
Das Element erhält die angegebene Versionsbezeichnung.
ELEMENT = <composed-name 1..64 with-under>(...)
Das Modul wird unter dem angegebenen Namen in die mit LIBRARY= angegebene PLAM-Bibliothek geschrieben. Diese Angabe ist unzulässig, wenn mehrere Quellprogramme mit einer COMPILE-Anweisung übersetzt werden.
Zur Weiterverarbeitung mit dem DBL können Elementnamen von LLMs maximal 32 Zeichen lang sein (siehe auch Abschnitt „Bildung von Modulnamen“).
VERSION = *UPPER-LIMIT / *INCREMENT /
<composed-name 1..24 with-under>
Die Version kann in gleicher Weise angegeben werden, wie oben unter
ELEMENT=*STD-ELEMENT(...) beschrieben.
Achtung: In den Modi C++ V3, C++ 2017 und C++ 2020 ist die Angabe von *INCREMENT nicht erlaubt.