VME-Configuration liest die Datei `vme.cfg' vom aktuellen working directory. Die Datei ist mit vollständigem Pfadnamen am Anfang des Fensters angegeben. Zum Beispiel Build Options (/home/bel/herlo/lnx/workspace/isau/vme.cfg) Ist die Datei vme.cfg nicht vorhanden, versucht VME-Configuration die Datei '<Gerätemodell>-default.cfg' zu öffnen. Wenn auch diese nicht vorhanden ist, verwendet VME-Configuration eine Default- Einstellung. Mit `[Save]' werden die Einstellungen abgespeichert, mit `[Cancel]' nicht. Wurden neue Einstellungen abgespeichert, dann werden mit den Daten aus `vme.cfg' Dateien erstellt, die für die Generierung der gewählten Software notwendig sind. Alle erstellten Dateien liegen auf dem aktuellen working directory: MOPS: diverse (bis V08) ECM: diverse USRs: Makefile, options.mk, linkusrs.ld, <Eq. Model>-usrs-version.h, userini-<Eq. Model>.c EQMs: Makefile, options.mk, linkeqms.ld, [tbs] Hinweis: Die Abhängigkeiten in `Makefile' werden durch das Tool `makedepend' automatisch erzeugt. Ändern sich Includes in einer Quelldatei, dann müssen diese Abhängigkeiten neu erzeugt, also ein neues Makefile generiert werden. Dies erreicht man durch Aufruf von VME-Configuration und beenden mit `[Save]'. Die Optionen im Einzelnen: Software: Welche Software soll generiert werden? Platform (ab V09): Für welche Plattform soll generiert werden? Device (ab V09): Welche Basisklasse soll für die USRs verwendet werden? - VME für USRs die mit EQMs zudsammenarbeiten. - Native für "stand-alone" USRs. Board: Für welches VME-Board soll die Software generiert werden? Target: Für welches Target (Speicherbereich) soll die Software gelinkt werden? Eq. Model: Welches Gerätemodell soll generiert werden (z.B. `MD')? Die Angabe kann in Klein- oder Großbuchstaben erfolgen. Für Dateinamen wird in lower case gewandelt, für den Versions-String in upper case. Hinweis: Da alle Aktionen auf dem working directory stattfinden, macht es keinen Sinn, auf `$eqp_md' das Gerätemodell `DGX' anzugeben. Version: Welche Version soll die Software haben? Es gelten unterschiedliche Formate. MOPS und ECM: ss.pp, also z.B. `08.42' USRs und EQMs: ss.dd.pp, also z.B. `08.47.11' Im privaten Teil der Versionsnummer (`pp') sind auch Buchstaben erlaubt. EQM Variant: Die angegebene Variante der EQMs wird generiert. So wird z.B. mit der Angabe `SIS' die Datei <Board>-<Eq. Model>-sis-eqms<Version>.sr generiert, also etwa f-dg-sis-eqms0804ca-ecm08ci.sr. Die Angabe kann in Klein- oder Großbuchstaben erfolgen. Für Dateinamen wird in lower case gewandelt, für den Varaianten-String in upper case. Additional Files: Benötigen USRs bzw. EQMs noch weitere als die üblichen Dateien, müssen diese hier angegeben werden. Abhängig von der Datei-Extension wird sowohl das Makefile mit den zusätzlichen Quell- und Zieldateien und den notwendigen Abhängigkeiten als auch die Linker-Direktive mit den zusätzlichen Objekt-Dateien generiert, was beim Aufruf von `make' dann zu folgenden Aktionen führt: <Datei>.c: Kompilieren mit dem Ergebnis <Board>-<Datei>.o und Zusammenlinken mit den USRs bzw. EQMs. <Datei>.S: Wie <Datei>.c <Datei>.s: Assemblieren mit dem Ergebnis <Board>-<Datei>.o und Zusammenlinken mit den USRs bzw. EQMs. <Datei>.o: Nur Zusammenlinken mit den USRs bzw. EQMs. Es können mehrere Dateien angegeben werden, die durch mindestens ein Blank getrennt werden müssen. Zum Beispiel: `abc.c def.s xyz.o'. Notwendige zusätzliche Dateien sollten in '<Gerätemodell>-default.cfg' angegeben werden. Achtung! Mit dieser Option können *nicht* USRs weiterer Gerätemodelle gelinkt werden, weil die notwendige Anpassung von `userini' nicht durchgeführt wird, was dazu führt, dass die Anmeldung der USRs (addUsr) bei MOPS unterbleibt. Link SWPZ: Möchte man zu den USRs des angegebenen Gerätemodells die der Software-Pulszentrale dazu linken, dann muss hier die Version der SWPZ-USRs angegeben werden. Das Makefile und die Linker-Direktive werden entsprechend erweitert. Mit der Angabe `08.03.ca' werden z.B. die SWPZ-USRs `$eqp_swpz/obj/<Board>-swpz0803ca-usrs.o' dazu gelinkt. Debug: Soll mit Debug übersetzt und gelinkt werden? Wird mit Debug übersetzt, dann wird zusätzlich auch ein Listing erstellt. Warnings: Soll der Compiler ausführliche Warnings ausgeben? Nach größeren Änderungen im Code ist das sehr sinnvoll, da der Compiler auf mögliche `Nachlässigkeiten' hinweist, wie etwa uninitialisierte Variable. Optimize: Soll der Compiler den Code optimieren? Beim Aufruf von VME-Configuration ist die Einstellung zunächst immer `Yes', egal was beim letzten Mal eingestellt wurde. Dies ist aus Sicherheitsgr"unden so, weil nicht optimierter Code ein wesentlich schlechteres Laufzeitverhalten hat. Additional compiler flags: Falls zur Generierung spezielle Compiler-Optionen notwendig sind, kann man sie hier angegen. Ein Macro könnte man z.B. mit '-DMYMACRO' angeben. Notwendige zusätzliche Optionen sollten in '<Gerätemodell>-default.cfg' angegeben werden.