C400

136. コンパイラーの依存関係情報

CRTBNDC や CRTCMOD コマンドには「依存関係情報」バラメータ(MAKEDEP)というものがある。
ヘルプを読んでみると

 依存関係情報をファイルの中に生成するかどうかを指定します 
    この情報は, MAKE TOOL によって使用されます。        

とあってこの値は

 path-name                                                 
    依存関係情報を保管するストリーム・ファイルのパス名を指定します。

とある。
何やらMAKEファイルを生成してくれるような説明である。
( MAKEファイルとは関連するソースをすべてコンパイルするための情報である)

そこでここにpath-nameを指示してCRTCMODを行ってみると
IFSには次のようなデータが生成された。

CRTCMOD MODULE(QTEMP/HPT) SRCFILE(R610SRC/QCSRC2) AUT(*ALL) MAKEDEP(‘/SPOOLWTR/TEMP/HPT.MK’)

HPT: R610SRC/QCSRC2(HPT)     
HPT: *LIBL/H(STDIO)          
HPT: *LIBL/H(STDLIB)         
HPT: *LIBL/H(MALLOCINFO)     
HPT: *LIBL/H(P_STDLIB)       
HPT: *LIBL/H(STRING)         
HPT: *LIBL/H(MATH)           
HPT: *LIBL/H(QUSRJOBI)       
HPT: ASNET.SRC/QCSRC(OPUSAPI)
HPT: QSROAD/QCSRC(OPSPAPI)   
HPT: *LIBL/H(QMHRCVPM)       
HPT: *LIBL/H(QMHSNDPM)       
HPT: *LIBL/H(ERRNO)          
HPT: *LIBL/H(SIGNAL)         
HPT: *LIBL/H(EXCEPT)         
HPT: *LIBL/H(POINTER)        
HPT: *LIBL/H(MILIB)          
HPT: *LIBL/MIH(MICOMMON)     
HPT: *LIBL/MIH(MICOMMON)    
HPT: *LIBL/MIH(MIOBJTYP)    
HPT: *LIBL/SYS(TYPES)       
HPT: *LIBL/H(TIME)          
HPT: *LIBL/H(P_TIME)        
HPT: *LIBL/H(QUSEC)         
HPT: *LIBL/H(QDCXLATE)      
HPT: *LIBL/H(DECIMAL)       
HPT: *LIBL/H(MICOMPUT)      
HPT: *LIBL/MIH(CLRBTS)      
HPT: *LIBL/MIH(CPRDATA)     
HPT: *LIBL/MIH(CVTBC)       
HPT: *LIBL/MIH(MICPTCOM)    
HPT: *LIBL/MIH(CVTCB)       
HPT: *LIBL/MIH(CVTCM)       
HPT: *LIBL/MIH(CVTCS)       
HPT: *LIBL/MIH(CVTSC)       
HPT: *LIBL/MIH(CVTMC)       
HPT: *LIBL/MIH(CVTHC)       
HPT: *LIBL/MIH(CVTHC)      
HPT: *LIBL/MIH(CVTCH)      
HPT: *LIBL/MIH(CVTEFN)     
HPT: *LIBL/MIH(DCPDATA)    
HPT: *LIBL/MIH(EDIT)       
HPT: *LIBL/MIH(EXTREXP)    
HPT: *LIBL/MIH(LBCPYNV)    
HPT: *LIBL/MIH(CPYNV)      
HPT: *LIBL/MIH(CPYBYTES)   
HPT: *LIBL/MIH(RETCA)      
HPT: *LIBL/MIH(SETBTS)     
HPT: *LIBL/MIH(SETCA)      
HPT: *LIBL/MIH(TSTBTS)     
HPT: *LIBL/MIH(XLATEB)     
HPT: *LIBL/MIH(SCANX)      
HPT: *LIBL/MIH(SCANWC)     
HPT: *LIBL/MIH(CPYBLA)     
HPT: *LIBL/MIH(CPYBLAP)    
HPT: *LIBL/MIH(CPYHEXNN)   
HPT: *LIBL/MIH(CPYHEXNN)  
HPT: *LIBL/MIH(CPYHEXNZ)  
HPT: *LIBL/MIH(CPYHEXZN)  
HPT: *LIBL/MIH(CPYHEXZZ)  
HPT: *LIBL/MIH(TRIML)     
HPT: *LIBL/MIH(XLATEWT)   
HPT: *LIBL/H(FCNTL)       
HPT: *LIBL/SYS(STAT)      
HPT: *LIBL/H(QLG)         
HPT: *LIBL/H(UNISTD)      
HPT: *LIBL/H(RECIO)       
HPT: *LIBL/H(STDDEF)      
HPT: *LIBL/H(XXFDBK)      
HPT: CHICAGO/H(UNICODE)   
HPT: *LIBL/H(QTQICONV)    
HPT: *LIBL/H(ICONV)       
HPT: *LIBL/H(LIMITS)      
HPT: *LIBL/SYS(LIMITS)    
HPT: *LIBL/H(QMHRSNEM)    
HPT: *LIBL/H(QMHRSNEM)     
HPT: *LIBL/H(STDINT)       
HPT: *LIBL/H(QC3PRNG)      
HPT: QTEMP/QACYXTRA(PDFTBL)

[説明]

最初の HPT: R610SRC/QCSRC2(HPT) とはコンパイルした元のソース・ファイルである。
その他のファイルはこのプログラムがコンパイルのために参照しているヘッダー・ファイル(H)
である。
MAKE TOOL とは何かGoogleで探しても特定の名称としては出てこない。
どうもMAKE TOOLとは一般名称のようでMAKE TOOLのために生成したというところで
具体的にすぐに何かの役に立つというものではなさそうである。

[参考] MAKEファイルとは

UNIXなどでC言語のコンパイルを実行するのは関連するコンパイルの記述を保管しておくのが
MAKEファイルと呼ばれるファイルである。
今回、PDFの圧縮ツールをダウンロードしてIBM iに導入したのだが複数のCソースで
構成されていた。
MAKEファイルをSHELL環境で実行するとすべてのモジュールを連続してコンパイルして
最後には必要なサービス・プログラムまで生成してくれる。
このMAKEファイルのおかげでPDF圧縮ツールをわずか1時間ほどで導入することができた。
開発すれば数ケ月かかるプログラムを半日で導入することができたのである。
そのシステムがわからなくてもMAKEファイルがあれば自動的に必要なファイルを
誰でも連続してコンパイルすることができるのである。

古くはOS400用のPERLも公開されていてMAKEファイルまで用意されていた。