home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / langs / f77.lzh / F77.DOC < prev    next >
Encoding:
Text File  |  1992-01-23  |  8.9 KB  |  220 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                   םגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג™
  7.                   ø                                               ø
  8.                   ø  ף∞∞∞∞ ∞∞∞∞ף ∞∞∞∞ף   Ein Compiler-Driver für  ø
  9.                   ø  ףץץץ     ץ∞    ץ∞     BC-Fortran-77 V1.3c    ø
  10.                   ø  ף      ץ∞    ץ∞           Version 0.12       ø
  11.                   ø  ∞      ∞     ∞        (C)1992, U. Bartelt    ø
  12.                   ø                                               ø
  13.                   ijגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגך
  14.                 
  15.  
  16.  
  17.  
  18.  
  19.         Ättänschn !!!
  20.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  21.  
  22.         Dies Programm ist Freeware und frei jeglicher Versprechen
  23.         meinerseits.
  24.         - Es darf nicht verkauft werden, in PD-Sammlungen aufgenommen werden
  25.           oder auf eine andere Art dem Geldverdienen Dritter dienen.
  26.         - Ich verspreche nichts !!!
  27.           Nichteinmal, daß das Programm funktioniert oder den Rechner
  28.           unbeschadet läßt...
  29.  
  30.  
  31.  
  32.         Was, wie, warum, wozu ?
  33.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  34.  
  35.         Vor einiger Zeit lief mir mal der von André Köstli stammende
  36.         Fortran-77-Compiler über den Weg. (BC-Fortran-77 Version 1.3c)
  37.         Der sah ja auch ganz nett aus...
  38.         Aber er hatte ein paar Schwachstellen (in meinen Augen)...
  39.  
  40.            1. Er verlangte eine nicht meiner Directory-Philosophie konforme
  41.               Installation auf der Festplatte.
  42.            2. Außerdem hatte ich keine Lust, immer Compiler und Linker
  43.               nacheinander aufzurufen. Ich bin halt an die üblichen
  44.               C-Compiler-Driver gewöhnt, und die können das auch anders...
  45.            3. Ich konnte mir die Optionen des Compilers und des Linkers
  46.               einfach nicht merken. Das liegt auch wieder daran, daß die
  47.               üblichen C-Compiler-Driver zumindest bei den wichtigsten
  48.               Optionen einen Quasi-Standard einhalten...
  49.  
  50.         So entstand dann --- als Quickhack --- F77.TTP, um diese drei Punkte
  51.         zumindest halbwegs akzeptabel zu lösen...
  52.  
  53.  
  54.  
  55.         How 2 install...
  56.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  57.  
  58.         Der BC-Fortran'sche Lieferumfang besteht aus den folgenden Dateien:
  59.  
  60.            1) Fortran-77-Compiler      BCF.TTP
  61.            2) Linker                   BCL.TTP
  62.            3) Basis-Library            BCRTSY.B
  63.            4) Mathematik-Library       MATHLIB.B
  64.            5) Kurzanleitung            LIES.TXT
  65.  
  66.            (Nur wenn alle diese Files komplett weitergegeben werden, ist die
  67.            Verbreitung von BC-Fortran erlaubt.)
  68.  
  69.         Gemäß meiner Directory-Struktur liegen
  70.  
  71.            - Compiler und Linker im Verzeichnis "c:\bin\bcf\"
  72.            - Die Libraries im Verzeichnis "c:\lib\bcf\"
  73.  
  74.         und die Environment-Variablen "BCF_EXEC" und "BCF_LIB" werden auf
  75.         diese Pfade eingestellt. Dies geschieht sinnigerweise im Profile der
  76.         Lieblings-Shell oder mit einem im Auto-Ordner liegenden Programm,
  77.         das ein Environment initialisiert.
  78.         Weiter wird entweder "F77.TTP" in ein Verzeichnis gesteckt, das in
  79.         der Environment-Variable "PATH" vorkommt oder man bedient sich eines
  80.         ALIASes oder ähnlicher Funktionen, um "F77.TTP" griffbereit zu
  81.         halten.
  82.  
  83.         In "MUPFEL.MUP" oder "GULAM.G" stände also
  84.  
  85.            setenv BCF_EXEC c:\bin\bcf         # mit oder ohne "\" am Ende
  86.            setenv BCF_LIB  c:\lib\bcf
  87.            alias  f77      c:\bin\bcf\f77.ttp # oder die MUPFELsche "HASH"-
  88.                                               # Funktion benutzen.
  89.  
  90.         Bei anderen Shells mag das eventuell anders aussehen, aber wer
  91.         regelmäßig seine Shell benutzt, wird zumindest in der Lage sein,
  92.         dies der Syntax seiner Shell anzupassen...
  93.  
  94.            Ist BCF_EXEC nicht definiert, so sucht F77.TTP in den durch PATH
  95.            angegebenen Directories nach Compiler und Linker.
  96.            Man könnte also die drei TTPs einfach in ein "Standard"-Programm-
  97.            Directory kopieren und dies im PATH eintragen.
  98.  
  99.  
  100.  
  101.         F77 aufrufen...
  102.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  103.  
  104.         Zunächst einmal ein paar Beispiele:
  105.  
  106.            1. f77 test.f
  107.               - Compiliert "test.f" zu "test.b". An den Compiler wird die
  108.                 Option -U übergeben, was dazu führt, daß nicht zwischen
  109.                 Groß- und Kleinschreibung in Namen unterschieden wird.
  110.                 (Dies erschien mir sinnvoll als Default, denn es entspricht
  111.                  dem, was man von Fortran so gewöhnt ist.)
  112.               - Konnte "test.b" korrekt generiert werden, so wird der Linker
  113.                 instruiert, "test.b" und "mathlib.b" zu einem Programm
  114.                 zusammenzubinden. Dies heißt dann "test.prg" und liegt schön
  115.                 brav neben dem Quelltext...
  116.                 ("mathlib.b" wird defaultmäßig eingebunden, denn Fortran-
  117.                  Programme sollen ja haupsächlich RECHNEN...
  118.                  Dies kann auf Wunsch unterbleiben, dann ist die Option -r
  119.                  anzugeben.)
  120.  
  121.            2. f77 -c test.f
  122.               - Jagt "test.f" nur durch den Compiler. Der Linker wird nicht
  123.                 bemüht, es entsteht lediglich ein neues "test.b" (so man
  124.                 keinen Müll getippt hat)...
  125.  
  126.            3. f77 test.b
  127.               - Jagt "test.b" durch den Linker. (siehe bei 1.)
  128.  
  129.            4. f77 myprog.b mysubs.b
  130.               - Die beiden angegebenen Module werden mit der Mathe-Library
  131.                 zusammen zu einem Programm gelinkt. Dies hat dann den Namen
  132.                 der ersten Datei, also "myprog.prg".
  133.  
  134.            5. f77 myprog.f mysubs.f
  135.               - Ähnlich Beispiel 4, jedoch werden die angegebenen Quelltexte
  136.                 erstmal einzeln durch den Compiler genudelt.
  137.                 War dies erfolgreich, so werden sie wie in Beispiel 4 weiter-
  138.                 verarbeitet...
  139.  
  140.         Das sollte zunächst an Beispielen reichen.
  141.  
  142.         Ehrlicherweise muß ich noch nachtragen, daß die Library "bcrtsy.b"
  143.         immer vom Linker eingebunden wird.
  144.         (Muß ja auch sein, damit alles läuft...)
  145.  
  146.  
  147.  
  148.         Die Optionen von F77.TTP...
  149.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  150.  
  151.         ...noch werden nicht alle Optionen des BC-Fortrans von F77.TTP
  152.         bedient.
  153.         Aber das wird sich evolutionär ändern...
  154.  
  155.         Momentan werden folgende Optionen erkannt:
  156.  
  157.            -c   compile only
  158.            -f   no casefolding, distinguish upper and lowercase
  159.            -g   compile with debug code
  160.            -n   no actions, only show commands...
  161.            -O   optimize (currently only optimizes linking)
  162.            -r   don't link with MATHLIB.B
  163.            -sn  set stack size to n kBytes
  164.            -v   verbose compile and link
  165.            -vc  verbose compile
  166.            -vl  verbose link
  167.  
  168.         ...und noch zwei weitere, aber darauf wäre ja jeder selbst gekommen.
  169.         ...oder etwa nicht ?
  170.  
  171.            -?   helptext
  172.            -h   helptext
  173.  
  174.         Dem alten BC-Fortran-Hasen fällt natürlich sofort auf, daß dies
  175.         nicht die üblichen Optionen von BCF und BCL sind.
  176.         Schaut man sich aber mal die Optionen gängiger C-Compiler-Driver an,
  177.         so fällt sofort auf, daß ich versucht habe, die Optionen ähnlich zu
  178.         gestalten.
  179.  
  180.         So soll es auch bleiben. Amen !
  181.  
  182.  
  183.  
  184.         Bugs
  185.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  186.  
  187.         - Scheinbar geben BCF und BCL keine Fehlercodes zurück...
  188.           Nach einer erfolglosen Compilierung wird also dennoch der Linker
  189.           bemüht.
  190.           Dieser nörgelt dann natürlich an, er könne sein File nicht finden.
  191.              Das wird eventuell später mal durch eine FILEEXIST()-Abfrage
  192.              abgefangen werden...
  193.  
  194.         - Mit BC-Fortran erstellte Programme laufen nicht sauber im Konsole-
  195.           Fenster von GEMINI. Vom Desktop aus ge-doppelklick-startet, machen
  196.           sie keine Probleme. Benamst man sie einfach zu TOS-Programmen um,
  197.           so machen sie auch im Konsole-Fenster keinen Ärger.
  198.              Hieran werde ich nichts ändern, denn es ist durch einen kleinen
  199.              Patch in BCL.TTP behebbar...
  200.              Einen File-Monitor (z.B.: SED von der Kleisterscheibe) nehmen
  201.              und in BCL.TTP die Zeichenfolge ".prg" suchen und durch ".tos"
  202.              ersetzen !
  203.  
  204.  
  205.  
  206.         Ausklang
  207.         גגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגגג
  208.  
  209.         Hab ich nun alles Wichtige erwähnt ?
  210.         Ich hoffe ja...
  211.  
  212.         Falls doch nicht, einfach mal melden bei:
  213.  
  214.            Ulf Bartelt
  215.  
  216.            Fido       : 2:241/4530.2
  217.            Earn/Bitnet: stub @ dcztu1
  218.            Internet   : stub @ ibm.rz.tu-clausthal.de
  219.  
  220.