.ENABLE SUBSTITUTION
.; DECUS-C Useful Library Documentation build command file for native RSX-11M.
.; By
.;      Volker C. Huck
.;      14-Oct-88
.;
;
; MULDOC.CMD
;
; Build Useful Library Documentation -- RSX-11M
;
; Change at your own risk:
;
	.SETT	wizard
	.SETT	normal
	.SETT	usage
;
	.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 Useful Library
;	scanner for native RSX. If you want to build DECUS-C Useful Library
;	under VAX-11 RSX, use VMKCU.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>'), MULDOC will
; now exit.  Type "@MULDOC" 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
;
; Build Useful Library Documentation
;
	.IFNINS ...GTR	'mcr'INS [5,26]GETRNO/TASK=...GTR/CKP=YES
	.IFNINS ...GTR	.GOTO 1000
	.IFNINS ...GTK	'mcr'INS [5,26]GETKWK/TASK=...GTK/CKP=YES
	.IFNINS ...GTK	.GOTO 1000
	.IFNINS ...KWK	'mcr'INS [5,26]KWIK/TASK=...KWK/CKP=YES
	.IFNINS ...KWK	.GOTO 1000
	.IFNINS ...IDX	'mcr'INS [5,26]RNOIDX/TASK=...IDX/CKP=YES
	.IFNINS ...IDX	.GOTO 1000
;
; Take a break
;
	'mcr'TIM
;
; Create dummy usage files
;
	.OPEN NORUSAGE.TMP
	.CLOSE
	.OPEN WIZUSAGE.TMP
	.CLOSE
;
	.IFF NORMAL .GOTO WIZARD
	'mcr'gtr -C >SR:[5,27]CU.GTR -H SR:[5,27]ULIBHD.RNO SR:[5,27]*.C
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'gtr -CU >NORUSAGE.GTR 
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'GTK -C >CU.GTK *.C			! Index source
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'KWK -T 16 -W 64 <CU.GTK >CU.KWK		! Index kwik'ed
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'IDX <CU.KWK >CU.IDX			! Mark funny bytes
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'PIP CUIDX.RNO=UINXHD.RNO,CU.IDX		! Index .rno
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'PIP CU.GTK;*/DE,CU.KWK;*,CU.IDX;*	! Delete temp files
	.ift usage 'mcr'gtr -CU >NORUSAGE.GTR -H ULIBAP.RNO  *.C
	.ift usage .IF <EXSTAT> NE <SUCCES> .GOTO 1000
 	'mcr'PIP [5,3]CU.RNO=CU.GTR,NORUSAGE.GTR,CUIDX.RNO
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
 	'mcr'PIP CU.GTR;*/DE,NORUSAGE.GTR;*,CUIDX.RNO;*
;
; Process with RUNOFF
;
.IFNINS ...RNO 'mcr'INS $RNO/TASK=...RNO
.IFINS ...RNO .GOTO RNONOR
;
; Couldn''t find RUNOFF Task, you can also process RUNOFF Files on VMS.
; To do so, copy CU.RNO to VMS and type in:
;      		RUNOFF/UNDERLINE	CU.RNO
;
       	.GOTO WIZARD
.RNONOR:
	'mcr'RNO [5,4]CU/UL:L/-SP=[5,3]CU
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
.WIZARD:
	.iff wizard .goto DONE
	'mcr'gtr -C -W >SR:[5,27]CUWIZ.GTR -H SR:[5,27]ULIBHD.RNO SR:[5,27]*.C
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'GTK -C -W >CUWIZ.GTK *.C			! Index source
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'KWK -T 16 -W 64 <CUWIZ.GTK >CUWIZ.KWK		! Index kwik'ed
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'IDX <CUWIZ.KWK >CUWIZ.IDX			! Mark funny bytes
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'PIP CUWIZIDX.RNO=UINXHD.RNO,CUWIZ.IDX		! Index .rno
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
	'mcr'PIP CUWIZ.GTK;*/DE,CUWIZ.KWK;*,CUWIZ.IDX;*	! Delete temp files
	.ift usage 'mcr'gtr -CUW >WIZUSAGE.GTR -H ULIBAP.RNO  *.C
	.ift usage .IF <EXSTAT> NE <SUCCES> .GOTO 1000
 	'mcr'PIP [5,3]CUWIZ.RNO=CUWIZ.GTR,WIZUSAGE.GTR,CUWIZIDX.RNO
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
 	'mcr'PIP CUWIZ.GTR;*/DE,WIZUSAGE.GTR;*,CUWIZIDX.RNO;*
;
; Process with RUNOFF
;
.IFNINS ...RNO 'mcr'INS $RNO/TASK=...RNO
.IFINS ...RNO .GOTO RNOWIZ
;
; Couldn''t find RUNOFF Task, you can also process RUNOFF Files on VMS.
; To do so, copy CU.RNO to VMS and type in:
;      		RUNOFF/UNDERLINE	CU.RNO
;
       	.GOTO DONE
.RNOWIZ:
	'mcr'RNO [5,4]CUWIZ/UL:L/-SP=[5,3]CUWIZ
	.IF <EXSTAT> NE <SUCCES> .GOTO 1000
.DONE:
;
	'mcr'PIP [5,3]CU.RNO/PU,[5,4]CU.DOC/PU
	'mcr'PIP [5,3]CUWIZ.RNO/PU,[5,4]CUWIZ.DOC/PU
;
	'mcr'TIM
;
; DECUS-C  Useful Library Documentation succesfully built.
;
	.EXIT <SUCCES>
.;
.;
.1000:
;
; There has been an error. Please re-read the build instructions in
; the manual.
;
.EXIT -1
