Description:
How to use -GPO -EXTRACT with the NOINC parm so as to not expand -INC statements
Solution:
-GPO -EXTRACT command does not allow the use of parm NOINC which causes EXTRACT to not expand the -INC statements in the source.
-EXTRACT can only use the NOINC parm when it follows a -OPT UTILITY, not when it follows a -GPO command.
Here is a way to use NOINC. A -GPO EXTRACT is used to create a sequential file of -EXTRACT commands and then a REXX is executed to update that file with the NOINC parm. A ./ ADD NAME= command is also used so that the file can be input to IEBUPDTE to create a PDS.
Here is the REXX program you will need to copy to your SYSPROC dataset:
/* REXX EXEC TO ADD NOINC PARM */
RECSI. = ''
RECSO. = ''
I = 1
O = 1
"EXECIO * DISKR DDIN (STEM RECSI.)"
DO UNTIL I > RECSI.0
IF RECSI.I = './ ADD NAME='
THEN DO
J = I + 1
PARSE VAR RECSI.J EXTRLIT REST
IF EXTRLIT = '-EXTRACT'
THEN DO
PARSE VAR RECSI.J 10 LONGNAME 19
PARSE VAR LONGNAME MBRNAME ',' REST
O = I
RECSO.O = './ ADD NAME=' || MBRNAME
O = O + 1
PARSE VAR RECSI.J LIT1 LIT2 REST2
RECSO.O = LIT1 || ' ' || LIT2 || ',NOINC'
O = O + 1
I = I + 2
END
ELSE I = I + 1
END
ELSE DO
RECSO.O = RECSI.I
O = O + 1
I = I + 1
END
END
ADDRESS MVS 'EXECIO * DISKW DDOUT (STEM RECSO. FINIS)'
Sample JCL to run the 4 step process is attached. You must update the appropriate dataset names and specify appropriate file sizes based on the size of your master file.