next up previous
Nächste Seite: Namens-Konventionen Aufwärts: Der Library-Linker (M2LibLink) Vorherige Seite: Der Library-Linker (M2LibLink)

Aufruf und Optionen

Aufruf:

M2LibLink {+-012348acdfimq -lLibFile
  -tTargetFile ? ?? ObjectFile}


\begin{example}
\noindent
Ein Beispiel:
\begin{verbatim}M2LibLink +mf DemoLib\...
....def} und die Beschreibung der Library {\tt demo\_lib.fd}
erzeugt.
\end{example}

Da das Programm M2LibLink aus dem herkömmlichen Linker m2l hervorgegangen ist, verwundert es sicher nicht weiter, dass Bedienung und Optionen fast identisch sind.

M2LibLink besitzt keinen ARexx-Port und keine Möglichkeit zum Verzeichniswechsel. Die von m2l bekannten Möglichkeiten zur Festlegung des Laufzeitsystems (m und r) sind hier nicht vorhanden, es wird immer das spezielle, sehr rudimentäre Laufzeitsystem LArts.obj eingebunden. Ebenso ist die Angabe einer minimalen Stapelgrösse sinnlos, da die erzeugten Objekte lediglich Prozeduren enthalten und keine eigenständigen Prozesse sind.

Mit Hilfe der Umgebungsvariablen ,,M2LibLink`` lässt sich die Voreinstellung der Optionen festlegen.


Die Optionen im einzelnen:

a
(ask module) Durch die Option ,,+a`` wird der Library-Linker veranlasst, vor dem Einlesen jeder Datei dem Benutzer die Möglichkeit zu geben, einen anderen Dateinamen einzugeben. Hierbei zeigt er in eckigen Klammern den Dateinamen an. Wenn Sie einfach drücken, wird die angezeigte Datei eingelesen, andernfalls die von Ihnen eingetippte. Dieser Vorgang wird solange wiederholt, bis die Datei erfolgreich eingelesen werden konnte. Geben Sie einfach nur ein Minuszeichen ein, wird für diesen Linkvorgang die Option ausgeschaltet und die restlichen, noch zu lesenden Dateien ohne Nachfrage geladen.

i
(icon) Falls diese Option eingeschaltet ist, werden für alle erzeugten Dateien auch Workbench-Ikonen angelegt. ,,-i`` unterdrückt dies. Wenn der Library-Linker von der Workbench gestartet wurde, ist die Ikonen-Erzeugung eingeschaltet, beim Start vom CLI wird standardmässig keine Ikone erzeugt. Zur korrekten Funktion müssen im Verzeichnis m2:icons die beiden Ikonen txt.info und library.info vorhanden sein.

c
steht für ,,CODE``. ,,+c`` bewirkt, dass die einzelnen CODE-Hunks soweit wie möglich in maximal 32kByte grossen Hunks zusammengelegt werden, was zu einem erheblich kürzeren Objekt führen kann. Standardeinstellung für diese Option ist ,,+``.

d
steht für ,,DATA``. Nach ,,+d`` legt der Library-Linker alle DATA- und BSS-Hunks gleichen Typs (CHIP, FAST, ,,normal``) zusammen. Dies ist auch die Vorgabe. Hierdurch wird das fertige Objekt etwas kleiner.

lLibFile
Hier ist ,,+`` oder ,,-`` ohne Wirkung. Durch diese Option wird dem Linker mitgeteilt, in welchen Dateien er undefinierte Symbole suchen soll, die z.B. mit einem Assembler erzeugt und im Modul als externe Variablen deklariert wurden. Das Argument LibFile muss den kompletten Pfad enthalten! Das ,,l`` kann sich direkt an die anderen Optionen anschliessen; falls jedoch mehrere Dateien geladen werden sollen, muss jeweils eine eigene Option hierfür angegeben werden, da alle Zeichen nach dem ,,l`` als Teil des Dateinamens eingelesen werden. Die Angabe einer ,,Extra``-Datei gilt immer nur für das nächste zu bearbeitende Objekt. Danach werden diese Angaben vergessen!

tTargetFile
bietet die Möglichkeit, der erzeugten Datei einen anderen Namen zu geben. Diese Option gilt (wie ,,l``) nur für den nächsten Linkvorgang. Direkt an den Buchstaben ,,t`` schliesst sich ein Dateiname (einschliesslich Pfad) an. Standardeinstellung ist der Modulname des Schnittstellenmoduls mit den Endungen ,,.library``, ,,.device`` oder ,,.resource``.


\begin{example}
Beispiel: Ein Device soll gleich im richtigen Verzeichnis abgele...
...erbatim}M2LibLink -tdevs:myfirst.device MyFirstDev\end{verbatim}\end{example}

012348
Auch hierbei sind ,,+`` oder ,,-`` wirkungslos. Durch die Ziffer wird dem Library-Linker mitgeteilt, welche Art Objektdateien er einbinden soll, um den bestmöglichen Code für den Zielprozessor zu erzeugen. Vorgabe ist ,,0``.
\begin{warning}
Da Libraries, Devices und Resources auf jedem Amiga lauff\uml {a...
...zt und immer
Code f\uml {u}r den MC68000-Prozessor erzeugt werden!
\end{warning}

q
Mit der Option ,,-q`` werden alle Meldungen des Library-Linkers unterdrückt. Beim Eintritt in den interaktiven Modus (z.B. durch einen Fehler) wird die Option wieder auf ihre Standardeinstellung ,,+`` gesetzt.

m
Durch die Angabe ,,+m`` wird der Library-Linker veranlasst, neben dem normalen Link-Vorgang aus dem Definitionsmodul ein Schnittstellenmodul zu erzeugen. Nachdem das hierbei erzeugte Modul compiliert wurde, kann das zugehörige Objekt von jedem mit erstellten Programm benutzt werden. Diese Option hat den Standardwert ,,-``.

f
Damit auch Programmierer anderer Sprachen in den ,,Genuss`` des Objektes kommen, kann durch die Angabe ,,+f`` die Erzeugung einer FD-Datei (function description) veranlasst werden. Dies ist eine Textdatei, die für jede Prozedur den Namen und die Parameter-Register angibt. Diese Option hat den Standardwert ,,-``.

??
Die Eingabe zweier Fragezeichen zeigt die Version des Linkers und den aktuellen Status aller Optionen.


Tabelle 4.1: Optionen des Library-Linkers in Kurzform
Option Vorgabe Wirkung
?   Version und Syntax
??   Version, Syntax und Status
a - Abfrage der Dateinamen
c + SmallCode
d + SmallData
i WB:+, CLI:- Ikonen-Erzeugung
q + Ausgabe von Meldungen
m - Erzeugung der Schnittstelle
f - Erzeugung der FD-Datei
l   Lade Extrafiles
t Modulname Name der Zieldatei
012348 0 Typ der Objektdateien (.ob1 ...)



next up previous
Nächste Seite: Namens-Konventionen Aufwärts: Der Library-Linker (M2LibLink) Vorherige Seite: Der Library-Linker (M2LibLink)
Claudio Nieder 2000-11-12