Chapter Contents

Previous

Next
Preprocessing, Compiling, and Linking

Creating C++ CICS Applications under CMS

You must execute three separate EXECs to create a C++ CICS application under CMS:
LCCCP invokes the CICS translator.
LCXXC invokes the C++ translator and compiler.
COOL invokes the SAS/C prelinker.

Output from COOL must be ported to the target operating system for final link-editing.


The LCCCP EXEC

The LCCCP EXEC requires an input file with a filetype of CPP. An output file will be created with the same filename as the input file and a filetype of C unless the OUT option is used to specify an alternate fileid. The following example uses the OUT option to specify a fileid with the filetype (CXX) expected by the LCXX EXEC.

Assuming an input file named SAMPLE CCP A and an output file named SAMPLE CXX A, the LCCCP EXEC can be invoked as follows:

LCCCP SAMPLE OUT(SAMPLE CXX A


The LCXX EXEC

The LCXX EXEC requires the filetype of the input file to be CXX. By default, an output file with the same filename as the input file and a filetype of TEXT will be created. Before executing the LCXX EXEC, the LC370 and LCXX370 MACLIBs must be made globally available.

Note:    The RENT compiler option must always be specified for CICS applications.

Assuming an input fileid of SAMPLE CXX A and an output fileid of SAMPLE TEXT A, the LCXX EXEC can be invoked as follows:   [cautionend]

LCXX SAMPLE (RENT

Consult the SAS/C Cross-Platform Compiler and C++ Development System User's Guide for additional information on the LCXX EXEC.

At this point, you can do one of the following:

To prelink the output file on CMS, enter the following command:

COOL SAMPLE (CXX CICS

An output file named COOL370 TEXT A is created and ready for porting to the target operating system. You must use the CXX and CICS options to add the required libraries to COOL's autocall list.

If the target operating system is OS/390, you can invoke the LCCCXXL cataloged procedure with the NOCOOL option.

Note:    You must always link-edit the application with the RENT option.

Here's an example that invokes the LCCCXXL cataloged procedure:   [cautionend]

//LINK  EXEC LCCCXXL,PARM.LKED='NOCOOL,RENT'
//LKED.SYSLMOD DD DSN=your.cics.load(member),DISP=SHR
//*
//* Note that input must be provided via the SYSLIN DD statement
//* instead of the SYSIN DD statement when using the NOCOOL option.
//LKED.SYSLIN   DD DSN=your.object.library(member),DISP=SHR

Alternatively, you can directly invoke the linkage editor program, IEWL:

//LINK  EXEC PGM=IEWL,PARM='RENT'
//SYSPRINT DD SYSOUT=*
//SYSTERM  DD SYSOUT=*
//SYSLMOD  DD DSN=your.cics.load(member),DISP=SHR
//SYSUT1   DD DSN=&&SYSUT1,UNIT=SYSDA,DCB=BLKSIZE=1024,
//            SPACE=(1024,(200,50))
//DFHLIB   DD DSN=your.cicsrel.SDFHLOAD,DISP=SHR    Command-level stubs
//OBJIN    DD DSN=your.object.library(member),DISP=SHR
//SYSLIN   DD *
  LIBRARY DFHLIB(DFHEAI,DFHEAI0)
  ORDER DFHEAI
  ENTRY MAIN
  INCLUDE OBJIN(member)
  NAME SAMPLE(R)
/*
//

If you choose to port the application to OS/390 for prelinking (using COOL) and link-editing, use the LCCCXXL cataloged procedure, as described in Creating C++ CICS Applications under OS/390 Batch.


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.