Sie übersetzen und linken die Datei sys/src/SAPDB/HelloWorld.c zu einem ausführbaren Programm usr/pgm/hello (bzw. usr\pgm\hello.exe unter Microsoft Windows).
· Sie haben die Datei sys/src/SAPDB/HelloWorld.c erstellt.
· Sie haben die Include-Datei sys/src/SAPDB/HelloWorld.h erstellt.
...
1. Sie starten den MAKE-Vorgang (VMAKE-Version fast):
imf.pl hello.lnk
2. VMAKE ermittelt die benötigten Dateien:
¡ VMAKE erkennt die Beschreibungsdatei sys/desc/hello.lnk anhand ihrer Dateiendung .lnk als die Beschreibung eines ausführbaren Programms. Die Beschreibung enthält nur die Datei :SAPDB/HelloWorld.c; der Doppelpunkt steht für das Verzeichnis mit den Moduldateien sys/src.
¡
VMAKE erkennt die Moduldatei sys/src/SAPDB/HelloWorld.c
anhand ihrer Dateiendung .c als eine
Moduldatei, die mit dem C-Kompilierer übersetzt werden muss. Die von dieser
Moduldatei benötigten Include-Dateien werden in der Beschreibungsdatei
sys/desc/SAPDB.com
aufgeführt:
HelloWorld.c inc=:SAPDB/HelloWorld.h
In dieser Zeile können weitere Optionen für den
Kompilierer stehen.
¡ Die Include-Datei sys/src/SAPDB/HelloWorld.h benötigt keine weiteren Dateien, ansonsten müssten diese Abhängigkeiten ebenfalls in SAPDB.com eingetragen werden.
3. VMAKE aktualisiert die benötigten Dateien:
¡
Include-Dateien:
HelloWorld.h, HelloWorld.c
fast, hello.lnk fast
Diese kopiert VMAKE aus dem Entwicklungsbereich
in ein entsprechendes Unterverzeichnis sys/wrk/incl, in diesem Fall nach
sys/wrk/inl/SAPDB/HelloWorld.h. Dateinamen
in #include-Anweisungen sind deshalb immer relativ zu sys/wrk/incl anzugeben.
¡
C-Quellen:
HelloWorld.h, HelloWorld.c
fast, hello.lnk fast
Diese werden mit Hilfe des C-Kompilierers in
Objektdateien übersetzt. Objektdateien können in drei Versionen
(VMAKE-Versionen) erzeugt werden: fast (mit
Optimierung) oder slow (mit Assertions und
Traceausgaben). In diesem Fall wird die erzeugte Datei nach sys/wrk/fast/obj/SAPDB/HelloWorld.o
geschrieben. Auch unter Microsoft Windows
erhalten Objektdateien die Dateiendung .o. Zum Übersetzen wird die Quelldatei
in das Verzeichnis sys/wrk/fast/tmp kopiert. Alle
Zwischenergebnisse (diese fallen insbesondere bei PASCAL-Quellen an) werden in
diesem Verzeichnis erzeugt und können beim Auftreten eines Fehlers dort
überprüft werden.
¡
Ausführbare Programme:
HelloWorld.h, HelloWorld.c
fast, hello.lnk fast
Diese werden gelinkt und nach usr/pgm kopiert. Unter UNIX wird dabei usr/pgm/hello.f erzeugt und darauf ein
Link im Dateisystem unter usr/pgm/hello eingetragen. Unter Microsoft
Windows wird die Datei usr\pgm\hello.exe.ferzeugt und nach
usr\pgm\hello.exe
kopiert.
4. Sie zeigen die VMAKE-Protokolle hello.lnk.p0 (Kopie der Bildschirmausgabe) und hello.lnk.x0 (Auflistung aller relevanten Zeitstempel sowie der ausgeführten Aktionen) an:
ipf.pl hello.lnk
· Erzwungene Übersetzung: Damit wird das angegeben Ziel neu erzeugt. Ein ausführbares Programm wird neu gelinkt.
imf.pl -u hello.lnk
hello.lnk fast
· Option -U: Damit werden das angegebene Ziel und alle dafür benötigten Moduldateien neu erzeugt.
imf.pl -U hello.lnk
HelloWorld.c fast
hello.lnk fast
· Option -U -I: Damit werden das angegebene Ziel, alle dafür benötigten Module und alle benötigten Include-Dateien neu erzeugt.
imf.pl -U -I hello.lnk
HelloWorld.h
HelloWorld.c fast
hello.lnk fast
· Option -e: Sie weisen VMAKE an, alle Ziele mit Debuginformationen zu erzeugen (siehe Aktivieren des Debug-Modus).
imf.pl -U -e hello.lnk
HelloWorld.c fast debug
hello.lnk fast
debug
Danach kann usr/pgm/hello im Debugger gestartet werden. Die Quelldateien werden nach dem Übersetzungsvorgang nach sys/wrk/fast/debug kopiert. Dies ist vor allem für PASCAL-Moduldateien wichtig, da diese nicht im Quelltext debugt werden können, sondern nur anhand der generierten C-Datei.
5. Anzeigen der neu zu erzeugenden Ziele:
imf.pl -u -n hello.lnk
6. Anzeigen der benutzten Modul- und Beschreibungsdateien:
imf.pl -m hello.lnk
7. Anzeigen der benutzten Modul- und Beschreibungsdateien sowie der Abhängigkeiten:
imf.pl -C hello.lnk