.; RSX-11M Executive Extensions Library build command file.
.; By
.;	Bob Denny
.;	 9-FEB-82
.;
.; 9-Feb-82 Added hacks for AST handling
.;
.; Note: EXIT.MAC has been moved to the "standard" library.
.; Some of these directives will not build on earlier versions
.; of RSX-11M (or IAS or RSTS/E).
.;
.; 21-Oct-82 (RBD) New V4.0 library and build procedure.
.;
.; 11-Jun-84 (RBD) New '11M/M+ and P/OS combined library.  Now has
.;		   conditional code in a few modules (e.g., WIMP).
;
; Build the RSX-11M/M+ Executive C Extensions Library CX.OLB.
;
.ENABLE SUBSTITUTION
.SETS SYSTYP "RSX-11M"
.IF <SYTYP> EQ "RSX-11M" .GOTO SYSOK
.IF <SYTYP> EQ "RSX-11M-PLUS" .GOTO SYSOK
.IF <SYTYP> EQ "MICRO-RSX" .GOTO SYSOK
;
;	You may not use SYSTEM '<SYTYP>' to build DECUS-C RSX11M/M+
;	Executive extensions for native RSX. If you want to build
;	CX.OLB under VAX-11 RSX, use MXMAK.COM instead.
;
.EXIT -1
;
.SYSOK:
.SETS MCR ""
.IF <CLI> EQ "MCR" .GOTO 90
.IF <CLI> EQ "DCL" .SETS MCR "MCR "
.IF <CLI> EQ "DCL" .GOTO 90
;
; This command file must be run under MCR.  Since "AT" will give
; confusing restart instructions (as will be for '<CLI>'), MXMAK will
; now exit.  Type "@MXMAK" 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 <EXSTRI> EQ "" 'mcr'ASN SY:=SR:
.TRANSLATE LS
.IF <EXSTRI> EQ "" 'mcr'ASN NL:=LS:
.TRANSLATE OB
.IF <EXSTRI> EQ "" 'mcr'ASN SY:=OB:
.TRANSLATE MP
.IF <EXSTRI> EQ "" 'mcr'ASN SY:=MP:
.TRANSLATE OU
.IF <EXSTRI> EQ "" 'mcr'ASN SY:=OU:
;
;Take a break.
;
'mcr'TIM
;
	.IFNINS ...MAC 	INS $MAC
	.IF	<EXSTAT> NE <SUCCES>	.GOTO 1000
	.IFNINS ...PIP	INS $PIP
	.IF	<EXSTAT> NE <SUCCES>	.GOTO 1000
	.IFNINS ...LBR	INS $LBR
	.IF	<EXSTAT> NE <SUCCES>	.GOTO 1000
.;
;
; This library may be built for RSX-11M, RSX-11M+, Micro-RSX or P/OS.
; Most system services are common to all of the above systems, but
; several services are specific to one or more operating systems.
.; In order for this library to build without errors, you must specify
.; which system you are running under:
.;
.;     CODE      SYSTEM
.;     -------------------------
.;	1	RSX-11M
.;	2	RSX-11M PLUS
.;	3	Micro-RSX
.;	4	P/OS (Professional 350) Native Toolkit
.;	5	P/OS Host Developer's Toolkit (VMS or RSX)
.;
.SETF HTKIT
.SETS LIBDIR "LB:[1,1]"
.SETS LIBNAM "CX"
.SETS ASMNAM "MAC"
.;.ASKN [1:5:1] SYSCOD Enter code for your system
.IF <SYTYP> = "RSX-11M" .SETN SYSCOD 1
.IF <SYTYP> = "RSX-11M-PLUS" .SETN SYSCOD 2
.IF <SYTYP> = "MICRO-RSX" .SETN SYSCOD 3
.IF SYSCOD <> 5 .GOTO LAB1
.SETT HTKIT
.SETS LIBDIR "LB:[1,5]"
.SETS ASMNAM "PMA"
.SETS LIBNAM "PCX"
;	NOTE:	The extensions library will be generated for P/OS and
;		placed in your host toolkit library directory 'LIBDIR'.
;		In addition, to avoid confusion, it will be named
;		'LIBNAM'.OLB.
;
.LAB1:
.OPEN SYS.MAC
.IF SYSCOD = 1 .DATA RSX=0
.IF SYSCOD = 2 .DATA RSXMPL=0
.IF SYSCOD = 3 .DATA MICRSX=0
.IF SYSCOD = 4 .DATA POS=0
.IF SYSCOD = 5 .DATA POS=0
.CLOSE
;
; We need to delete all (old) object files now.
'mcr'PIP *.OBJ;*/DE/NM
;
; Assemble the CX library modules
;
.IFNINS 'ASMNAM' 'mcr'INS $'ASMNAM'
.IF <EXSTAT> <> 1 .GOTO ERROR
'mcr' 'ASMNAM' @CXMAC
'mcr'PIP SYS.MAC;*/DE/NM
.IF <EXSTAT> NE 1 .GOTO ERROR
;
; Merge the objects into a single file and
; create the 'LIBNAM' library locally.
;
'mcr'PIP 'LIBNAM'.OB=*.OBJ
.IF <EXSTAT> NE 1 .GOTO ERROR
'mcr'LBR 'LIBNAM'/CR:45.='LIBNAM'.OB
.IF <EXSTAT> NE 1 .GOTO ERROR
'mcr'PIP *.OBJ;*/DE/NM,'LIBNAM'.OB;*
.IF <EXSTAT> NE 1 .GOTO ERROR
;
;
'mcr'PIP LB:[1,1]/FO/CO/NV='LIBNAM'.OLB
.IF <EXSTAT> NE 1 .GOTO ERROR
'mcr'PIP 'LIBNAM'.OLB;*/DE
'mcr'PIP LB:[1,1]/NV/NM=*.H
.IF <EXSTAT> NE 1 .GOTO ERROR
'mcr'PIP LB:[1,1]*.h/pu/nm
;
'mcr'TIM
;
; DECUS-C RSX11M/M+ Executive extension Library Build succesfully completed.
;
.EXIT <SUCCES>
.1000:
.ERROR:
;
; An error has occurred.  Fix the problem and
; try again.
;
.EXIT -1
