## VMAKE-Werkzeuge

### Verwendung

Das Programm VMAKE verwendet mehrere Werkzeuge (Skripte). Diese Werkzeuge können in einer beliebigen Skript- oder Prototypingsprache vorliegen. Mit der Umgebungsvariablen $TOOLSHELL konfigurieren Sie, welche Shell die Skripte ausführt.

Die Namen der Skripte werden von VMAKE mit Hilfe der Variable $TOOLEXT vervollständigt (sofern vorhanden), die die Dateiendung der Skripte definiert. Wenn zusätzliche Parameter an $TOOLSHELL übergeben werden sollen, sind diese in der Umgebungsvariable $TOOLOPT zu definieren.

Die Werkzeuge akzeptieren sowohl absolute als auch relative Pfadangaben für Moduldateien und Beschreibungsdateien. Die Ziele werden in dem von VMAKE vorgegebenen aktuellen Arbeitsverzeichnis erzeugt und anschließend im vorgegebenen Zielverzeichnis abgelegt.

VMAKE geht zunächst davon aus, dass die VMAKE-Werkzeuge im Verzeichnis $TOOL/bin gespeichert sind. Wenn sie sich nicht dort befinden, dann sucht VMAKE für jeden lokalen Pfad <path> entlang des Pfades <path>/sys/tool/bin.

### Funktionsumfang

VMAKE-Werkzeuge

Aufruf | Beschreibung
archive [<ar-flags>] <library> <objects> | schreibt die Objektdateien <objects> in die Bibliothek <library>
compa [<as-flags>] <source> | übersetzt eine Assembler-Moduldatei und erstellt die Datei <file_name>.o
compc [<cc-flags>] <source> | übersetzt eine C/C++-Moduldatei und erstellt die Datei <file_name>.o
complint [<cc-flags>] <source> | prüft eine C-Moduldatei mit LINT
compp [<pc-flags>] <source> | übersetzt eine PASCAL-Moduldatei und erstellt die Datei <file_name>.o
comppc [<pc-flags>] <source> | übersetzt eine PASCAL-Moduldatei in eine C-Moduldatei
linkdll [<ld-flags>] <dll> <archive> <objects> | linkt die Objektdateien <objects> zu einer dynamischen Bibliothek <dll> und erstellt die statische Bibliothek <archive>
linklnk [<ld-flags>] [-o program] <objects> | linkt ein Programm mit dem Namen program
linkrel [<ld-flags>] relocatable <objects> | schreibt die Objektdateien <objects> in ein Relocatable-Objekt mit dem Namen relocatable
linkshm [<ld-flags>] [-o program] <objects> | linkt ein Programm mit dem Namen program, dessen globale Variablen im Shared Memory abzulegen sind
linkshr [<ld-flags>] relocatable <objects> | schreibt die Objektdateien <objects> in ein Relocatable-Objekt mit dem Namen relocatable, dessen globale Variablen im Shared Memory abzulegen sind
mfa [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [<includes>] | extrahiert die Code Section einer Assembler-Moduldatei und schreibt diese in die Datei <file_name>.s Wenn Include-Dateien benötigt werden, dann sind diese in korrekter Reihenfolge anzugeben. Die Optionen -trace und -check sind aus Gründen der Kompatibilität mit mfp-Skripten eingefügt und werden vom mfa-Skript ignoriert.
mfainc [-<token>=<value>] <source> | extrahiert den Include-Code einer Assembler-Include-Datei und schreibt ihn in die Datei <file_name>.h
mfc [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [includes] | extrahiert die Code Section einer C/C++-Moduldatei und schreibt diese in <file_name>(.c |.cpp) Wenn Include-Dateien benötigt werden, dann sind diese in korrekter Reihenfolge anzugeben. Wenn $VMAKE_VERSION mit slow definiert ist, dann wird der Datei #define DEBUG vorangestellt. Die Optionen -trace und -check sind aus Gründen der Kompatibilität mit mfp-Skripten eingefügt und werden vom mfc-Skripten ignoriert.
mfcexp [-<token>=<value>] <source> | schreibt die exportierte Schnittstelle (Define Section des textuellen Rahmens) in die Datei <file_name>.h
mfcinc [-<token>=<value>] <source> | extrahiert den Include-Code einer C/C++-Include-Datei und schreibt ihn in die Datei <file_name>.h
mfextra [-<token>=<value>] <source> <destination> [<includes>] | erzeugt nicht zu übersetzende Dateien
mfp [-trace=<procedure>] [-check=no] [-<token>=<value>] <source> [>includes>] | extrahiert die Define Section, Use Section und Code Section einer PASCAL-Moduldatei und schreibt diese in die Datei <file_name>.p Wenn Include-Dateien benötigt werden, dann sind diese in korrekter Reihenfolge anzugeben. Die Option -trace=<procedure> spezifiziert den Namen der Trace-Prozedur, deren Aufruf am Anfang jeder Funktion und Prozedur eingefügt wird. Die Option -check=no definiert, ob die Namenspräfixe exportierter Prozeduren geprüft werden sollen.
mfpinc [-<token>=<value>] <source> | extrahiert den Include-Code einer C/C++- Include-Datei. Extrahierte CONST-Definitionen werden in die Datei <file_name>.con, extrahierte TYPE-Definitionen in die Datei <file_name>.typ geschrieben.
mfsize [<include-list>] <module> | erzeugt eine Datei <file_name>.siz, die Größeninformationen über verwendete Typen der Moduldatei enthält Wenn Include-Dateien benötigt werden, dann sind diese in korrekter Reihenfolge anzugeben.

Für einige Werkzeuge können Sie zusätzliche Optionen angeben.