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