COBOL2002 使用の手引 手引編
makefile生成機能とは,COBOL2002で作成するプログラムやライブラリの作成方法や保守方法を,makeに通知するmakefileを生成する機能です。この機能は,cbl2kmfコマンドで使用します。生成したmakefileは,テキストエディタで変更できます。
cbl2kmf 〔-cls〕〔-f makefile名〕〔 マクロ名=値〕 …
環境変数 | 意味 | デフォルト値 |
---|---|---|
LD | makefileのマクロ定義と置換 | "ccbl2002" |
CBLMAIN | メインプログラムのソースファイル名を指定 | "" |
CBLFLAGS | COBOL2002のコンパイラオプションを指定 | "" |
終了コード | 意味 |
---|---|
0 | cbl2kmfは,正常に終了した。 |
1 | cbl2kmfで,エラーが発生した。 |
2 | cbl2kmfで,回復不能エラーが発生した。 |
cbl2kmf CBLMAIN=PROGRAM1.cbl
ccbl2002 -Compile,NoLink CLASS01.cbl ccbl2002 -Compile,NoLink CLASS02.cbl ccbl2002 -Compile,NoLink -Main,System PROGRAM1.cbl
makefile生成機能の使用例を示します。
作成する実行可能ファイル名称 | example1 |
---|---|
原始プログラム名称 | main.cbl (主プログラム,原始プログラムに登録集cpy1.cbl,cpy2.cblを複写) |
sub1.CBL (副プログラム,原始プログラムに登録集cpy1.cblを複写) |
|
sub2.cob (副プログラム,原始プログラムに登録集cpy2.cblを複写) |
|
登録集原文名 | cpy1.cbl (原始プログラムとは別ディレクトリ) |
cpy2.cbl (原始プログラムとは別ディレクトリ) |
|
コンパイラオプション | -TDInf (テストデバッグ機能が使用できる実行可能ファイルを作成) |
-DoubleQuote (原文中に引用符を使用) |
CFLAGS = DEST = . EXTHDRS = ../copylib/cpy1.cbl \ ../copylib/cpy2.cbl HDRS = INSTALL = /etc/install LD = ccbl2002 LDFLAGS = -TDInf LIBS = MAKEFILE = Makefile OBJS = main.o \ sub1.o \ sub2.o PRINT = pr PROGRAM = example1 SHELL = /bin/sh SRCS = main.cbl \ sub1.CBL \ sub2.cob SYSHDRS = all: $(PROGRAM) $(PROGRAM): $(OBJS) $(LIBS) @echo "Linking $(PROGRAM)..." @$(LD) $(LDFLAGS) $(OBJS) $(LIBS) -o $(PROGRAM) @echo "done" clean:; @rm -f $(OBJS) core clobber:; @rm -f $(OBJS) $(PROGRAM) core tags depend:; @mkmf -f $(MAKEFILE) ROOT=$(ROOT) echo:; @echo $(HDRS) $(SRCS) index:; @ctags -wx $(HDRS) $(SRCS) install: $(PROGRAM) @echo Installing $(PROGRAM) in $(DEST) @-strip $(PROGRAM) @if [ $(DEST) != . ]; then \ (rm -f $(DEST)/$(PROGRAM); $(INSTALL) -f $(DEST) $(PROGRAM); fi print:; @$(PRINT) $(HDRS) $(SRCS) tags: $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS) update: $(DEST)/$(PROGRAM) $(DEST)/$(PROGRAM): $(SRCS) $(LIBS) $(HDRS) $(EXTHDRS) @$(MAKE) -f $(MAKEFILE) ROOT=$(ROOT) DEST=$(DEST) install ###
CBL = ccbl2002 CBLFLAGS = -TDInf -DoubleQuote CBLMAINOPT = -Main,System CBLCMPLOPT = -Compile,NoLink
#### main.o: ../copylib/cpy1.cbl ../copylib/cpy2.cbl $(CBL) $(CBLFLAGS) $(CBLCMPLOPT) $(CBLMAINOPT) $< sub1.o: ../copylib/cpy1.cbl sub2.o: ../copylib/cpy2.cbl
cd /home/src *>1. CBLLIB=/home/copylib *>2. export CBLLIB *>3. cbl2kmf PROGRAM=example1 CBLMAIN=main.cbl CBLFLAGS="-TDInf -DoubleQuote" LDFLAGS=-TDInf *>4. make *>5.
cbl2kmfコマンドは,COBOLソースファイルだけを対象としてmakefileを生成します。Cプログラムに対しては,makefileが生成されないので注意してください。
Cプログラムに対するmakefileを生成するmkmfコマンドがある場合は,次の環境変数を指定することによって,Cプログラムを含めたmakefileを生成できます。
$CBLMKMF=/home/tools/bin/mkmf $export CBLMKMF
All Rights Reserved. Copyright (C) 2014, 2017, Hitachi, Ltd.