高速トランザクション処理基盤 TP1/EE/Extended Data Cache SQLプログラミング

[目次][索引][前へ][次へ]

付録A.5 makefileおよびコンパイル用シェルの内容

makeコマンドを実行するには,makefileのほかにccbl2002コンパイル用シェル(prp_ccbl2002.sh)が必要です。

makefileおよびccbl2002コンパイル用シェル(prp_ccbl2002.sh)の内容を次に示します。

<この項の構成>
(1) makefileの内容
(2) ccbl2002コンパイル用シェル(prp_ccbl2002.sh)の内容

(1) makefileの内容

makefileの内容を次に示します。

#All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd.
#Licensed Material of Hitachi, Ltd.
#Reproduction, use, modification or disclosure otherwise than
#permitted in the License Agreement is strictly prohibited.
#makefile 
#makefile for making UAP(COBOL Language)
#
 
CBLDIR = /opt/HILNGcbl2k                   …[1]始まり
CPDIR = $(DCDIR)/aplib
 
IDIRS = -I$(DCDIR)/include
LDIRS = -L$(DCDIR)/lib -L$(CBLDIR)/lib     …[1]終わり
 
### -------- Normal Option --------
CBLFLAGS1 = -C2 -Mw
CBLFLAGS2 = -C2
CFLAGS = -c -ansi -O1 $(IDIRS)             …[2]
LFLAGS = $(LDIRS) -Wl,-Bdynamic -lbetran -lcbl2k -lcbl2kml -ltactk -lm -ldl
 
CC= /usr/bin/gcc
CCBL= $(CBLDIR)/bin/ccbl
 
 
OBJECT1= sup.o
all : SUP libxdb_sampleuap.so
 
#make load module
libxdb_sampleuap.so : sampleuap.o
gcc -o libxdb_sampleuap.so  sampleuap.o -shared -L /opt/HILNGcbl2k/lib -lcbl2k -lcbl2kml -lpthread  -lm
 
sampleuap.o : sampleuap.ecb
        ./prp_ccbl2002.sh
 
SUP : $(OBJECT1)
        $(CC) -o $@ $(OBJECT1) $(LFLAGS)
 
#make object file
sup.o : sup.cbl                            …[3]始まり
        $(CCBL) $(CBLFLAGS1) sup.cbl       …[3]終わり
 
#cleaning load, object
clean :                                    …[4]始まり
        -rm SUP $(OBJECT1)
        -rm libxdb_sampleuap.so
        -rm sampleuap.cbl
        -rm sampleuap.o                    …[4]終わり
 
説明
[ ]内の番号は,次に示す項番と対応しています。
  1. ライブラリ情報の定義
  2. コンパイラオプション
  3. ccbl2002の実行
  4. 生成されたファイルの削除

コンパイル時には事前に生成されたファイルを削除してからmakeコマンドを実行する必要があります。生成されるファイルについては,「表A-1 コンパイルを実行すると生成されるファイル」を参照してください。

(2) ccbl2002コンパイル用シェル(prp_ccbl2002.sh)の内容

ccbl2002コンパイル用シェル(prp_ccbl2002.sh)の内容を次に示します。

#!/bin/bash
#All Rights Reserved. Copyright (C) 2008, Hitachi, Ltd.
#Licensed Material of Hitachi, Ltd.
#Reproduction, use, modification or disclosure otherwise than
#permitted in the License Agreement is strictly prohibited.
#makefile 
#prp_ccbl2002.sh for making UAP(COBOL Language)
#
 
export ID=$LOGNAME
#******************************#
# プリプロセサ名(パスを含む)
#******************************#
    EEXDBCBL=$DCDIR/bin/eexdbcbl
#******************************#
#  UAPソース名(パスを含む)
#******************************#
    UAPSOURCE=./sampleuap.ecb
#******************************#
# COBOLコンパイラ名(パスを含む)
#******************************#
    CCBL2002=/opt/HILNGcbl/bin/ccbl2002
 
#******************************#
#    環境変数設定
#******************************#
    export PATH=$VAR_PATH
    export LD_LIBRARY_PATH=$VAR_LDLIB
    export CBLLIB=$VAR_CBLLIB
    export LANG=$VAR_LANG
#******************************#
#                              #
#    プリプロセス
#******************************#
echo '****** START PRP ******'
    $EEXDBCBL $UAPSOURCE
echo '****** END PRP   ******'
#******************************#
#                              #
#    コンパイル
#******************************#
echo '****** START CCBL2002 ******'
    $CCBL2002 -PIC,Std -DynamicLink,Call -MainNotCBL ./sampleuap.cbl ld -shared -o libxdb_sampleuap.so ./sampleuap.o -Bstatic -MultiThread -lpthread
echo '****** END CCBL2002   ******'