/*/// Header
**
**  $VER: gcc.ged 0.005 (25 Feb 1995)  **
**
**    © 1995 Oliver Clouth
**
** Address : Asternweg 5 , 51399 Burscheid
**
**   eMail : O.CLOUTH@TOM.bergisch-land.sub.de
**
**   Phone : V+49-2174-60998
**
**
**  Aufruf :
**
**  gcc.ged CPU COM LANG
**
**
**  Optionen :
**
**  CPU :  000   ; option -m68000 wird eingefügt ; siehe dazu auch
**         020   ; option -m68020 wird eingefügt ; in die gcc
**         030   ; option -m68030 wird eingefügt ; anleitung
**         040   ; option -m68040 wird eingefügt ;
**         024   ; option -m68020-40 wird eingefügt ;
**
**
**  COM:   GCC   ; ruft gcc auf       (z.B. FreshFish-May94/Sep94)
**         233   ; ruft gcc-2.3.3 auf (z.B. FreshFish-May94/Sep94)
**         258   ; ruft gcc-2.5.8 auf (z.B. FreshFish-May94/Sep94)
**         260   ; ruft gcc-2.6.0 auf (z.B. FreshFish-Sep94)
**
**
**  LANG:  C     ; C_Config wird benutzt
**         C++   ; CPP_Config wird benutzt
**
**  $HISTORY:
**
**  25 Feb 1995 :   0.005 : 3. Argument LANG eingefürt, welches für die wahl des
**                          Configfiles benötigt wird.
**                          Damit liegt die wahl der Sprache nicht mehr bei COM
**                          und das ganze Script ist wesentlich kürzer geworden.
**
**  25 Feb 1995 :   0.004 : Einstellung über die files C_Config und CPP_Config
**                          möglich, die im Verzeichnis ENV: stehen müssen
**
**  23 Feb 1995 :   0.003 : Argument mit der Angabe der gcc version eingebaut,
**                          Dadurch ist das Compilieren von einem auf Festplatte
**                          oder auf CD-Rom instalierten gcc möglich.
**                          z.B. (FreshFish-Sep94)
**                          Und damit gleich die Option ob C oder C++
**
**  21 Feb 1995 :   0.002 : aufruf mit Argument welches die CPU festlegt
**  21 Feb 1995 :   0.001 : initial release
**
\\\*/

OPTIONS RESULTS                             /* enable return codes     */

if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
    address 'GOLDED.1'

'LOCK CURRENT'                              /* lock GUI, gain access   */
OPTIONS FAILAT 6                            /* ignore warnings         */
SIGNAL ON SYNTAX                            /* ensure clean exit       */

host = ADDRESS()                              /* get GED's port    */

/* ------------------------- INSERT YOUR CODE HERE: ------------------ */

options results
parse arg CPU COM LANG

/*/// "CPU" */

        IF CPU = 000 THEN
        do
          CPU = "-m68000"
          EXE = "000"
        end
        ELSE IF CPU = 020 THEN
        do
          CPU = "-m68020"
          EXE = "020"
        end
        ELSE IF CPU = 030 THEN
        do
          CPU = "-m68030"
          EXE = "030"
        end
        ELSE IF CPU = 040 THEN
        do
          CPU = "-m68040"
          EXE = "040"
        end
        ELSE IF CPU = 024 THEN
        do
          CPU = "-m68020-40"
          EXE = "024"
        end

/*\\\*/

/*/// "Compiler" */

        IF COM = GCC THEN
        do
          COM = "gcc"
        end
        IF COM = 233 THEN
        do
          COM = "gcc-2.3.3"
        end
        IF COM = 258 THEN
        do
          COM = "gcc-2.5.8"
        end
        IF COM = 260 THEN
        do
          COM = "gcc-2.6.0"
        end

/*\\\*/

'QUERY CAT'
isGerman = (result = "deutsch")

'QUERY ANYTEXT'

if (result = 'TRUE') then 

    do
        'QUERY DOC VAR OLDNAME'             /* remember current file name */
        
        'QUERY PATH Var PFAD'
        'QUERY FILE VAR FNAME'              /* Nur den Filenamen in Var FNAME */

          Name = left(FNAME, Pos('.', FNAME) - 1)
         NameB = PFAD || '/' || Name

        call pragma 'D', 'BIN:'    /* Aktuelles Verzeichnis wechseln */


        Code = EXISTS(Code)

        IF LANG = "C++" THEN
        do
          CONFIG = GETFILE('RAM:ENV/CPP_config')
        end
        ELSE IF LANG = "C" THEN
        do
          CONFIG = GETFILE('RAM:ENV/C_config')
        end

        say
        say COM OLDNAME CPU CONFIG '-o' NameB'.'EXE
        say

        shell
        call pragma 'Stack', 250000
        COM OLDNAME CPU CONFIG '-o' NameB'.'EXE

        say
        say
        say
        say 'FERTIG FERTIG'
        say


        ok = (RC = 0)

        shell                               /* address host (GoldED) */

        'NAME NEW ' || oldname              /* restore old file name */
    end

else do

    if (isGerman) then
        'REQUEST BODY="Kein Text vorhanden ?!"'
    else
        'REQUEST BODY="Text buffer is empty ?!"'
end

'UNLOCK' /* VERY important: unlock GUI */
Exit

  GetFile:PROCEDURE

    ARG envv

    filename= envv
    IF OPEN(fhandle,filename,"READ") THEN DO
      readed=READLN(fhandle);
      CALL CLOSE(fhandle);
    END;
    ELSE readed = "unset"

    RETURN readed

