Bemerkungen zu GNUShell ======================= Projektfiles ------------ Die GNUShell Projektfiles sind in ihrer Syntax an die Projektfiles von Pure/Turbo C angelehnt: Projektfile ::= Target + Optionen + '=' + { Source } Target ::= 'Targetfilename' Optionen ::= (CompilerOption) + (AssemblerOption) + (LinkerOption) CompilerOption ::= '.C' + '[' + { GnuOption } + ']' AssemblerOption ::= '.S' + '[' + { GnuOption } + ']' LinkerOption ::= '.L' + '[' + { GnuOption } + ']' GNUOption :== '-' + TEXT Source ::= SourceFilename + (Abh„ngigkeit) + SourceOption SourceFilename ::= 'Filename' Abh„ngigkeit ::= '(' + 'Filename' + { ',' Filename } + ')' SourceOption ::= '[' + { GNUOption } + ']' Beispiel: Projektfile: Mit dem folgenden Projektfile wurde z.B. die GNUShell bersetzt: # ========================= # Projektfile fuer GNUShell # ========================= GNUSHELL.PRG .C [ -c -O2 -ansi -mshort -D__TCC_COMPAT__ -Wall -Wconversion -Wmissing-prototypes -pedantic ] = GNUALLOC.C GNUENV.C GNUERR.C GNUFILE.C GNUINFO.C GNULEX.C GNULOG.C GNUMAKE.C GNUMENU.C GNUPATH.C GNUPARSE.C GNUSHELL.C GNUSHOW.C GNUTEXT.C GEM16.OLB GNU16.OLB Weitere Bemerkungen ------------------- Die Option ".C [-c]" sollte immer vorhanden sein. Eine laufende Compilation kann durch (wiederholten) Tastendruck abgebrochen werden. Dabei sollte nicht die Return-Taste verwendet werden, da eine Sicherheitsabfrage mit Defaultwert 'weiter' erfolgt. Registrierung ------------- GNUShell ist Shareware. Bei regelm"assiger Benutzung sind die Anwender verpflichtet, die Sharewaregeb"uhr von DM/sFr 20.- an folgende Adresse zu entrichten: Roland Sch„uble Dattikonstr. 2 CH-8730 Uznach Tel. (055) 72 41 34 Durch die Registrierung kommt der Anwender in den Genuss folgender Vorteile: Er wird von mir in die Liste der registrierten Anwender aufgenommen. Ein registrierter Anwender bekommt die zum Zeitpunkt der Registrierung aktuelle Version von GNUShell von mir zugesandt Zudem erh„lt er alle Sourcefiles und das Projektfile, mit dem GNUShell zusammengebaut werden kann (GNUShell kann sowohl mit dem GNU C-Compiler, wie auch mit Pure C bersetzt werden). Registrierte Anwender erhalten die Dokumentation zugesandt. Ein registrierter Anwender wird ber (wesentliche) Neuerungen von GNUShell unterrichtet. Ein registrierter Anwender kann jederzeit gegen Einsendung einer Leerdiskette die aktuelle Version von GNUShell bei mir beziehen. Bei Fragen und Problemen stehe ich im Rahmen meiner M”glichkeiten zur Verfgung. Anregungen ---------- Anregungen, Problemmeldungen und Verbesserungs- und Žnderungswnsche bitte an folgende Adresse: Roland Sch„uble Dattikonstr. 2 CH-8730 Uznach eMail: CZSRO@zcvx00.decnet.ascom.ch Bei Problemen bitte immer Versionsnummer und Konfiguration angeben. History ------- Version 1.1 2-Okt-1993 Erste gltige Ausgabe. Version 1.2 10-Okt-1993 šberprfung, ob Inputfiles aus Abh„ngigkeitsliste vorhanden. šberprfung, ob Sourcefile vorhanden. Korrektur Fehler, wenn GNUShell nicht auf gleichem Drive, wie Source. Neuer Menu-Eintrag "Edit .*". Fehlermeldung, wenn Projektfile nicht gefunden. Korrektur im Zusammenhang mit GDOS. Verbesserungen des Handling der Text-Windows. Version 1.3 4-Nov-1993 šbergabe der Filenamen in Kleinschrift bei Option Compile... Damit wird "file.cxx" als C++-Source erkannt und nicht als Library. Version 1.4 18-Nov-1993 Korrektur bei den Optionen "Compile" sowie "Compile & Link": Es wird jetzt -oFilename erzeugt und nicht mehr -o filename, was zu einem Fehler fhrte. Version 1.5 9-Dez-1993 Sichern des Info-Files unter anderem Filenamen funktioniert jetzt. Erweiterung User-Environment-Variablen. Ausgaben des Compilers auf stdout werden jetzt auch in das Message-Window umgeleitet. Letzter Pfad und Name bei Execute und Delete wird behalten. Mehr Flexibilit„t bei der Konfiguration des Editors. Beim Editieren von Sourcefiles kann z.B. ein vorhandenes Messagefile in den 2. Buffer genommen werden. Aus .MSG-Files werden .LOG-Files. Verbesserte Behandlung des Logwindow-"Fullers". Im Infofile sind sowohl die Namen der Environmentvariablen zu sehen, wie auch die Definition. Version 1.6 15-Dez-1993 Nach 'Execute' eines Programmes wird der Returnstatus angezeigt. Die Umleitung von stdout und stderr nach dem Compilieren oder Linken wird jetzt durch Schliessen von stdout und stderr rckg„ngig gemacht (funktioniert aber erst ab GEMDOS 0.15 korrekt). Infofile mit Namen versehen. Damit werden alte Info-Files nicht bei jeder Žnderung der Struktur unbrauchbar. Beim 'Execute' eines TTP-Programmes k”nnen jetzt Parameter bergeben werden. Version 1.7 2-Jan-1994 Fehler bei der Behandlung von Abh„ngigkeitslisten behoben. Der Datumsvergleich erfolgt jetzt zwischen dem Objektfile und dem File aus der Liste anstatt wie bisher zwischen dem Sourcefile und dem File aus der Liste. Das Logfile wird jetzt auf das Directory des Sourcefiles geschrieben, damit es der Editor immer finden kann. Weitere Probleme im Zusammenhang mit der Anzeige von Logfiles im Textwindow behoben. Neuer Menupunkt "Close Logwindows" eingefhrt. Peinlicher Fehler beim Setup des Environments behoben, der zu einem Endlosloop nach Drcken von OK fhrte. Nebst %s und %l ist jetzt auch %n=Zeilennummer als Editorparameter einstellbar. Version 1.8 1-Mar-1994 Logwindow wird bei Er”ffnung nicht mehr 2 mal gezeichnet. Problem bei mehr als 7 Logwindows behoben. Korrekte Verarbeitung von Pfadnamen, die '.' beinhalten. Optimierung beim Zeichnen der Logwindows. Listenverarbeitung effizienter. Version 1.9 11-Apr-1994 Fehler (GemDos Error 34) bei Compile & Link" bzw. "Link" von einem anderen Drive aus behoben. Version 2.0 29-Apr-1994 Schwerer Memory-Fehler bei der Behandlung von Textwindows behoben (Wahrscheinlich Ursache fr Probleme mit dem TT). Fehler beim Resize von Textwindows behoben. Abfrage bei "Quit" und Setup-Žnderungen. Compilation der Shell jetzt auch mit -pedantic etc. m”glich. GEMDOS-Fehlerprfung erweitert. Version 2.1 15-Jun-1994 Nur noch ein Logwindow mit allen Meldungen. Das Logwindow wird vor dem Start eines anderen Programmes geschlossen, damit wieder 7 Fenster "frei" sind. Der Menueintrag "Close Logwindows" entf„llt. Weniger Speicherbedarf fr das Logwindow. M”glichkeit, ein RCS (Resource Construction Set) einzubeziehen. Bei "Make all" werden nur noch diejenigen Files in der deleting... Box angezeigt, die tats„chlich vorhanden sind (und daher gel”scht werden). Als Argv-Parameter kann beim Starten ein Projektfile bergeben werden. Damit kann z.B. mit der Tera-Shell ein Projektfile auf GNUSHELL.PRG gezogen werden, womit es zum aktuellen Projektfile wird. Version 2.2 2-Jun-1994 Files mit der Extention ".o" bzw ".O" im Projektfile werden jetzt korrekt behandelt, d.h. nur gelinkt und nicht mehr als Libraries angesehen. Bekannte Probleme: Welcher Pfad soll bei 'Execute' eingestellt werden? Zur Zeit ist es der Pfad des auszufhrenden Programmes eingestellt. Damit k”nnen GEM-Programme ihre Resourcefiles finden. Andererseits ist dies z.B. fr GNU Make ein Hinderniss. In Zukunft... ...W„re es toll, wenn auf Doppelklick im Logwindow der Editor mit dem entsprechenden File auf der richtigen Linie gestartet werden k”nnte. ...K”nnte vielleicht GNU MAKE als Alternatives Make angeboten werden. Das Problem dabei ist, dass GNUShell keine Kommandoshell zur Verfgung stellt. GNU MAKE ist aber auf eine solche angewiesen. ...Sollte es eine M”glichkeit geben, den GNU Debugger zu verwenden. Zum Debuggen muss zweimal mit verschiedenen Optionen gelinkt werden k”nnen.