//COBCXXPM  JOBCARD INFORMATION
//*------------------------------------------------------------------
//*                 COPYRIGHT (C) 1995, SAS INSTITUTE INC.
//*                   UNPUBLISHED - ALL RIGHTS RESERVED
//*                    S A S / C   S A M P L E
//*
//*       NAME: COBCXXPM
//*   LANGUAGE: JCL
//*    PURPOSE: THIS EXAMPLE DEMONSTRATES CALLING A C++ FUNCTION
//*             WITH A PARAMETER LIST FROM COBOL, WHICH THEN CALLS
//*             ANOTHER C++ FUNCTION. IT CONSISTS OF SAMPLE LIBRARY
//*             MEMBERS COBCXPC, COBCXPCO, AND COBCXXPM.
//*             THIS JCL COMPILES, LINKS, AND EXECUTES THESE MODULES.
//* MISC NOTES: THE FOLLOWING CLINK MESSAGE CAN BE IGNORED:
//*LSCL102 WARNING: CAN'T OPEN FILE DURING AUTOCALL: DDN:SYSLIB(IGZEBST)
//*-----------------------------------------------------------------
//*****************************************************************
//*  NOTE: Verify the statements indicated by the "<== CHECK"
//*   have been customized for the local environment.
//*****************************************************************
//*
//**********************************
//**  COMPILE THE COBOL PROGRAM   **
//**********************************
//*
//CCOB        EXEC COB2UC,     <== CHECK: PROC FOR COMPILING COBOL2
//            PARM.COB2='APOST'
//COB2.SYSLIN DD DSN=your.object.library(COBCXPCO),DISP=OLD <== CHECK
//COB2.SYSIN  DD DSN=prefix.SAMPLE.ILC(COBCXPCO),DISP=SHR     <== CHECK
//*
//**********************************
//**  COMPILE THE C++ PROGRAM     **
//**********************************
//CCXX  EXEC LCXXC,PARM.X='INDEP,SN(COBCXXC)'   <== CHECK: C++ PROC
//*                                     <== MUST COMPILE WITH INDEP
//X.SYSLIN   DD DSN=your.object.library(COBCXPC),DISP=OLD     <== CHECK
//X.SYSTRIN  DD DSN=prefix.SAMPLE.ILC(COBCXPC),DISP=SHR     <== CHECK
//****************************************
//**  LINK COBOL AND C++ PROGRAMS       **
//****************************************
//*
//ILCLINK EXEC ILCLINK,              <== CHECK: ILC LINK PROC
//        PARM.LKED='NOTERM ECHO'
//LKED.SYSLMOD DD DSN=your.load.library,DISP=OLD           <== CHECK
//LKED.COBJ    DD DSN=your.object.library,DISP=SHR         <== CHECK
//LKED.COBOBJ  DD DSN=your.object.library,DISP=SHR         <== CHECK
//LKED.CLIBS   DD DSN=prefix.BASEOBJ,DISP=SHR              <== CHECK
//             DD DSN=prefix.STDOBJ,DISP=SHR               <== CHECK
//LKED.SYSARLIB DD DSN=prefix.A,DISP=SHR                   <== CHECK
//*
//LKED.COBLKD  DD DSN=local.cobol.COB2LIB,DISP=SHR         <== CHECK
//*
//* CHANGE "COBOL2" TO "COBOL" IN THE FIRST AND LANGUAGE
//*         STATEMENTS BELOW IF YOU ARE NOT USING COBOL2
//LKED.ILCIN DD *
   FIRST COBMAINC(COBOL2)
   LANGUAGE COBOL2,C
   PROCESS CLINK
   AUTOCALL CLIBS
   INCLUDE COBJ(COBCXPC)
   PROCESS LKED LIST RENT MAP
   AUTOCALL COBLKD
   INCLUDE COBOBJ(COBCXPCO)
   ENTRY COBMAINC
   NAME COBCXXPM(R)
/*
//*
//**********************************
//**  RUN PROGRAM                 **
//**********************************
//*
//GO EXEC PGM=COBCXXPM
//STEPLIB DD DSN=your.load.library, DISP=SHR                <== CHECK
//        DD DSN=local.cobol.COB2LIB,DISP=SHR             <== CHECK
//        DD DSN=prefix.LINKLIB,DISP=SHR                  <== CHECK
//SYSPRINT DD SYSOUT=*
//SYSTERM DD SYSOUT=*
//SYSOUT  DD SYSOUT=*
//*
//