Page 1 of 1

How to compile multiple programs

PostPosted: Thu Aug 13, 2009 7:07 pm
by sammouse
Hi,
i need to compile around 500 programs.i have the jcl to compile one program.i know that we can repeat the steps to that.but its tedious process.apart from that is there any simple way to do it in a single step.please help me.thanks in advance.

//AAAAAAA JOB (0I01,XDB,BGC),'AAAAA',NOTIFY=AAAAA,
// REGION=4M,CLASS=X,MSGCLASS=Q,COND=(4,LT)
//*********************************
//* COBOL*
//*********************************
//STEP1 EXEC PGM=IGYCRCTL,COND=(8,LE),
// PARM=(LIB,MAP,OFFSET,XREF,
// NOSEQ,DATA(24),OPT,
// DYNAM,AWO,)
//STEPLIB DD DISP=SHR,DSN=IGY.SIGYCOMP
//SYSLIB DD DISP=SHR,DSN=a.b.copylib
//SYSIN DD DISP=SHR,DSN=a.b.c(abc)
//SYSLIN DD UNIT=DISK,DISP=(,PASS),
// SPACE=(6080,(50,20),RLSE),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=1600)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=DISK,SPACE=(CYL,(1,1))
//SYSUT2 DD UNIT=DISK,SPACE=(CYL,(1,1))
//SYSUT3 DD UNIT=DISK,SPACE=(CYL,(1,1))
//* Link Edit *
//*************
//STEP2 EXEC PGM=IPROTECT,COND=(8,LE),
// PARM=(HEWL,XREF,LIST,)
//SYSLIB DD DISP=SHR,DSN=a.b.LOADLIB,DCB=BLKSIZE=24000
//OBJLIB DD DSN=*.STEP1.SYSLIN,DISP=(OLD,DELETE)
//SYSLMOD DD DISP=SHR,DSN=a.b.LOADLIB(abc)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=DISK,SPACE=(CYL,(1,1))
//SYSLIN DD *
INCLUDE OBJLIB
NAME abc(R)
/*

Re: How to compile multiple programs

PostPosted: Thu Aug 13, 2009 7:42 pm
by GuyC
afaik there is no simple way to do it.

The easiest way (least to learn new things) is to write a program that
- reads an input file with all membernames
- for each inputrecord writes the JCL to an output file (with JOB-card and everything, all 500 jobs can be in one file)
manually submit that file

improvements are :
- use of internal reader (just google JCL internal reader)
- replace the list of inputmembers by using LMMLIST (which is a bit more tricky)

Maybe other guys have a better answer.

Re: How to compile multiple programs

PostPosted: Fri Aug 14, 2009 2:32 am
by dick scherrer
Hello,

is there any simple way to do it in a single step
No, each compile/link is a separate process and creates a specific object/load module.

Most organizations insist that the "standard" compile/link jcl be used. Some of the places i've supported have this as condition of continued employment - use the standard methods or be terminated. Hopefully, your standard compile jcl is a proc with symbolic parameters. . .

Recommend you do as GuyC suggests and "customize" the standard jcl with your member names and submit the generated jcl. If you generate job names that conform to your standards yet contain some characters that identifies the module being compiled, they will be easier to work with if the need arises.