RUN FROM %REST JD JOBTYPE JCL
//* THIS JOB CREATES LOAD MODULE LIBRARIES FOR THE BCPL COMPILER AND
//* RUN-TIME LIBRARY. THE LIBRARIES CREATED ARE CALLED:-
//*  BCPLIB.COMPILER
//*  BCPLIB.LIBRARY
//*
//* THE MEMBERS OF  BCPLIB.LIBRARY  ARE
//*  $BLOCK$, $IOS$, $LOAD$, $TPUT$, BCPLMAIN, BLIB, PM
//*
//*  $BLOCK$, $LOAD$, $TPUT$ AND BCPLMAIN  RESULT FROM CARVING UP THE
//* OBJECT MODULE  BCPLIB.OBJ(BCPLMAIN)
//* THE REMAINING MEMBERS ARE CREATED BY LINKING OTHER MEMBERS
//* OF  BCPLIB.OBJ
//*
//* THE MEMBERS OF  BCPLIB.COMPILER  ARE
//*  BCPL, SYN, TRN, CG, PROGRAM.
//*
//* MEMBER  BCPL  IS THE ROOT SEGMENT OF THE COMPILER, AND CONTAINS
//* COPIES OF  BCPLMAIN  AND  $LOAD$  DERIVED FROM  BCPLIB.LIBRARY.
//* NOTE THAT THE COPY OF  BLIB  IN  BCPLIB.COMPILER(BCPL)  IS
//* MADE FROM THE NON-STANDARD OBJECT MODULE IN  BCPLIB.OBJ(COMPBLIB)
//************************************************************
//* MAKE SURE   BCPLIB.LIBRARY  DOES NOT EXIST
//*
//      EXEC DELETE,NAME='BCPLIB.LIBRARY/QUIET'
//*
//LINK  EXEC LKED,NAMEL='BCPLIB.LIBRARY',
//           DISPL='(NEW,CATLG),SPACE=(TRK,(4,1,1),RLSE)'
//OBJ  DD   DISP=SHR,DSN=BCPLIB.OBJ
//SYSIN  DD *
 REPLACE $MAIN$,BCPLMAIN,$LOAD$,$TPUT$
 INCLUDE OBJ(BCPLMAIN)
 NAME $BLOCK$
 REPLACE $MAIN$,BCPLMAIN,$BLOCK$,$TPUT$
 INCLUDE OBJ(BCPLMAIN)
 NAME $LOAD$
 REPLACE $MAIN$,BCPLMAIN,$BLOCK$,$LOAD$
 INCLUDE OBJ(BCPLMAIN)
 NAME $TPUT$
 REPLACE $BLOCK$,$LOAD$,$TPUT$
 INCLUDE OBJ(BCPLMAIN)
 NAME BCPLMAIN
 INCLUDE OBJ(IOS)
 NAME $IOS$
 INCLUDE OBJ(PM)
 NAME PM
 INCLUDE OBJ(BLIB)
 NAME BLIB
//**********************************************************
//* MAKE SURE THAT BCPLIB.COMPILER DOES NOT EXIST
//*
//      EXEC  DELETE,NAME='BCPLIB.COMPILER/QUIET'
//*
//**********************************************************
//*
//LINK  EXEC  LKED,NAMEL='BCPLIB.COMPILER',
//            DISPL='(NEW,CATLG),SPACE=(TRK,(11,1,1),RLSE)'
//OBJ   DD    DISP=SHR,DSN=BCPLIB.OBJ
//LLD   DD    DISP=SHR,DSN=BCPLIB.LIBRARY
//SYSIN DD *
 INCLUDE OBJ(BCPL,COMPBLIB)
 INCLUDE LLD(BCPLMAIN,$LOAD$)
 NAME    BCPL
 INCLUDE OBJ(SYN)
 NAME    SYN
 INCLUDE OBJ(TRN)
 NAME    TRN
 INCLUDE OBJ(CG)
 NAME    CG
 INCLUDE OBJ(PROGRAM)
 NAME    PROGRAM
//*
