Tools

27. すべてのコンパイルを *ALL で行う CRTCLPGM

RPG だけでなく CLP も、まとめて CRTCLPGM によってコンパイルするコマンドを紹介する。
CRTCLPGM も IBM の CRTCLPGM のコマンド・ソースを RTVCMDSRC によって検索してから
パラメータを *ALL 対応として少し手を加えただけに過ぎない。
このように RTVCMDSRC は IBM のコマンドの機能を拡張したい場合に役に立つ。
CRTCLPGM も前の CRTBNDRPG の応用であるのでソースだけを早速、紹介しよう。

【 コマンド CRTCLPGM ソース 】
------------------------------------------------------------------------------------------
0001.00 /*           CRTCMD     CMD(CVTS36/CRTCLPGM) +                               */   
0002.00 /*                      PGM(QSYS/CRTCLPGMC) +                                */   
0003.00 /*                      SRCFILE(R540SRC/QCMDSRC) +                           */   
0004.00 /*                      SRCMBR(CRTCLPGM) +                                   */   
0005.00 /*                      THDSAFE(*NO) +                                       */   
0006.00 /*                      MLTTHDACN(*SYSVAL) +                                 */   
0007.00 /*                      TEXT(' CL プログラム作成 ') +                        */   
0008.00 /*                      VLDCKR(*NONE) +                                      */   
0009.00 /*                      MODE( +                                              */   
0010.00 /*                        *ALL) +                                            */   
0011.00 /*                      ALLOW( +                                             */   
0012.00 /*                        *ALL) +                                            */   
0013.00 /*                      ALWLMTUSR(*NO) +                                     */   
0014.00 /*                      MAXPOS(5) +                                          */   
0015.00 /*                      PMTFILE(QDEVELOP/QCPFPMT) +                          */   
0016.00 /*                      MSGF(*LIBL/QCPFMSG) +                                */   
0017.00 /*                      HLPSHELF(*LIST) +                                    */   
0018.00 /*                      HLPPNLGRP(*LIBL/QHCLCMD1) +                          */   
0019.00 /*                      HLPID(CRTCLPGM) +                                    */   
0020.00 /*                      HLPSCHIDX(*NONE) +                                   */   
0021.00 /*                      CURLIB(*NOCHG) +                                     */   
0022.00 /*                      PRDLIB(*NOCHG) +                                     */   
0023.00 /*                      PMTOVRPGM(*NONE) +                                   */   
0024.00 /*                      AUT(*USE) +                                          */   
0025.00 /*                      REPLACE(*YES) +                                      */   
0026.00 /*                      ENBGUI(*YES)                                         */   
0027.00                                                                                   
0028.00 /*  Internal info                                                            */   
0029.00 /*    PGM call state:           *SYSTEM                                      */   
0030.00 /*    CCSID:                    5026                                         */   
0031.00                                                                                   
0032.00              CMD        PROMPT(' CL プログラム作成 ')                             
0033.00              PARM       KWD(CON) +                                                
0034.00                         TYPE(*CHAR) +                                             
0035.00                         LEN(1) +                                                  
0036.00                         CONSTANT('O') +                                           
0037.00                         MIN(1)                                                    
0038.00              PARM       KWD(PGM) TYPE(Q06D7) PGM(*YES) CHOICE(*NONE) +            
0039.00                           PROMPT(' プログラム ' 2)                                
0040.00              PARM       KWD(SRCFILE) +                                            
0041.00                         TYPE(Q0733) +                                             
0042.00                         FILE(*IN) +                                               
0043.00                         CHOICE(*NONE) +                                           
0044.00                         PROMPT(' ソース・ファイル ' 3)                            
0045.00              PARM       KWD(SRCMBR) +                                             
0046.00                         TYPE(*NAME) +                                             
0047.00                         LEN(10) +                                                 
                                   :
                                   :
                                 (略)
------------------------------------------------------------------------------------------
【 CLP: CRTCLPGMCL ソース 】
-----------------------------------------------------------------------------
0001.00              PGM        PARM(&CON &PGMOBJLIB &SRCFLIB &SRCMBR +      
0002.00                           &OUTPUT &OPTION &GENOPT &USRPRF &LOG +     
0003.00                           &ALWRTVSRC &ENSYSTEM &TEXT &DFTACTGRP +    
0004.00                           &ACTGRP &REPLACE &TGTRLS &AUT &SRTSEQ +    
0005.00                           &LANGID &OPTIMIZE &DBGVIEW &ENBPFRCOL +    
0006.00                           &STGMDL)                                   
0007.00 /*---------------------------------------------------------*/        
0008.00 /*   CRTCLPGM :  CLP コンパイル (*ALL)                     */        
0009.00 /*---------------------------------------------------------*/        
0010.00              DCL        VAR(&MSG) TYPE(*CHAR) LEN(80)                
0011.00              DCL        VAR(&TYPE) TYPE(*CHAR) LEN(1)                
0012.00              DCL        VAR(&CON) TYPE(*CHAR) LEN(1)                 
0013.00              DCL        VAR(&PGMOBJLIB) TYPE(*CHAR) LEN(20)          
0014.00              DCL        VAR(&PGM) TYPE(*CHAR) LEN(10)                
0015.00              DCL        VAR(&PGM_P) TYPE(*CHAR) LEN(10)              
0016.00              DCL        VAR(&OBJLIB) TYPE(*CHAR) LEN(10)             
0017.00              DCL        VAR(&SRCFLIB) TYPE(*CHAR) LEN(20)            
0018.00              DCL        VAR(&SRCF) TYPE(*CHAR) LEN(10)               
0019.00              DCL        VAR(&SRCLIB) TYPE(*CHAR) LEN(10)             
0020.00              DCL        VAR(&SRCMBR) TYPE(*CHAR) LEN(10)             
0021.00              DCL        VAR(&OUTPUT) TYPE(*CHAR) LEN(1)              
0022.00              DCL        VAR(&OPTION) TYPE(*CHAR) LEN(14)             
0023.00              DCL        VAR(&OPTION_C) TYPE(*CHAR) LEN(220)          
0024.00              DCL        VAR(&OPTION_P) TYPE(*CHAR) LEN(200)        
0025.00              DCL        VAR(&GENOPT) TYPE(*CHAR) LEN(8)            
0026.00              DCL        VAR(&GENOPT_C) TYPE(*CHAR) LEN(220)        
0027.00              DCL        VAR(&GENOPT_P) TYPE(*CHAR) LEN(200)        
0028.00              DCL        VAR(&USRPRF) TYPE(*CHAR) LEN(1)            
0029.00              DCL        VAR(&USRPRF_P) TYPE(*CHAR) LEN(6)          
0030.00              DCL        VAR(&LOG)    TYPE(*CHAR) LEN(1)            
0031.00              DCL        VAR(&LOG_P) TYPE(*CHAR) LEN(4)             
0032.00              DCL        VAR(&ALWRTVSRC) TYPE(*CHAR) LEN(1)         
0033.00              DCL        VAR(&ALWRTVSR_P) TYPE(*CHAR) LEN(4)        
0034.00              DCL        VAR(&ENSYSTEM) TYPE(*CHAR) LEN(1)          
0035.00              DCL        VAR(&TEXT) TYPE(*CHAR) LEN(52)             
0036.00              DCL        VAR(&TEXT_P) TYPE(*CHAR) LEN(50)           
0037.00              DCL        VAR(&DFTACTGRP) TYPE(*CHAR) LEN(1)         
0038.00              DCL        VAR(&ACTGRP) TYPE(*CHAR) LEN(10)           
0039.00              DCL        VAR(&REPLACE) TYPE(*CHAR) LEN(1)           
0040.00              DCL        VAR(&REPLACE_P) TYPE(*CHAR) LEN(4)         
0041.00              DCL        VAR(&TGTRLS) TYPE(*CHAR) LEN(10)           
0042.00              DCL        VAR(&TGTRLS_P) TYPE(*CHAR) LEN(10)         
0043.00              DCL        VAR(&AUT) TYPE(*CHAR) LEN(10)              
0044.00              DCL        VAR(&AUT_P) TYPE(*CHAR) LEN(10)            
0045.00              DCL        VAR(&SRTSEQ) TYPE(*CHAR) LEN(20)           
0046.00              DCL        VAR(&LANGID) TYPE(*CHAR) LEN(3)            
0047.00              DCL        VAR(&LANGID_P) TYPE(*CHAR) LEN(7)          
           :
                      :
                    (略)
-----------------------------------------------------------------------------