home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------------------------------
- :Program. Cmd.ced
- :Contents. Start Oberon tools with CygnusEd Professional
- :Author. Kai Bolay [kai]
- :Address. Snail-Mail: E-Mail:
- :Address. Hoffmannstraße 168 UUCP: kai@amokle.tynet.sub.org
- :Address. D-7250 Leonberg 1 FIDO: 2:247/706.3
- :History. v1.0 [kai] 12-Mar-92
- :History. v1.1 [kai] 26-Mar-92 (+ first error after compilation
- :History. + show error only if error)
- :History. v1.2 [kai] 05-May-92 (+ check for returnvalue, + make)
- :Version. $VER: Cmd 1.2 (05-May-92)
- :Copyright. FD
- :Language. ARexx
- :Translator. RexxMast
- :Remark. LibLink, Execute, etc. not supported yet
- :Bugs. CygnusEd crashes when "address command execute" fails
- ------------------------------------------------------------------------ */
-
- options results
-
- arg tool
-
- select
- when tool = "COMPILE" then do
- scriptname = "T:Compiler-Start"
- save
- end
- when tool = "MAKE" then do
- scriptname = "T:Make-Start"
- save
- end
- when tool = "LINK" then do
- scriptname = "T:Linker-Start"
- end
- otherwise do
- Okay1 "Fehler: Falscher Aufruf!"
- exit
- end
- end
-
-
- status 21 /* Nur Filnamen (ohne Pfad) holen */
- filename = result
-
- if filename = "" then do
- Okay1 "Fehler: Kein Filename"
- exit
- end
-
- if right(filename,4) ~= ".mod" then do
- Okay1 "Fehler: Filename endet nicht auf '.mod'"
- exit
- end
- filename = left(filename,length(filename)-4)
-
- status 20 /* Nur Pfad (ohne Filenamen) holen */
- path = result
-
- if length(path) > 3 then do
- if right(path,3) = "txt" then do
- path = left(path,length(path)-3)
- end
- end
-
- if ~open(script,scriptname,'W') then do
- Okay1 "Fehler: Kann Script nicht öffnen"
- exit
- end
-
- call writeln(script,"FailAt 100")
- call writeln(script,"Stack 20000")
- call writeln(script,"CD" path)
- window = ">CON:0/100//200/Oberon/SCREENCygnusEdScreen1"
- select
- when tool = "COMPILE" then do
- cmd = "Oberon" window AddOpts("-", "OberonOpts")
- end
- when tool = "MAKE" then do
- cmd = "OMake" window AddOpts("c-", "OberonOpts") AddOpts("l-", "OLinkOpts")
- end
- when tool = "LINK" then do
- cmd = "OLink" window AddOpts("-", "OLinkOpts")
- end
- end
- cmd = cmd filename
-
- call writeln(script,cmd)
-
- if ~close(script) then do
- Okay1 "Fehler: Kann Script nicht schließen"
- exit
- end
-
- address command Execute scriptname
-
- if RC ~= 0 then do
- if tool = "COMPILE" then do
- address REXX "OBERON:rexx/Err.ced FIRST"
- end; else do
- Okay1 "Fehler: Aufruf fehlgeschlagen!"
- end
- end
-
- exit
-
- AddOpts:
- parse arg switch,name
- opts = getclip(name)
- if opts ~= "" then opts = switch || opts
- return opts
-