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