3.2.4 Net ExpressでのUAPの作成

ここでは,UAPをNet Expressで作成する場合について説明します。

<この項の構成>
(1) コマンドの指定(Net Express)
(2) メイクファイルの例(Net Express:SPPの場合)
(3) メイクファイルの例(Net Express:MHPの場合)

(1) コマンドの指定(Net Express)

次に示す場合に指定するコマンドについて説明します。

(a) trnmkobjコマンドでトランザクション制御用オブジェクトを作成する場合

trnmkobjコマンドでトランザクション制御用オブジェクトを作成する場合には,必ず-C "/Zl"オプションを指定してください。

(b) 標準トランザクション制御用オブジェクトファイル(dc_trn_allrm.obj)を使用する場合

trnlnkrmコマンドで作成される標準トランザクション制御用オブジェクトファイル(dc_trn_allrm.obj)を使用する場合,trnlnkrmコマンドを-C "/Zl"オプションを指定して実行し,オブジェクトを再作成してください。

(c) スタブファイルをコンパイルする場合

stbmakeで作成されたC言語のソースファイルをコンパイルする場合,必ずコンパイルオプション"/Zl"を指定してください。

(2) メイクファイルの例(Net Express:SPPの場合)

SPPを作成する場合のメイクファイルの例を示します。

(a) ソースファイル名

メイクファイルの例中で使用するソースファイル名を次に示します。

(b) メイクファイルの例

メイクファイルの例を次に示します。

!include <ntwin32.mak>
# TP1TEST Make File
CBLFG = /LITLINK /OBJ
SYSLIB = $(conlibsdll)
TP1LIB = [libdam.lib]※1 [libtam.lib]※2 libbetran.lib user32.lib
CBL_LIB = cblrtss.lib cbllds.obj adis.obj adisinit.obj adiskey.obj mffh.obj    
COBOL = cobol

all:TP1TEST.exe
#コンパイル
main.obj:main.cbl
        $(COBOL) $* $(CBLFG);
sev1.obj:sev1.cbl
        $(COBOL) $* $(CBLFG);
sev2.obj:sev2.cbl
        $(COBOL) $* $(CBLFG);
ex_sstb.obj:ex_sstb.c
        [$(cc) $(cflags) /Zl $(cvarsdll) $*.c]※3
#スタブソースファイルの作成
ex_sstb.c:ex.def
        $(DCDIR)¥bin¥stbmake $?
#リンケージ
TP1TEST.exe: main.obj sev1.obj sev2.obj ex_sstb.obj
        cblnames -V -Mmain + main
        $(link) $(conflags) -out:$*.exe $** ¥
        [$(DCDIR)¥spool¥trnrmcmd¥userobj¥dctrninf.obj ¥]※4
        $(TP1LIB) $(SYSLIB) $(CBL_LIB)

注※1
libdam.libは,TP1/FS/Direct Accessを使用する場合だけ指定してください。
注※2
libtam.libは,TP1/FS/Table Accessを使用する場合だけ指定してください。
注※3
ex_sstb.objは,コンパイルオプション/Zlを指定してください。
注※4
$(DCDIR)¥spool¥trnrmcmd¥userobj¥dctrninf.objは,トランザクション機能を使用する場合だけ指定してください。なお,dctrninf.objには,trnmkobjコマンドで作成したトランザクション制御用オブジェクトファイル名を指定します。また,trnmkobjコマンドを実行する場合,-C "/Zl"オプションを指定して,オブジェクトにマニフェストファイルの情報が埋め込まれないようにしてください。trnmkobjコマンドについては,「7. 運用コマンド」を参照してください。

(3) メイクファイルの例(Net Express:MHPの場合)

MHPを作成する場合のメイクファイルの例を示します。

!include <ntwin32.mak>
# makefile for making UAP(COBOL Language)


# command
STBMAKE           =      $(DCDIR)¥bin¥stbmake.exe

# user server object
MHP_SRC           =      CBLMHPM.obj TCPMHPSV.obj

# include file
INCDIR            =       -I.                 ¥
                         -I $(DCDIR)¥include

# common object
SH_OBJ            =       $(DCDIR)¥spool¥trnrmcmd¥userobj¥mcf_sw.obj

# common library
LIBNAME           =       $(DCDIR)¥lib¥libmcf.lib ¥
                         $(DCDIR)¥lib¥libmnet.lib ¥
                         $(DCDIR)¥lib¥libbetran.lib

# library
CBLLIBNAME        =       cblrtss.lib cbllds.obj adis.obj adisinit.obj¥
                         adiskey.obj mffh.obj

# compiler options
CC                =       cl
COBOL             =       cobol
CCOPT             =       -nologo $(cflags) $(cvarsdll)
CONFIG            =       -c -Zl
CFLAGS            =       $(CCOPT) $(CONFIG) $(INCDIR)
CBLFG             =       /LITLINK /OBJ

# linker options
LK                =       link
LNKFLG            =       $(conflags) /NODEFAULTLIB
LINKAGE           =       $(LIBNAME) msvcrt.lib user32.lib $(conlibsdll) $(CBLLIBNAME)

all : $(SH_OBJ) tcpmhp.exe

# compile
.c.obj   :
               $(CC) $(CFLAGS) $*.c

TCPMHPSV.obj :
               $(COBOL) tcpmhpsv.cbl $(CBLFG);

CBLMHPM.obj :
               $(COBOL) cblmhpm.cbl $(CBLFG);

cblmhp_sstb.obj :
               $(CC) $(CFLAGS) cblmhp_sstb.c

# stub, creating source file
cblmhp_sstb.c :
               $(STBMAKE) cblmhp.def

# link
tcpmhp.exe : $(MHP_SRC) cblmhp_sstb.obj
               cblnames -V -MCBLMHPM + CBLMHPM
               $(LK) $(LNKFLG) $** $(LINKAGE) $(SH_OBJ) -out:$@
               !if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;1
               !if exist $@.manifest del $@.manifest

$(SH_OBJ) :
               $(DCDIR)¥bin¥trnmkobj -o mcf_sw -R OpenTP1_MCF -C "/Zl"