

  Dokumentation zur GNU-Shell Version 1.0ž vom 29.08.92
  
  Da der GNU-C-Compiler unter UN*X entstand, ist die Bedienung normalerweise
  nur ber einen Commandline-Interpreter (z.B. Mupfel) m”glich.
  Aužerdem muž von dem CLI ein recht umfangreiches Environment gesetzt 
  werden, damit alle Programme die ben”tigten Dateien finden.
  
  Die GNU-Shell erm”glicht nun ein Arbeiten mit dem GNU-C-Compiler mit einer
  maus-orientierten Oberfl„che, wie man es vom ST gew”hnt ist.
  
  Die Shell ist PD. Jeder darf sie benutzen und weitergeben (das ist sogar 
  erwnscht !) 
  Ich erhoffe mir dadurch eine grože 'Anwendergemeinde' und viele neue 
  Anregungen. Aužerdem wurde die Shell noch nicht bis ins kleinste getestet, 
  es k”nnten also auch noch grobe Fehler durch sie verursacht werden.
  
  Ich bernehme keinerlei Haftung fr eventuelle Sch„den, die durch die 
  Shell entstehen.
  
  Alle Fragen, Anregungen und besonders Fehler bitte an:
  
  Christian Felsch
  Bevenser Weg 18
  2100 Hamburg 90
  
  E-Mail:  Christian Felsch @ HH  (MausNet)
                                                
 -------------------------------------------------------------------------
           
  Nun zur Beschreibung des Programms:
  
  1. Allgemeines
  -------------------
  
      Die Shell ist vollst„ndig in Megamax Modula2 geschrieben, unter 
      Verwendung der MAGIC von Peter Hellinger. Sie ist komplett maus-
      orientiert, kann aber auch mit der Tastatur bedient werden.
      Zur Shell geh”ren folgende Dateien:
  
        GNUSHELL.PRG         die eigentliche Shell
        GNUSHELL.RSC         die Resource dazu
    
        GNUSHELL.INF         Inf-Datei mit Einstellungen, Pfaden, usw.
        GNUSHELL.TXT         dieser Text
        HISTORY.TXT          Entwicklung der GNU-Shell
  
  
      Die Shell geht davon aus, daž die GNU-Binaries mit den ursprnglichen
      Dateinamen vorliegen. Das Einstellen anderer Namen ist im Moment 
      noch NICHT m”glich !
      Es werden folgende Dateien als vorhanden vorrausgesetzt:
   
                gcc.ttp        C Compiler 
                g++.ttp        C++ Compiler : nur bei Version 1.x
                make.ttp       Make
      
      Ab der Compilerversion 2.0 gibt es nur noch 'gcc.ttp' als Compiler-
      treiber, im Gegensatz zur Version 1.4, bei der es noch einen Treiber
      fr C und einen fr C++ gibt.
      Die GNU-Shell entscheidet anhand der Quelltext-Extension, ob es sich
      um ein C oder ein C++ Programm handelt. Die Extension fr C ist *.C,
      fr C++ *.CC .
      
                
  2. Die Desktop-Box
  -------------------
      
      Bei dieser Box handelt es sich um eine Dialogbox, die wie ein 
      normales GEM-Fenster arbeitet. Sie erleichtert die Bedienung der 
      GNU-Shell, da sie die wichtigsten Funktionen zum Arbeiten mit GCC 
      direkt, und nicht ber Umwege wie z.B. Mens, zur Verfgung stellt.
      
      Die Funktionen sind mit der Maus anzulicken und teilweise auch ber 
      eine entsprechende Funktionstaste zu erreichen.
      
      Folgende Funktionen stehen zur Verfgung:
      
        Arbeitsdatei   : Wird mit der Maus auf das Editfeld geklickt,
                         erscheint eine Fileselectbox und man kann hier 
                         die gewnschte C-Quelldatei ausw„hlen. In der 
                         Deskbox wird nur der Name angezeigt, intern wird 
                         aber natrlich auch der Pfad mit verarbeitet.
                         
        Makefile       : Auswahl des aktuellen Makefile. (wie Arbeitsdatei)
                            
        Editor   (F1)  : Es wird der Editor gestartet. An ihn wird die
                         aktuelle Arbeitsdatei (ggf. auch die Errordatei)
                         bergeben. 
                         Einige Editoren bieten die M”glichkeit sie mit 
                         einem Exit-Code zu verlassen. Die GNU-Shell unter-
                         sttzt z.Z. folgende Codes: 
                          -1 : Compiler mit aktueller Arbeitsdatei starten
                          -2 : Make mit aktuellem Makefile starten
                            
        Compiler (F2)  : Es wird der Compiler mit der aktuellen Arbeits-
                         datei gestartet. Die eingestellten Optionen 
                         werden bercksichtigt. 
                         Der Pfad fr den BIN-Ordner muž gesetzt sein !
                         Die Shell erkennt selbst„ndig, ob der C oder der 
                         C++ Compiler ben”tigt wird (Compiler-Version 1.x)
                            
        Make     (F3)  : Bisher wird hier nur das 'make.ttp' mit dem aktu-
                         ellen Makefile gestartet.
                         
        Starten  (F4)  : Ist das Programm bereits bekannt (nach einem vor
                         rangegangenen Compilerlauf) wird es sofort ge-
                         startet, sonst kommt eine Fileselectbox.
                         In dem Kasten unter dem Buton wird das letzte
                         bersetzte oder ausgefhrte Programm angezeigt.   
       
                            
  2. Das Men
  ----------------- 
  
      Die Meneintr„ge k”nnen auch durch die Tastatur aktiviert werden.
      Hierbei bedeutet z.B. '^Q' Ctrl-Q und 'C' Alt-C
        
  
  2.1 Datei 
    
      -Programme starten  
      
        Hier kann ein beliebiges Programm gestartet werden. 
        Das Programm wird in dem eingestellte Environment gestartet.
        Wird ein Programm mit der Endung TTP gew„hlt, hat man ie M”glich-
        keit, eine Argumentzeile an dieses zu bergeben. In der erschein-
        den Dialogbox kann man Argumente direkt eingeben oder ber eine
        Fileselectbox einen Dateinamen finden. Klick man dann 'starten'
        an, wird an das Programm der Inhalt der Edit-Zeile bergeben.
                                   
      -Ende               
      
        Beendet die GNU-Shell OHNE weitere Abfragen.
      
  
  2.2 Parameter
      
      -Environment        
      
        In dieser Box werden die Pfade fr das Environment eingestellt.
        Die Pfade bei Standard-Environment mssen immer gesetzt sein,
        da sonst eine einwandfreie Benutzung des Compilers nicht m”glich 
        ist !
        
        Zum Žndern der Pfade k”nnen diese direkt ber die Tastatur einge-
        geben werden, oder aber man klickt auf den entsprecheneden Button 
        und w„hlt den Pfad mit einer Fileselect-Box.
        
        Editor     : Hier wird nicht nur der Pfad, sondern auch der 
                     Programmname angegeben.
                
        BIN        : Ordner, in dem sich alle Binaries (gcc.ttp, u.s.w.)
                     befinden.
                
        INCLUDE    : Der Ordner fr die Standard-Include-Dateien
      
        INCLUDE C++: Der Ordner fr die Include-Dateien von C++
      
        INCLUDE SYS: Der Ordner fr die Sys-Include. Er befindet sich 
                     meistens bei den Standart-Includes.
        
        Von der GNU-Shell werden folgende Environment-Variablen gesetzt:
        GCCEXEC, GNULIB, GNUINC und TEMP entsprechend der get„tigten 
        Eingaben.

        Aužerdem noch:
         CFLAGS -I.
         
        Zus„tzlich zu dem Standard-Environment k”nnen im unteren Teil der
        Box weitere Environment-Variablen gesetzt werden.
        Die hier get„tigten Eintragungen werden NICHT berprft, d.h. sie
        werden so ins Environment eingetragen.
        Eine Eintragung kann z.B. so aussehen:
              
              PFADXY=c:\xy\
              
        Es k”nnen max. 3 zus„tzliche Eintragungen gemacht werden, d.h.
        pro Zeile nur 1 Variable !
        
        Fr eine einwandfreie Benutzung des 'make' wird das Setzen der
        Variablen PATH dringent empfohlen !
        
                     
      -Compiler          
      
        Hier werden alle Compiler-Optionen eingestellt bzw. eingegeben.
        
        Verwendeter
        Compiler      : Hier wird die verwendete Compilerverion eingestellt.
                        Dies ist notwendig, da es zwischen den Versionen 
                        einige Unterschiede gibt, z.B. ist bei Ver. 2.1 eine
                        zus„tzliche Optimierungsoption vorhanden, die der
                        1.4-Compiler nicht kennt.
                          
        Outfile-Name  : Hier wird der Dateiname eingegeben, den der Compiler
                        erzeugen soll. Wird als erste Zeichen ein '*' ein-
                        gegeben, wird der Name des Quelltextes bernommen 
                        und die nach dem '*' folgende Extension angeh„ngt.
                        z.B. *.TOS : TEST.C -> TEST.TOS
                        Wenn das erste Zeichen kein '*' ist, wird der ein-
                        gegebene Text als vollst„ndiger Name bernommen.
                        z.B. A.OUT : TEST.C -> A.OUT
                       
        zus. Linkfiles: Wird diese Option angeschaltet, werden die folgenden
                        Libraries zum Programm dazugelinkt.
                        Es drfen hier nur die Namen der Libraries durch
                        Komma getrennt eingegeben werde, also z.B.
                                 gem,pml
        
        sons. Optionen: Hier k”nnen noch zus„tzliche Optionen eingegeben
                        werden. Sie mssen die bekannte Form aufweisen:
                        Am Anfang '-' und untereinander durch ' ' getrennt.
                    
        Die anderen Optionen erkl„ren sich von selbst, fr genauere Er-
        kl„rungen verweise ich auf die GNU-Dokumentation.
        Wenn die Option Preprozessor gew„hlt wird, wird beim Compilerstart
        lediglich der Preprozessor ausgefhrt. Das Ergebnis liegt dann in 
        einer Datei mit dem alten Namen und der Extension '._P', z.B.
               DEMO.C  -> DEMO._P
        
        
      -Allgemeines       
      
        Die hier vorhandenen Einstellungen beziehen sich z.Zt nur auf den
        Editor.
        
        Editor resident: Es besteht die M”glichkeit (natrlich nur, wenn
                         gengend Speicher vorhanden ist) den angemeldeten
                         Editor resident in den Speicher zu laden.
                         Da sich dann der Editor schon im Speicher befindet,
                         erspart man sich das st„ndige Laden vom Laufwerk.
                         Ist es angeschaltet, wird nach dem Verlassen der 
                         Box mit OK der Editor geladen.
                         Hatte man den Editor im Speicher und schaltet man
                         es wieder aus, wird der Editor aus dem Speicher
                         entfernt.
                         
        Startpfad      : Bei vielen Editoren ist es m”glich, Einstellungen,
                         Makros u.s.w. zu speichern. Wenn man nun eine 
                         spezielle C-Makrodatei fr den Editor nur mit der
                         GNU-Shell benutzen m”chte, legt man diese in den
                         Ordner, in dem sich die Quelltexte befinden.
                         Ist nun 'Source-Pfad' angeschaltet, wird vor dem 
                         Start des Editors der aktuelle Pfad auf das Quell-
                         textverzeichnis gesetzt, und der Editor findet das
                         C-Makro. Ist dagegen 'Editor-Pfad' eingestellt, ist
                         der Pfad des Editors der aktuelle und es wird eine
                         sich eventuell dort befindende Datei geladen.
                         
        Fehlermeldungen: Wenn beim šbersetzen eines Quelltextes Fehler auf-
                         treten, erscheinen diese NICHT auf dem Bildschirm,
                         sondern werden in der Datei 'GNU.ERR' abgelegt.
                         Diese Datei befindet sich dann in dem Verzeichnis,
                         in dem sich auch die Quelltexte befinden. 
                         Ist nun 'Start des Editors' gew„hlt, wird, falls
                         die Fehlerdatei vorhanden ist, nach Beendigung 
                         des šbersetzens der Editor gestartet. An ihn
                         werden dann die Quelltext-und die Fehlerdatei ber-
                         geben.
                         Wenn man 'Warnmeldung' anschaltet, weist nur eine
                         Alertbox auf aufgetretene Fehler hin. Die Fehler-
                         datei ist dann trozdem vorhanden.
                         
                         Wenn der Compiler keine Fehler meldet, wird die
                         Fehlerdatei wieder gel”scht.
                        
                         
      -sichern           
      
        Hiermit werden alle Einstellungen gesichert.
        Die entstehende Datei 'GNUSHELL.INF' wird beim Starten der Shell
        in dem Startverzeichnis gesucht und, falls vorhanden, geladen.
        Sollte diese Datei einmal fehlen, wird man darauf hingewiesen,
        und muž alle Einstellungen neu vornehmen. 
        
        Wurde die Option 'Editor resident' gew„hlt, und diese auch ge-
        speichert, wird nach dem Starten der Shell der Editor in den 
        Speicher geladen.
        
  
  So, das w„re die Beschreibung der GNU-Shell.
  Es wird noch viele Dinge geben, die besser gemacht werden k”nnten.
  Aužerdem habe ich die Shell noch nicht ausgiebig testen k”nnen, da 
  ich noch nicht soviel von C weiž.
  
  Ich hoffe viele Anregungen, Fehlerberichte und sonstige Reaktionen
  zu diesem Programm zu bekommen, damit ich auch in Zukunft Verbesserungen
  und Korrekturen anbringen kann.
  
  
  Hamburg, 29.8.92
  
  Christian Felsch
  