.ENABLE SUBSTITUTION .; DECUS C compiler build command file for native RSX-11M. .; By .; Bob Denny .; 17-Sep-80 .; .; Edit History .; 22-Sep-80 MM Edited for RSTS compatibility .; 14-Feb-81 RBD Added messages for RSX if no spawning .; 28-May-81 RBD Nullified above .; 10-Feb-82 MM Incorporated Unimation changes .; 05-May-82 RBD Added FPP floating fold stuff per JR Westmoreland .; 17-Oct-82 RBD Add check for CLI not MCR. Add query as to V3.2 .; so will use BIGMAC and BIGTKB. .; .; .; Modified for use under RSX-11M-Plus V4.0 .; by Volker Huck, 24-Aug-1988 .; ; MMAKCC.CMD ; ; Build Conroy's C compiler -- RSX-11M ; .SETS SYSTYP "RSX-11M" .IF EQ "RSX-11M" .GOTO SYSOK .IF EQ "RSX-11M-PLUS" .GOTO SYSOK .IF EQ "MICRO-RSX" .GOTO SYSOK ; ; You may not use SYSTEM '' to build DECUS-C compiler for ; native RSX. If you want to build DECUS-C compiler CC under ; VAX-11 RSX, use VMAKCC.COM instead. ; .EXIT -1 ; .SYSOK: .SETS TPR "" .;.ASK V32 Are you running on RSX-11M V3.2 .;.IFT V32 .SETS TPR "BIG" .IF = "3.2" .SETS TPR "BIG" .sets MCR "" .IF EQ "MCR" .GOTO 90 .IF EQ "DCL" .SETS MCR "MCR " .IF EQ "DCL" .GOTO 90 ; ; This command file must be run under MCR. Since "AT" will give ; confusing restart instructions (as will be for ''), MMAKCC will ; now exit. Type "@MMAKCC" when you have changed CLI's to MCR. ; .EXIT -1 .90: ; ; You must override the assignments in this file if you want the following ; logical devices to be assigned to other than SY: ; ; SR: Source and command files must be on this device. ; LS: Listings go to this device. ; OB: Objects go to this device. ; MP: Maps go to this device. ; OU: Task images go to this device. ; .TRANSLATE SR .IF EQ "" 'mcr'ASN SY:=SR: .TRANSLATE LS .IF EQ "" 'mcr'ASN NL:=LS: .TRANSLATE OB .IF EQ "" 'mcr'ASN SY:=OB: .TRANSLATE MP .IF EQ "" 'mcr'ASN SY:=MP: .TRANSLATE OU .IF EQ "" 'mcr'ASN SY:=OU: .;; .;.ASK OK Are the above assignments OK .;.IFT OK .GOTO 100 .;; .;; We will now pause so that you may change assignment(s)... .;.PAUSE .;.100: ; Normally, the compiler and assembler make use of the SXT instruction. It ; is present on most PDP-11's. If you have an 11/04, 11/05, 11/20, or ; any other processor that doesn't support SXT, you must edit the ; file RSX.MAC to comment out the following statement: ; C$$SXT = 1 ; so that the SXT is not used. ; ; Normally, the compiler presupposes that floating point constants ; and functions are, by default, double precision. To make the default ; single precision, you must edit the file RSX.MAC to change the statement ; C$$FLT = 0 to "C$$FLT = 1" ; ; If your system has FPP, you can enable code in the compiler which ; does extensive floating constant folding, which will result in more ; optimum machine code. To enable this feature, edit RSX.MAC to change ; the statement ; C$$FPP = 0 to "C$$FPP = 1" ; WARNING: The resulting compiler will NOT run on a non-FPP machine! ; .;.ASK OK Do you need to edit RSX.MAC .;.IFF OK .GOTO 110 .; .; We will now pause so that you may edit RSX.MAC... .;.PAUSE .;.110: ; ; NOTE: The CC/AS common modules will be saved in a file called ; OB:XCOMLB.OLB. This file is required for making the AS ; assembler. Do not delete it until AS is built! ; ; .;.SETS PAR "GEN" .;.ASK UMAP Will the compiler be running on an unmapped system .;.IFF UMAP .GOTO 120 .SETF UMAP .; .;.ASKS PAR Enter partition parameters TKB style [name:base:size] .SETS PAR "" .;.120: .;; .;.ASK FCSRES Task build with FCSRES shared library .;; ;Take a break. ; 'mcr'TIM ; Assemble the Compiler ; .IFNINS MAC 'mcr'INS $'TPR'MAC 'mcr'MAC OB:CC0HD,LS:CC0HD/-SP=SR:RSX,SR:CC0HD .IF NE 1 .GOTO 700 'mcr'MAC OB:CC0RT,LS:CC0RT/-SP=SR:RSX,SR:CC0RT .IF NE 1 .GOTO 700 'mcr'MAC OB:CC0GB,LS:CC0GB/-SP=SR:RSX,SR:CC0GB .IF NE 1 .GOTO 700 'mcr'MAC OB:CC000,LS:CC000/-SP=SR:RSX,SR:CC000 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC001,LS:CC001/-SP=SR:RSX,SR:CC001 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC002,LS:CC002/-SP=SR:RSX,SR:CC002 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC1GB,LS:CC1GB/-SP=SR:RSX,SR:CC1GB .IF NE 1 .GOTO 700 'mcr'MAC OB:CC100,LS:CC100/-SP=SR:RSX,SR:CC100 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC101,LS:CC101/-SP=SR:RSX,SR:CC101 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC102,LS:CC102/-SP=SR:RSX,SR:CC102 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC103,LS:CC103/-SP=SR:RSX,SR:CC103 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC104,LS:CC104/-SP=SR:RSX,SR:CC104 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC105,LS:CC105/-SP=SR:RSX,SR:CC105 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC2GB,LS:CC2GB/-SP=SR:RSX,SR:CC2GB .IF NE 1 .GOTO 700 'mcr'MAC OB:CC200,LS:CC200/-SP=SR:RSX,SR:CC200 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC201,LS:CC201/-SP=SR:RSX,SR:CC201 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC202,LS:CC202/-SP=SR:RSX,SR:CC202 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC202A,LS:CC202A/-SP=SR:RSX,SR:CC202A .IF NE 1 .GOTO 700 'mcr'MAC OB:CC203,LS:CC203/-SP=SR:RSX,SR:CC203 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC204,LS:CC204/-SP=SR:RSX,SR:CC204 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC205,LS:CC205/-SP=SR:RSX,SR:CC205 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC206,LS:CC206/-SP=SR:RSX,SR:CC206 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC207,LS:CC207/-SP=SR:RSX,SR:CC207 .IF NE 1 .GOTO 700 'mcr'MAC OB:CC300,LS:CC300/-SP=SR:RSX,SR:CC300 .IF NE 1 .GOTO 700 ; 'mcr'TIM ; Assemble the library ; 'mcr'MAC OB:LITOC,LS:LITOC/-SP=SR:RSX,SR:LITOC .IF NE 1 .GOTO 700 'mcr'MAC OB:LALLOC,LS:LALLOC/-SP=SR:RSX,SR:LALLOC .IF NE 1 .GOTO 700 'mcr'MAC OB:LASCR5,LS:LASCR5/-SP=SR:RSX,SR:LASCR5 .IF NE 1 .GOTO 700 'mcr'MAC OB:LC5TOA,LS:LC5TOA/-SP=SR:RSX,SR:LC5TOA .IF NE 1 .GOTO 700 'mcr'MAC OB:LDATE,LS:LDATE/-SP=SR:RSX,SR:LDATE .IF NE 1 .GOTO 700 'mcr'MAC OB:LEISBX,LS:LEISBX/-SP=SR:RSX,SR:LEISBX .IF NE 1 .GOTO 700 'mcr'MAC OB:LFDBTA,LS:LFDBTA/-SP=SR:RSX,SR:LFDBTA .IF NE 1 .GOTO 700 'mcr'MAC OB:LFLUSH,LS:LFLUSH/-SP=SR:RSX,SR:LFLUSH .IF NE 1 .GOTO 700 'mcr'MAC OB:LMEMDP,LS:LMEMDP/-SP=SR:RSX,SR:LMEMDP .IF NE 1 .GOTO 700 'mcr'MAC OB:LPUTBN,LS:LPUTBN/-SP=SR:RSX,SR:LPUTBN .IF NE 1 .GOTO 700 'mcr'MAC OB:LPUTXT,LS:LPUTXT/-SP=SR:RSX,SR:LPUTXT .IF NE 1 .GOTO 700 'mcr'MAC OB:LRDLIN,LS:LRDLIN/-SP=SR:RSX,SR:LRDLIN .IF NE 1 .GOTO 700 'mcr'MAC OB:LREWND,LS:LREWND/-SP=SR:RSX,SR:LREWND .IF NE 1 .GOTO 700 'mcr'MAC OB:LSAVRG,LS:LSAVRG/-SP=SR:RSX,SR:LSAVRG .IF NE 1 .GOTO 700 ; 'mcr'TIM ; Create the library ; .IFNINS LBR 'mcr'INS $LBR 'mcr'LBR OB:XCOMLB/CR=OB:LITOC,LALLOC,LASCR5,LC5TOA,LDATE,LEISBX .IF NE 1 .GOTO 700 'mcr'LBR OB:XCOMLB/IN=OB:LFDBTA,LFLUSH,LMEMDP,LPUTBN .IF NE 1 .GOTO 700 'mcr'LBR OB:XCOMLB/IN=OB:LPUTXT,LRDLIN,LREWND,LSAVRG .IF NE 1 .GOTO 700 ; ; 'mcr'TIM .; .; Test for different versions of FCS Library and set variables .; FCSRES and FCSFSL to correct value. .; .; .; Volker Huck .; 25-Aug-1988 .; .SETF fcsfsl ! Assume FSL false .SETF fcsres ! Assume RES false .TSTFSL: .TESTFILE lb:[1,1]fcsfsl.tsk ! Look for the FSL Library .IF NE 1 .GOTO tstres ! Not present, can''t use it .TESTFILE lb:[1,1]fcsfsl.stb ! Look for the symbol table .IF NE 1 .GOTO tstres ! Not present, can''t use it .SETT fcsfsl ! Now we have all needed for .; ! supervisor mode FCS support ; ; Task will be linked to Supervisor Mode FCS Library ; .GOTO DOIT .TSTRES: .TESTFILE lb:[1,1]fcsres.tsk ! Look for the RES Library .IF NE 1 .GOTO nores ! Not present, can''t use it .TESTFILE lb:[1,1]fcsres.stb ! Look for the symbol table .IF NE 1 .GOTO nores ! Not present, can''t use it .SETT fcsres ! Now we have all needed for .; ! resident FCS support ; ; Task will be linked to resident FCS-Library ; .GOTO DOIT .NORES: ; ; Task will be linked to normal FCS-Library ; .DOIT: ; ; Task build the compiler ; .OPEN SR:MCCBLD.TKB .IFF UMAP .DATA OU:CC/CP,MP:CC/-SP=SR:XCCBLD/MP .IFT UMAP .DATA OU:CC/CP/-MM,MP:CC/-SP=SR:XCCBLD/MP .ENABLE DATA ASG=TI:1 TASK=...XCC STACK=512 .DISABLE DATA .IFT FCSFSL .DATA SUPLIB=FCSFSL:SV .IFT FCSRES .DATA LIBR=FCSRES:RO .IFT UMAP .DATA PAR='PAR' ; ; Patching SYSINC to change "#include <...>" location, currently C: ; Must be set to LB:[1,1] for RSX-11M. The C: is apparently nice ; for VAX/VMS compatibility mode folks. (wouldn't it be nice ...) ; .DATA GBLPAT = CC000:SYSINC:41114:55472:26061:56461 .CLOSE ; .IFNINS TKB 'mcr'INS $'TPR'TKB ; 'mcr'TKB @SR:MCCBLD.TKB .IF NE 1 .GOTO 700 PIP SR:MCCBLD.TKB;*/DE PIP OB:*.OBJ;*/DE/NM,*.OB;* 'mcr'TIM ; ; Compiler built successfully. ; ; .EXIT .700: ; ; There has been an error. Please re-read the build instructions in ; the manual. ; .EXIT -1