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.