home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d959 / intuimake.lha / IntuiMake / IntuiMake.anl < prev    next >
Text File  |  1993-12-10  |  22KB  |  588 lines

  1.                               IntuiMake v1.2
  2.  
  3.                  © 1993 Björn E. Trost und Dirk O. Remmelt.
  4.  
  5.  
  6.  
  7. i. Rechte und Pflichten der Autoren
  8.  
  9.    IntuiMake v1.2 wurde mit größtmöglicher Sorgfalt entwickelt und
  10.    getestet. Dennoch können Fehler im Programm selbst und in mit
  11.    IntuiMake erzeugten Programmen nicht ausgeschlossen werden.
  12.    Die Autoren können für solche Fehler nicht haftbar gemacht werden.
  13.  
  14.  
  15.  
  16. ii. Rechte und Pflichten des Benutzers
  17.  
  18.    Mit IntuiMake wird Entwicklern ein Werkzeug zur Programmentwicklung
  19.    zur Verfügung gestellt, mit dem sie ohne Probleme größere Programm-
  20.    projekte entwicklen können. Dazu sind keine Vorkenntnisse erforderlich,
  21.    da IntuiMake, wie der Name ja schon sagt, nicht mit Skript-Dateien arbeitet,
  22.    wie sie sonst üblich sind.
  23.  
  24.    IntuiMake darf frei kopiert und in PD-Serien aufgenommen werden,
  25.    sofern der Verkaufspreis einer Diskette nicht DM 5,- übersteigt. Wird
  26.    IntuiMake in eine Serie aufgenommen, so bitten die Autoren um die
  27.    Übersendung einer Kopie.
  28.  
  29.    IntuiMake darf nicht rekompiliert oder in irgendeiner Form verändert
  30.    werden. Dies betrifft vor allem Copyrightmeldungen und Versionsnummern.
  31.  
  32.    IntuiMake ist keine Shareware, es besteht jedoch die Möglichkeit der
  33.    Registrierung. Registrierte Anwender erhalten Upgrades, eine mit TeX
  34.    gesetzte, ausführliche Anleitung und einen umfassenden Support. Eine
  35.    Registrierkarte befindet sich als Datei `Register.txt' in diesem
  36.    Paket. Interessierte Anwender können sie ausdrucken und absenden.
  37.  
  38.    Natürlich sind auch Zuschriften jeglicher Art ohne Registrierung
  39.    willkommen. Falls Rückantwort gewünscht wird, bitte das Rückporto
  40.    beilegen.
  41.  
  42.  
  43.  
  44. iii. DerInhalt dieses Paketes
  45.  
  46.    Dieses Softwarepaket sollte folgende Dateien enthalten:
  47.  
  48.    · IntuiMake:              Das ausführbare Programm.
  49.    · IntuiMake.anl:          Diese Anleitung.
  50.    · NewlookMake:            Eine spezielle Version von IntuiMake.
  51.    · Register.txt:           Registrierungskarte.
  52.    · example/first.c
  53.    · example/first_protos.h
  54.    · example/headerfile.h
  55.    · example/makefile
  56.    · example/main.c
  57.    · example/second.c
  58.    · example/second_protos.h
  59.    · example/test
  60.    · example/obj/first.o
  61.    · example/obj/main.o
  62.    · example/obj/second.o
  63.  
  64.  
  65.  
  66. 1. Die Aufgaben eines Make
  67.  
  68.    Ein Make dient dazu, ein aus mehreren Modulen bestehendes Programm
  69.    möglichst komfortabel zu kompilieren. Vor allem das Kompilieren eines
  70.    oderer mehrerer Module bei Änderung eines Headerfiles soll automatisiert
  71.    werden.
  72.  
  73.    IntuiMake ist in der Version 1.2 auf den Aztec-Compiler von Manx
  74.    ausgelegt.
  75.  
  76.  
  77.  
  78. 2. Das Starten, benötigte Dateien, etc.
  79.  
  80.    IntuiMake benötigt OS2.0, die ASL-library in LIBS: und sonst nichts.
  81.    Standardmäßig wird das Makefile unter dem Namen `makefile' im aktuellen
  82.    Verzeichnis erzeugt.
  83.  
  84.    Gestartet wird IntuiMake am zweckmäßigsten mit `Intuimake'. Die
  85.    Angabe eines Dateinamens wie z.B. `IntuiMake GenialesMake' ist
  86.    optional. IntuiMake verwendet dann das angegebene Makefile statt des
  87.    Standard-Makefiles im aktuellen Verzeichnis.
  88.  
  89.    IntuiMake öffnet daraufhin ein Fenster, das auf der Workbench verschieb-
  90.    und in der Größe veränderbar ist.Die Einstellungen des Makefiles
  91.    werden nun nachgeladen und IntuiMake ist einsatzbereit.
  92.  
  93.    Es ist nicht sinnvoll, IntuiMake von der Workbench aus zu starten, da
  94.    die Ausgaben des Compilers und Linkers nicht umgeleitet werden. Man
  95.    sollte also mit einer geöffnete CLI/Shell und IntuiMake gleichzeitig
  96.    arbeiten. Zum Glück hat dieser unser Rechner ein Multitasking-
  97.    Betriebssystem.
  98.  
  99.  
  100.  
  101. 3. Der Bildschirm nach dem Starten.
  102.  
  103.    Nach dem Starten und Einladen des eventuell vorhandenen Makefiles öffnet
  104.    sich das Hauptfenster. Der größte Teil beansprucht ein Anzeigefeld für sich,
  105.    in dem alle Module, die zum Programm gehören, dargestellt werden.
  106.  
  107.    Darunter befinden sich die Systemsymbole zum Starten des Kompilier- und
  108.    Linkvorgangs, zum Starten eines Editors, zum Ausführen und Debuggen des
  109.    Programms.
  110.  
  111.    Der rechte Teil des Bildschirm besteht aus Eingabefeldern für Symbolnamen,
  112.    Namen der zu erzeugenden Dateien, Versionsnummer und einem Schalter
  113.    zum Aktivieren der Debuginformationen.
  114.  
  115.    Das Fenster kann beliebig vergrößert und auf dem Bildschirm positioniert
  116.    werden. Diese Einstellungen werden im Makefile gespeichert.
  117.  
  118.  
  119.  
  120. 4. Die Menüs
  121.  
  122.  
  123. 4.1 Project
  124.  
  125. 4.1.1 Save makefile
  126.         Hiermit kann ein erstelltes Makefile abgespeichert werden. Als
  127.         Filename wird `makefile' bzw. der beim Start angegebene Name
  128.         verwendet.
  129. 4.1.2 Save makefile as ...
  130.         Manchmal ist es sinnvoll, mit mehreren verschiedenen Makefiles zu
  131.         arbeiten. Dann kann man mit diesem Menüpunkt mit Hilfe des
  132.         ASL-Dateiauswahlfensters einen geeigneten Namen festlegen.
  133. 4.1.3 Load makefile ...
  134.         Um ein Makefile während der Laufzeit zu laden, selektiert man
  135.         diesen Menüpunkt und wählt im ASL-Dateiauswahlfenster das
  136.         gewünschte Makefile an.
  137. 4.1.4 Delete objectfiles ...
  138.         Die Aufgabe eines Make's ist es, möglichst viele Schritte zu
  139.         automatisieren. Nun gibt es jedoch Dinge, die eine Kompilation
  140.         eines Moduls erfordern, ohne daß IntuiMake dies erkennen würde, wie
  141.         z.B. das Kopieren eines älteren Moduls zu den aktuellen Modulen. Um
  142.         das betreffende Modul dennoch kompilieren zu lassen, kann man die
  143.         erzeugte Objektdatei löschen. Dies kann man mittels Mehrfachauswahl
  144.         (Shift-Taste gedrückt halten) im ASL-Dateiauswahlfenster erledigen.
  145. 4.1.5 Edit preferences ...
  146.         Im Voreinstellungsfenster können viele Einstellungen vorgenommen
  147.         werden:
  148. 4.1.5.1 Comparing
  149.         IntuiMake bietet die Möglichkeit, zwei Sätze von Modulen zu
  150.         vergleichen, z.B. um Unterschiede zu einer alten Version
  151.         festzustellen. Dazu müssen die beiden Pfade eingegeben werden,
  152.         in denen sich die Modulsätze befinden. Im Eingabefeld `Output'
  153.         wird die Ausgabedatei festgelegt.
  154. 4.1.5.2 Scanning
  155.         Die automatische Suche nach Abhängigkeiten kann beschleunigt
  156.         werden, indem man in den Dateien nach den `#include'-Anweisungen
  157.         eine Zeichenfolge, in Kommentaren, angibt, die das Ende der
  158.         `#include'-Anweisungen signalisiert.
  159.         Diese Zeichenfolge kann mit `EndString' angegeben werden.
  160.         Eine Zeichenfolge, mit der der Beginn der Durchforstung angegeben
  161.         werden kann, kann man im Eingabefeld `BeginString' festlegen. Ob
  162.         diese Zeichenfolge auch genutzt werden soll, kann mit dem Schalter
  163.         daneben bestimmt werden. Diese Zeichenfolgen können für Assembler-
  164.         und C-Dateien getrennt eingestellt werden.
  165.         Für zukünftige Erweiterungen gedacht sind die Blättersymbole,
  166.         mit denen die Syntax festgelegt wird, mit der Dateien included
  167.         werden. Dies dient vor allem der Unterscheidung von Headerdateien,
  168.         die mit `<...>', also Systemheaderdateien, und mit `"..."', also
  169.         Projektheaderdateien, included werden.
  170. 4.1.5.3 Paths
  171.         Mit dem Blättersymbol kann man bestimmen, ob eine ausführbare
  172.         Datei oder eine Linker-Bibliothek erzeugt werden soll. Soll eine
  173.         Linker-Bibliothek erzeugt werden, müssen sich die von Manx
  174.         mitgelieferten Programme `Lb' und `Ord' im Suchpfad befinden.
  175.         Im Hauptfenster kann man mit `Edit' das aktuelle Modul edieren. Dazu
  176.         muß im Eingabefeld `Editor' der verwendete Editor, z.B. `Ced',
  177.         eingetragen werden.
  178.         Soll eine vorkompilierte Headerdatei benutzt werden, so ist sie
  179.         hier im Eingabefeld `-hi file' anzugeben. Soll sie auch in den
  180.         Kompiliervorgang eingebunden werden, so muß die -hi Options bei
  181.         den Compiler-Optionen aktiviert sein.
  182.         Um alle Module, die Headerdateien und das Makefile zu archivieren
  183.         ist das Eingabefeld `Archive' vorhanden. Hier muß die Datei
  184.         angegeben werden, in die das Archiv geschrieben werden soll.
  185.         Im Eingabefeld `Sourcecode' ist der Pfad einzutragen,
  186.         in dem sich die Module befinden. Die erzeugten Objektdateien
  187.         können auf Wunsch in ein Verzeichnis geschrieben werden, das
  188.         im Eingabefeld `Objectcode' festgelegt wird.
  189. 4.1.6 Edit linkeroptions ...
  190.         Hier kann man die Optionen für den Linker eingeben. Sie sind im
  191.         Handbuch genau erklärt. In das Eingabefeld `Additional modules'
  192.         werden die Bibliotheken und Module eingetragen, die nicht in der
  193.         Modulliste vorkommen, z.B. `-lmf -lc'.
  194. 4.1.7 About ...
  195.         Es erscheint ein mit MaxonPAINT erstelltes Informationsfenster.
  196. 4.1.8 Quit
  197.         Verlassen von IntuiMake.
  198.  
  199.  
  200. 4.2 Action
  201.  
  202. 4.2.1 Make ...
  203.         Hiermit wird der Kompilier- und Linkvorgang gestartet. Es erscheint
  204.         ein Fenster, das das Modul anzeigt, das zur Zeit kompiliert wird.
  205.         Mit dem Symbol zum Schließen des Fensters kann das Kompilieren
  206.         abgebrochen werden. Dann, oder bei Fehlern während des Kompilierens,
  207.         kann man mit dem Symbolen `Edit' die fehlerhafte Datei ediert
  208.         werden. `Retry' beginnt den Kompiervorgang an der abgebrochenen
  209.         Stelle. `Next' beginnt mit dem nächsten Modul, `Make' schließlich
  210.         beginnt von vorne.
  211. 4.2.2 Edit
  212.         Startet den in den Voreinstellungen eingestellten Editor mit
  213.         dem aktuellen Modul. Mit einem Doppelklick auf das Modulauswahlfeld
  214.         kann ebenfalls eine Datei editiert werden.
  215. 4.2.3 Run
  216.         Startet das erzeugte Programm.
  217. 4.2.4 Debug
  218.         Startet den Debugger `sdb' von Manx.
  219.  
  220.         Die oben aufgeführten Menüpunkte können auch alle über die Symbole
  221.         unter dem Modulauswahlfeld aktiviert werden, was mit Sicherheit
  222.         schneller geht.
  223.  
  224.  
  225. 4.3 Modules
  226.         IntuiMake kann Module in C und in Assembler verwalten. Assemblermodule
  227.         sollten die Endung `.asm' haben.
  228.  
  229. 4.3.1 Insert modules...
  230.         Hier wählt man mit Hilfe des ASL-Dateiauswahlfensters die Module
  231.         an, die zu dem zu erstellenden Programm gehören. Eine
  232.         Mehrfachauswahl mit Hilfe der Shift-Taste ist möglich.
  233.         Auch zu einem späteren Zeitpunkt ist es möglich, Module zu bereits
  234.         bestehenden Modulen hinzuzufügen.
  235. 4.3.2 Delete module
  236.         Wenn man diesen Menüpunk selektiert, wird das zur Zeit angezeigte
  237.         Modul gelöscht.
  238. 4.3.3 Scan module
  239.         IntuiMake bietet die Möglichkeit, abhängige Headerfiles eines
  240.         Moduls automatisch zu erkennen. Dazu wird das angewählte Modul auf
  241.         `#include"' durchforstet. Es werden rekursiv die weiteren
  242.         Headerfiles durchsucht, bis alle Abhängigkeiten festgestellt worden
  243.         sind.
  244.         Um den Scan-Vorgang zu beschleunigen, bietet IntuiMake die
  245.         Möglichkeit, bei Auffinden einer bestimmten Zeichenfolge den
  246.         Scan-Vorgang des Headerfiles oder Moduls abzubrechen. Dies ist
  247.         besonders bei großen Modulen sinnvoll. Die Zeichenfolge kann
  248.         in den Voreinstellungen festgelegt werden  und sollte nach allen
  249.         `#include'-Anweisungen stehen.
  250. 4.3.4 Scan all modules
  251.         Hiermit werden alle Module nach abhängigen Headerfiles durchsucht.
  252.         Ein Abbruch ist durch Selektieren des Symbols zum Schließen des
  253.         Fensters möglich.
  254. 4.3.5 Compare set of modules
  255.         Arbeiten an einem Projekt mehrere Autoren an mehreren Rechnern,
  256.         müssen die geänderten Module irgendwann zusammengefügt werden.
  257.         Zu diesem Zweck bietet IntuiMake die Möglichkeit an, alle
  258.         eingetragenen Module auf Änderungen zu untersuchen. Es wird das
  259.         Programm `Diff' aufgerufen, das dem Aztec-Compiler beiliegt.
  260.         In den Voreinstellungen müssen die Pfade festgelegt werden, in
  261.         denen sich die zwei zu untersuchenden Modulsätze befinden.
  262.         Die Module werden bei Anwahl dieses Menüpunktes auf Änderungen
  263.         untersucht und das Ergebnis in die angegebene Datei geschrieben.
  264. 4.3.6 Archive set of modules        
  265.         Mit dem Programm `Lha', das sich im aktuellen Suchpfad befinden muß,
  266.         werden bei Anwahl dieses Menüpunktes alle Moduldateien, Headerdateien
  267.         und das Makefile gespeichert. Dazu muß in den Voreinstellungen
  268.         im Eingabefeld `Archive' ein Dateiname angegeben werden.
  269. 4.3.7 Edit options
  270.         Um die Optionen zum Kompilieren oder Assemblieren einzustellen,
  271.         wählt man diesen Menüpunkt an. IntuiMake bietet bis zu fünf
  272.         beliebig programmierbare Voreinstellungen (Default) und eine
  273.         modulspezifische Einstellung (Custom) an. Die Default-Einstellungen
  274.         gelten für alle Module, die diesen Default eingestellt haben, während
  275.         die modulspezifische Einstellung nur für das augenblickliche Module
  276.         gelten.
  277.         Um eine Default-Einstellunge zu ändern ändert man einfach die
  278.         Einstellungen und selektiert `As default'.
  279.  
  280.  
  281.  
  282. 5. Defines
  283.  
  284.    An den Compiler kann man Defines übergeben. IntuiMake unterstützt
  285.    bis zu fünf solcher Symbole, die in die Eingabefelder eingetragen
  286.    werden können. Mit dem Schalter links des Eingabefeldes kann man
  287.    festlegen, ob der Define übergeben wird. Dies ist dann sinnvoll,
  288.    wenn man im Programm eine Abfrage, wie z.B.
  289.  
  290.         #ifdef DEMO
  291.                Save ();
  292.         #else
  293.                puts ("Demoversion!");
  294.         #endif
  295.  
  296.    hat
  297.  
  298.  
  299.  
  300. 6. Erstellen eines Projektes
  301.  
  302.    In diesem Abschnitt soll beschrieben werden, wie man IntuiMake
  303.    konfiguriert und anschließend damit arbeitet. Zu diesem Zweck
  304.    ist im Programmpaket von IntuiMake ein Beispielprojekt enthalten,
  305.    das aus drei Modulen besteht, die miteinander verknüpft sind.
  306.  
  307.  
  308. 6.1 Ein Beispiel
  309.  
  310.   Hier sind nun die Module:
  311.  
  312.         /* main.c
  313.         **
  314.         **
  315.         */
  316.  
  317.         #include "first_protos.h"
  318.         #include "second_protos.h"
  319.         /* SCAN_END */
  320.  
  321.         void main (void)
  322.         {
  323.           Test1 ("Test it:", 1);
  324.           Test2 ("Just do it:");
  325.         }
  326.  
  327.  
  328.  
  329.  
  330.         /* headerfile.h
  331.         **
  332.         ** SCAN_END
  333.         */
  334.  
  335.         struct MyStruct
  336.         {
  337.           int  a;
  338.           long b;
  339.         };
  340.  
  341.  
  342.  
  343.  
  344.         /* first.c
  345.         **
  346.         **
  347.         */
  348.  
  349.         #include "headerfile.h"
  350.         /* SCAN_END */
  351.  
  352.         void Test1 (char *message, long var)
  353.         {
  354.           struct MyStruct mystruct = {1, 2L};
  355.  
  356.           printf ("%s %d\n%d\n%d\n", message, mystruct.a, mystruct.b, var);
  357.  
  358.         }
  359.  
  360.  
  361.  
  362.  
  363.         /* second.c
  364.         **
  365.         **
  366.         */
  367.  
  368.         #include "headerfile.h"
  369.         /* SCAN_END */
  370.  
  371.         void Test2 (char *message)
  372.         {
  373.           struct MyStruct mystruct = {3, 4L};
  374.  
  375.           printf ("%s %d\n%d\n", message, mystruct.a, mystruct.b);
  376.         }
  377.  
  378.  
  379.  
  380.  
  381.         /* first_protos.h
  382.         **
  383.         ** SCAN_END
  384.         */
  385.  
  386.         void Test1 (char *message, long var);
  387.  
  388.  
  389.  
  390.  
  391.         /* second_protos.h
  392.         **
  393.         ** SCAN_END
  394.         */
  395.  
  396.         void Test2 (char *message);
  397.  
  398.  
  399.  
  400.  
  401.    In `headerfile.h' wird eine Struktur `MyStruct' definiert, die
  402.    in den Modulen `first' und `second' benötigt wird. Sie muß dort
  403.    also included werden. `main' benötigt diese Struktur nicht. Hier
  404.    werden jedoch die Prototypdeklarationen der verwendeten Funktionen
  405.    `Test1' und `Test2' benötigt. Also müssen `first_protos.h' und
  406.    `second_protos.h' included werden.
  407.  
  408.    Somit sind die Abhängigkeiten klar, bei einer Änderung einer Datei,
  409.    von der andere anhängig sind, müssen diese alle neu kompiliert
  410.    werden. Hier nun das Schaubild, aber keine Angst, man braucht bei
  411.    IntuiMake keine Schaubilder zu malen, das hier soll nur der
  412.    Verdeutlichung dienen:
  413.  
  414.    (a -----> b     bedeutet, daß b von a abhängig ist.)
  415.  
  416.  
  417.  
  418.             first_protos.h -----> main.c <----- second_protos.h
  419.  
  420.  
  421.  
  422.             first.c <----- headerfile.h -----> second.c
  423.  
  424.  
  425.    Ändert man z.B. die Funktion `Test1' in
  426.  
  427.                void Test1 (char *message1, short var)
  428.  
  429.    um, muß auch die zugehörige Datei `first_protos.h" geändert werden.
  430.    Das bewirkt, daß main.c neu kompiliert werden muß, da sich der
  431.    Aufruf von `Test1' geändert hat. Second.c muß nicht kompiliert
  432.    werden.
  433.  
  434.    Ändert man in `headerfile.h' die Struktur `MyStruct' um, z.B. in
  435.  
  436.                struct MyStruct
  437.                {
  438.                  short a;
  439.                  long b;
  440.                };
  441.  
  442.    so müssen `first.c' und `second.c' kompiliert werden, da sie beide
  443.    auf `MyStruct' zugreifen. `main.c' benötigt diese Struktur nicht
  444.    und muß daher nicht kompiliert werden.
  445.  
  446.    Soweit die nötigen Erläuterungen. Und nun das schöne daran: Das
  447.    alles muß man sich nicht merken, diese Arbeit wird von IntuiMake
  448.    erledigt.
  449.  
  450.  
  451.  
  452. 6.2 Die Einstellungen für obiges Beispiel
  453.  
  454.    Um aus den Quelltexten ein lauffähiges Programm zu generieren, sind
  455.    zunächst einige Schritte zu erledigen, die hier beschrieben werden:
  456.  
  457.    Zunächst muß IntuiMake aus dem CLI/Shell aufgerufen werden:
  458.          <IntuiMake> bzw. <run IntuiMake>
  459.  
  460.    Nach erfolgreichem Starten müssen dann die Module eingetragen
  461.    werden. Dazu wählt man den Menüpunkt `Modules/Insert modules ...'
  462.    an. Es erscheint das ASL-Auswahlfenster, mit dem man mit gedrückter
  463.    Shift-Taste die Dateien auswählt, die zum Programm gehören. In
  464.    obigem Beispiel also `main.c', `first.c' und `second.c'. Die
  465.    Header- und Prototypdateien dürfen nicht angewählt werden.
  466.  
  467.    Die gewählten Dateien erscheinen nun alphabetisch geordnet im
  468.    Modulauswahlfenster. Dort können sie auch später angewählt werden.
  469.  
  470.    Als nächstes legt man die Compileroptionen fest, die jedes Modul
  471.    benötigt: Man wählt das Modul im Anzeigefenster aus, für das man
  472.    die Optionen festlegen möchte. Sodann wählt man
  473.    `Modules/Edit options' an. Es erscheint ein Fenster mit allen
  474.    möglichen Optionen, deren Bedeutung man im Handbuch zum Aztec-
  475.    Compiler nachschlagen kann.
  476.  
  477.    Mit dem Blättersymbol kann man aus fünf Voreinstellungen die
  478.    richtigen wählen, oder für das Modul eigene bestimmen. Die
  479.    Voreinstellungen sind sinnvoll, wenn man für einen Teil seiner
  480.    Module die gleichen Optionen verwendet. Dann legt wählt man
  481.    die Voreinstellung an, die programmiert werden soll, stellt die
  482.    Optionen wie gewünscht ein und klickt auf `As default'. Die
  483.    Optionen werden dann gespeichert und sind dann auch in den
  484.    anderen Modulen verwendbar.
  485.  
  486.    Sind die Optionen festgelegt, trägt man im Eingabefeld die
  487.    Versionsnummer des Programms ein, z.B. `1.2'. IntuiMake erzeugt
  488.    automatisch einen systemkonformen Versionstring.
  489.  
  490.    Darunter legt man den Name des Programms fest, das erzeugt werden
  491.    soll.
  492.  
  493.    Schließlich muß nach mit `Project/Edit linker options ...' das
  494.    Fenster zum Einstellen der Linkeroptionen geöffnet werden.
  495.    Für obiges Beispiel muß im Eingabefeld `Additional modules;
  496.    noch `-lc' eingetragen werden, damit die von Manx mitgelieferte
  497.    l-Bibliothek mitgelinkt wird.
  498.  
  499.    Sind alle Einstellungen soweit durchgeführt, muß man mit
  500.    `Modules/Scan all modules ...' die Module nach Abhängigkeiten
  501.    durchforsten. Ist dies erledigt, sollte man mit
  502.    `Project/Save makefile' das eben erzeugte Makefile abspeichern.
  503.  
  504.    Nun kann mit `Action/Make' der Kompilier- und Linkvorgang
  505.    gestartet werden.
  506.  
  507.    Es erscheint ein Ausgabefenster, im dem angezeigt wird, wie
  508.    viele Module bereits kompiliert wurden. Trat während das
  509.    Kompilierens ein Fehler auf, kann mit `Edit' der Fehler beseitigt
  510.    und mit `Retry' ein neuer Versuch unternommen werden.
  511.  
  512.    Nach erfolgreichem Kompilieren kann mit `Run' das Programm
  513.    gestartet werden.
  514.  
  515.  
  516. 7. Wann muß ein Module neu kompiliert werden?
  517.  
  518.    Nachfolgend eine Liste der Ereignisse, die dazu führen, daß ein
  519.    Modul kompiliert werden muß:
  520.  
  521.         · Es existiert keine Objektdatei.
  522.         · Die Moduldatei wurde verändert.
  523.         · Eine Headerdatei, von der das Modul abhängig ist, wurde verändert.
  524.         · Der Zustand eines Defines hat sich verändert und der Define wird
  525.           im Modul verwendet.
  526.  
  527.  
  528.  
  529. I. Credits
  530.  
  531.   Kein Programm, und sei es auch noch so schlecht, ohne Credits: Unser Dank
  532.   geht zunächst an die Firmen Commodore Business Machines Inc. und Commodore
  533.   Büromaschinen GmbH für die zahlreichen undokumentierten Späße, die sie sich
  534.   seit der Einführung des Amiga erlaubt haben. Danke, Commodore!
  535.  
  536.   Weiterhin muß der Firma Manx Software Systems für die Mitlieferung eines
  537.   nichtfunktionierenden Make's, für eine maximale Schachtelungstiefe von 3
  538.   bei der Fragezeichenoperation und eine total veraltete Entwicklungsumgebung
  539.   gedankt werden. Danke, Manx!
  540.  
  541.   Auf keinen Fall darf die Firma Frank Strauß Elektronik, Kaiserslautern,
  542.   vergessen werden, die ihre Kundenkartei großzügig an diverse Zeitungsverlage
  543.   weitergibt. Wie soll denn der Amiga-User auch sonst auf dem Laufenden
  544.   betreffend PC-Markt bleiben. Danke, FSE!
  545.  
  546.   Und nochmal ein dickes Dankeschön an FSE für die sang- und klanglose
  547.   Einstellung des Amiga-Supports. Danke, FSE!
  548.  
  549.   Aber genug des Zynischen, ein ganz großes Dankeschön an Maxon Computer,
  550.   Eschborn, für einen vorbildlichen Entwicklersupport. Danke, Maxon.
  551.  
  552.  
  553.  
  554. II. 44,1 kHz
  555.  
  556.   · Badesalz: Och joh!
  557.   · Badesalz: Nicht ohne meinen Pappa
  558.   · Badesalz: DiWoDaSo
  559.  
  560.   · Eric Clapton: Unplugged         \   `Boah, was'n Brett, unn die Giddar,
  561.   · Bruce Springsteen: (Un)Plugged   |   wie de Hendrix. Waahnsinn.'
  562.   · Neil Young: Unplugged           /
  563.  
  564.   · Emerson, Lake & Palmer: Live at the Royal Albert Hall
  565.   · Rush: Exit...stage left
  566.   · Deep Purple: Made in Japan
  567.   · Toto: Absolutely live
  568.  
  569.  
  570.  
  571. III. Epilog
  572.  
  573.   Aufkommende Fragen, Verbesserungsvorschläge und Lobeshymnen an
  574.  
  575.                               Björn E. Trost
  576.                           Auf dem Bännjerrück 39
  577.                            67663 Kaiserslautern
  578.  
  579.                                    bzw.
  580.  
  581.                               Dirk O. Remmelt
  582.                              Lutrinastraße 11
  583.                            67655 Kaiserslautern
  584.  
  585.  
  586.  
  587.   Kaiserslautern, im November 1993
  588.