next up previous
Nächste Seite: Fehlermeldungen Aufwärts: Abhängigkeiten verwalten (m2make) Vorherige Seite: Aufgabe und Arbeitsweise

Aufruf und Bedienung

Die Optionen für m2make sollen dieses Werkzeug möglichst vielseitig einsetzbar machen. Ohne Angabe von Optionen wird der allgemeine Fall angenommen. Somit ist dem ungeübten Benutzer versichert, dass die Übersetzungsfolge korrekt abläuft. Die Optionen erlauben es dem fortgeschrittenen Benutzer, m2make besser seinen Bedürfnissen anzupassen.

Ihre gewünschte Zusammenstellung der Optionen können Sie in der Umgebungsvariable ,,ENV:M2MAKE``ablegen. Damit lassen sich eigene Vorgabewerte erstellen.

m2make {+-012348dfilnpqwx -cCompOptions
  -oLinkOptions -sStack -tTargetFile ? ?? Modul}

?
zeigt die Version von m2make und gibt eine Hilfestellung der Bedienung.
??
zeigt den Status der Optionen an.
0...8
Durch die Angabe der entsprechenden Ziffer kann eine Prozessorversion vorgegeben werden. Zusammen mit der Option f wird dann das genaue Compilations- und Link- Verhalten bestimmt.
d
(dependencies) Mit der Option ,,+d`` wird die aufwendige Erstellung der Abhängigkeiten vermieden, sobald einmal eine Abhängigkeitendatei erzeugt wurde. Dies ist nur möglich, wenn keinerlei Änderungen der Abhängigkeiten erfolgt sind. Als Grundregel gilt: wurden seit Erzeugung der Abhängigkeitendatei keine IMPORT-Listen verändert, muss diese nicht neu erstellt werden. Ohne Angabe erzeugt m2make eine neue Abhängigkeitendatei.
f
(force CPU) Mit der Option ,,-f`` wird nur die höchste vorhandene Objektdatei auf das Datum überprüft. Ist mit den Optionen ,,-8-f`` kein Modul.ob8 vorhanden, wird keine Compilation erzwungen, da der Linker ja suchen wird. Mit ,,-8+f`` wird die Compilation erzwungen, wenn keine ob8-Datei vorhanden ist. Ausnahme bilden die Libraries. Diese können nicht übersetzt werden, da dann auch eine neue Symboldatei erzeugt würde.
i
(icons) Mit ,,+i`` werden Compiler und Linker angewiesen, Ikonen zu erzeugen. Ausserdem erhält die Abhängigkeiten-Datei eine Ikone. Diese hat als Default-Tool ,,M2:m2make``, so dass ein Doppelklicken darauf genügt. Sonst erhalten Sie nur dann Ikonen, wenn Sie m2make von der Workbench aus aufrufen.
l
(link) Ist ein Programm-Modul Ziel eines Make-Laufs, wird abschliessend automatisch der Linker aufgerufen. Dieser Aufruf kann mit der Option ,,-l`` unterbunden werden.
n
Wird m2make die Option ,,-n`` mitgegeben, wird es zwar vollständig ablaufen, aber weder Compiler noch Linker wirklich aufrufen. Stattdessen werden die Befehlszeilen, die den Aufrufen entsprechen, über den aktuellen Ausgabestrom angezeigt.
q
Die Option ,,-q`` unterdrückt alle Meldungen, die nur beschreibenden Charakter haben. Fehlermeldungen und Warnungen werden weiterhin ausgegeben.
w
Mit ,,+w`` oder ,,-w`` werden Warnungen ausgegeben, beziehungsweise unterdrückt. Vorgabe ist ,,+w``.
x
Diese Option erlaubt es, den Vorgang erheblich zu beschleunigen. Wird diese Option abgeschaltet, sucht und prüft m2make nur im aktuellen Projekt und lässt alle anderen Projekte, insbesondere das grosse und somit zeitaufwendige M2:modules, ausser acht. In diesem Fall müssen selbstverständlich die Moduln in den anderen Projekten in Ordnung sein. Ohne Angabe wird in allen Verzeichnissen gesucht.
cOptionen
Die der Option unmittelbar anschliessenden Zeichen werden dem Compiler als Optionen weitergereicht.
oOptionen
Analog zur vorigen Option sind diese Angaben als Option für den Linker gedacht.
sStack
Das Argument Stack gibt an, welche Stackgrösse dem Compiler zur Verfügung gestellt werden soll. Ist der Wert $< 20\,000$, wird die Stackgrösse auf 2000 gesetzt, da der Compiler in diesem Fall den notwendigen Stackbereich selber alloziert.
tDateiname
Hiermit kann der Name des zu erzeugenden Programms angegeben werden. Vorgabe ist durch den Linker gegeben, welcher den Modulnamen ohne Suffix als Programmnamen nimmt. Dies sollte nicht bei den Linker-Optionen mit angegeben werden, da m2make das Datum von Quelltext und Zieldatei überprüfen muss.
p
Mit der Option ,,+p`` wird eine Zusatzfunktion von m2make aktiviert. Alle anderen Optionen sowie die normale Arbeitsweise von m2make sind hier nicht aktiv. Dafür wird eine Abhängigkeitentabelle der Moduln auf dem aktuellen Ausgabestrom ausgegeben. Diese Tabelle enthält alle Moduln, die vom Hauptmoduln direkt oder indirekt importiert werden.

In dieser Tabelle steht für jedes Modul eine Zeile, die alle direkten Importe zu anderen Moduln enthält. Dabei werden Importe in den Definitionsmoduln mit einem ,,D``, diejenigen der Implementationsmoduln mit einem ,,X`` gekennzeichnet. Um die Tabelle möglichst kompakt und übersichtlich zu gestalten, werden die Spalten nur mit Zahlen (in 5er-Schritten) gekennzeichnet. Der Name des Moduls kann aus der entsprechenden Zeile entnommen werden.

Die in Abbildung 3.1 dargestellte Situation ergäbe folgende Darstellung:

 
         \  Modul B |     :     |
  Modul A \         |    5:   10|
  ---------|---:---|
  M5               6|     :X    |
  ---------|---:---|
  M4               5|    X:     |
  ---------|---:---|
  M6               4|   X :     |
  ---------|---:---|
  M3               3|  XD :     |
  ---------|---:---|
  M2               2| X  X:X    |
  ---------|---:---|
  M1               1| XX  :     |
  

Das Modul M1 importiert in der Implementation die Moduln M2 und M3. M2 importiert ebenfalls in der Implementation die Moduln M4 und M5, während M3 in seiner Definition M6 importiert.


\begin{example}
Nun folgt ein Beispiel eines Make-Aufrufs, bei dem eine vorhande...
...make +d-c''+oDemo -oDebug'' -0-s20000 test\end{verbatim}\end{quote}\end{example}


next up previous
Nächste Seite: Fehlermeldungen Aufwärts: Abhängigkeiten verwalten (m2make) Vorherige Seite: Aufgabe und Arbeitsweise
Claudio Nieder 2000-11-12