![]()
生成したビルド制御文は、必要に応じて編集します。
編集するには、プロジェクトツリーの“その他”フォルダに登録されているビルド制御文を選択して、エディタを起動します。
生成したビルド制御文雛型と、各部分の説明、および編集方法を示します。
ビルド制御文雛型
######################################################################
# Makefile NetCOBOL バージョンレベル
######################################################################
#==============================
# Macro
#==============================
SHELL = /bin/sh …[1]
# NetCOBOL install directory …[2]
UCOBDIR = /opt/FJSVcbl/
include $(UCOBDIR)COBOL/config/mkinc/LIBLIST
# Link option …[3]
COBLDFLAGS = ライブラリ名,リンクオプション
# IDL compile option …[4]
IDLFLAGS1 = IDLc/tdcオプション
# Precompiler and insdbinf command …[5]
PRECOMFLAGS1 = プリコンパイラコマンド コマンドオプション
INSDBFLAGS1 = insdbinf insdbinfオプション
# Server Directory …[6]
SERVERDIR = サーバディレクトリ
# Copy library name …[7]
登録集名 = $(SERVERDIR)
# Do not modify Start …[8]
COBFLAGS = -WC,"翻訳オプション",cobolコマンドラインオプション
COBOL = cobol
COMPILE.cob = $(COBOL) -c $(COBFLAGS)
LINKELF.cob = $(COBOL) -o $@ $(COBLDFLAGS)
LINKLIB.cob= $(COBOL) -G -o $@ $(COBLDFLAGS)
RM = rm -f
OBJDIR = オブジェクトファイル格納先
REPDIR = リポジトリファイル入出力先
SVDDIR = デバッグ情報ファイル格納先
WIN_COB_LIBSUFFIX = LIBEXT設定値
WIN_SMED_SUFFIX = FORMEXT設定値
WIN_FFD_SUFFIX = FILEEXT設定値
ENVSETFILE = 環境変数設定用スクリプトファイル
# Do not modify End
#==============================
# Suffix rule
#==============================
# Do not modify Start
.SUFFIXES : …[9]
.SUFFIXES : .cobol .cob .cbl $(SUFFIXES)
.cobol.o:
. $(ENVSETFILE) ; \
$(COMPILE.cob) $<
.cob.o:
. $(ENVSETFILE) ; \
$(COMPILE.cob) $<
.cbl.o:
. $(ENVSETFILE) ; \
$(COMPILE.cob) $<
# Do not modify End
#==============================
# Default targets
#==============================
all: 相互参照リポジトリ 共用オブジェクトプログラム 実行形式プログラム …[10]
clean: …[11]
$(RM) 共用オブジェクトプログラム
$(RM) 実行形式プログラム
$(RM) オブジェクトファイル…
$(RM) リポジトリファイル…
$(RM) デバッグ情報ファイル …
$(RM) Interstage関連ファイル …
$(RM) プリコンパイラ展開ソースファイル …
$(RM) insdbinf生成ファイル …
$(RM) $(SERVERDIR)core
$(RM) $(ENVSETFILE)
rebuild: clean all …[12]
$(ENVSETFILE) : Makefile …[13]
@$(RM) $(ENVSETFILE)
@echo '#!/bin/sh' >>$(ENVSETFILE)
@echo 'if [ "$$COB_LIBSUFFIX" = "" ]; then' >>$(ENVSETFILE)
@echo ' COB_LIBSUFFIX=${WIN_COB_LIBSUFFIX}' >>$(ENVSETFILE)
@echo 'else' >>$(ENVSETFILE)
@echo ' COB_LIBSUFFIX=${WIN_COB_LIBSUFFIX},$${COB_LIBSUFFIX}' >>$(ENVSETFILE)
@echo 'fi' >>$(ENVSETFILE)
@echo 'export COB_LIBSUFFIX' >>$(ENVSETFILE)
@echo 'if [ "$$SMED_SUFFIX" = "" ]; then' >>$(ENVSETFILE)
@echo ' SMED_SUFFIX=${WIN_SMED_SUFFIX}' >>$(ENVSETFILE)
@echo 'else' >>$(ENVSETFILE)
@echo ' SMED_SUFFIX=${WIN_SMED_SUFFIX},$${SMED_SUFFIX}' >>$(ENVSETFILE)
@echo 'fi' >>$(ENVSETFILE)
@echo 'export SMED_SUFFIX' >>$(ENVSETFILE)
@echo 'if [ "$$FFD_SUFFIX" = "" ]; then' >>$(ENVSETFILE)
@echo ' FFD_SUFFIX=${WIN_FFD_SUFFIX}' >>$(ENVSETFILE)
@echo 'else' >>$(ENVSETFILE)
@echo ' FFD_SUFFIX=${WIN_FFD_SUFFIX},$${FFD_SUFFIX}' >>$(ENVSETFILE)
@echo 'fi' >>$(ENVSETFILE)
@echo 'export FFD_SUFFIX' >>$(ENVSETFILE)
@echo '登録集名=${登録集名}' >>$(ENVSETFILE)
@echo 'export 登録集名' >>$(ENVSETFILE)
@chmod +x $(ENVSETFILE)
#==============================
# Build program
#==============================
オブジェクトファイル: 依存リポジトリ 登録集 定義体 相互参照リポジトリ Makefile \
$(ENVSETFILE) …[14]
オブジェクトファイル: COBOLソースファイル 依存リポジトリ 登録集 定義体 \
相互参照リポジトリ Makefile $(ENVSETFILE) …[15]
. $(ENVSETFILE) ; \
$(COMPILE.cob) COBOLソースファイル
オブジェクトファイル: COBOLソースファイル 依存リポジトリ 登録集 定義体 \
相互参照リポジトリ Makefile $(ENVSETFILE) …[16]
. $(ENVSETFILE) ; \
$(COMPILE.cob) -M COBOLソースファイル
リポジトリファイル: COBOLソースファイル 依存リポジトリ 登録集 定義体 $(ENVSETFILE)
…[17]
. $(ENVSETFILE) ; \
$(COMPILE.cob) -WC,"CREATE(REP)" COBOLソースファイル
スタブ/スケルトンファイル: IDLソースファイル インクルードファイル …[18]
IDLコンパイラ 言語オプション $(IDLFLAGSn) IDLソースファイル
実行形式プログラム: オブジェクトファイル ライブラリ Makefile …[19]
$(LINKELF.cob) ライブラリ オブジェクトファイル
共用オブジェクトプログラム : オブジェクトファイル ライブラリ Makefile …[20]
$(LINKLIB.cob) ライブラリ オブジェクトファイル
プリコンパイラ展開ソースファイル : オリジナルソースファイル インクルードファイル
…[21]
$(PRECOMFLAGSn)
insdbinf生成ファイル : プリコンパイラ展開ソースファイル …[22]
$(INSDBFLAGSn) -f オリジナルソースファイル < プリコンパイラ展開ソースファイル > $@ビルド制御文雛型の説明と編集方法
〔制御文生成〕ダイアログの〔リンクオプション1〕タブ、〔リンクオプション2〕タブに入力した内容を出力します。
〔Interstarge〕ダイアログを使用してCORBAアプリケーションを生成するための依存関係を設定した場合に出力します。
オプションは、〔Interstarge〕ダイアログの〔IDL翻訳オプション〕エディットボックスに設定したオプションを元に生成します。
プロジェクトで〔Interstarge〕ダイアログを複数回使用している場合、ツリーの上から順に、IDLFLAGS1、IDLFLAGS2、…に対応して設定します。
オプションを変更する場合は、次に示す下線部分を書き換えてください。
IDLFLAGS1 = IDLc/tdcオプション〔プリコンパイラ設定〕ダイアログで、プリコンパイラの設定を行った場合、出力します。
プロジェクトで複数のプリコンパイラやinsdbinfコマンドを使用している場合、ツリーの上の方から順に、プリコンパイラの場合はPRECOMFLAGS1、PRECOMFLAGS2、…が対応します。同様に、insdbinfコマンドの場合、INSDBFLAGS1、INSDBFLAGS2、…が対応します。
〔プリコンパイラ設定〕ダイアログの、〔コマンドパラメタ〕ドロップダウンリストに指定したパラメタ文字列にマクロを使用している場合、対応するファイル名に変換して出力します。
ファイルの種類と、マクロ名の対応関係は、下表のようになります。
ファイルの種類 | マクロ名 |
|---|---|
入力ファイル | %INFILE% |
出力ファイル | %OUTFILE% |
出力ファイルフォルダ | %OUTFOLDER% |
プリコンパイラのコマンドやオプションは、UNIX上のプリコンパイラの仕様や、環境に合わせて書き換える必要があります。プリコンパイラのコマンドやオプション、insdbinfコマンドのオプションを変更する場合は、次に示す下線部分を書き換えてください。
PRECOMFLAGS1 = プリコンパイラコマンド コマンドオプション
INSDBFLAGS1 = insdbinf insdbinfオプション
:
〔プロパティ〕ダイアログの〔分散開発〕タブの〔サーバディレクトリ〕エディットボックスに指定したディレクトリ名を出力します。
ファイル名の前に$(SERVERDIR)を付加している場合、サーバディレクトリに格納するファイルを示します。
〔登録集名〕ダイアログで、登録集名を設定した場合に出力します。
登録集名に定義する、UNIX上での登録集ファイルを格納するディレクトリ名を変更する場合は、次に示す下線部分を書き換えてください。
登録集名 = $(SERVERDIR)
:なお、〔Interstage〕ダイアログを使用してCORBAアプリケーションを生成する場合、指定の内容によっては、登録集名“CORBA”が設定される場合があります。この場合、ビルド制御文にも登録集名“CORBA”を出力します。次に示す下線部分を、IDLコンパイルを行う環境に合わせて書き換えてください。設定する値については、Interstageのマニュアルを参照してください。
CORBA = /opt/FSUNod/include/COBOL
[Do not modify Start]から、[Do not modify End]で囲まれる部分は、ほとんどの場合、編集する必要はありません。
この部分の内容は次の通りです。
cobolコマンドの翻訳に関するオプションです。〔翻訳オプション〕ダイアログに指定した翻訳オプションを、UNIX上で使用できる形式に変換して出力します。また、〔制御文生成〕ダイアログの〔翻訳オプション〕タブで指定したオプションも、COBFLAGSに出力します。
ほとんどの場合、修正する必要はありませんが、次に示す場合は、修正が必要になります。
〔その他の翻訳オプション〕がWindowsとUNIXで異なる
CORBAアプリケーションを作成している
〔その他の翻訳オプション〕がWindowsとUNIXで異なる
〔翻訳オプション〕ダイアログの、〔その他の翻訳オプション〕エディットボックスに指定したオプションがWindowsとUNIXで異なる場合は、次に示す下線部分のうち、指定したオプションのみを書き換えてください。なお、他の翻訳オプションの設定状態によっては、位置がずれる場合があります。
COBFLAGS = -WC,"翻訳オプション その他の翻訳オプション",cobolコマンドラインオプションCORBAアプリケーションを作成している
〔Interstage〕ダイアログを使用してCORBAアプリケーションを生成する場合、指定の内容によっては、COBFLAGSに次のようなオプションが追加されます。
-I"/opt/FSUNod/include/oocob" -R"/opt/FSUNod/rep" -R"/opt/FSUNod/rep/unicode"
IDLコンパイルを行う環境に合わせて、下線部分を書き換えてください。設定する値については、Interstageのマニュアルを参照してください。
cobolコマンドを表します。
COBOLソースを翻訳するコマンドの指定です。
実行形式プログラムを作成するためのコマンドの指定です。
共用オブジェクトプログラムを作成するためのコマンドの指定です。
以前のビルドで生成したファイルを削除するためのコマンドの指定です。
オブジェクトファイル格納先ディレクトリです。
翻訳オプション-doを指定した場合に出力します。
リポジトリファイル格納先ディレクトリです。
翻訳オプション-drを指定した場合に出力します。
デバッグ情報ファイル格納先ディレクトリです。
翻訳オプション-ddを指定した場合に出力します。
環境変数COB_LIBSUFFIXに設定する値です。
〔翻訳オプション〕ダイアログで、翻訳オプションLIBEXTを指定した場合に出力します。
環境変数SMED_SUFFIXに設定する値です。
〔翻訳オプション〕ダイアログで、翻訳オプションFORMEXTを指定した場合に出力します。
環境変数FFD_SUFFIXに設定する値です。
〔翻訳オプション〕ダイアログで、翻訳オプションFILEEXTを指定した場合に出力します。
環境変数を設定するスクリプトファイル名です。
ただし、最終ターゲットを生成するのに必要なCOBOLソースファイルなどを送信していない場合は、最終ターゲットファイルは生成されません。
〔翻訳オプション〕ダイアログで、翻訳オプションLIBEXT、FORMEXT、FILEEXTを指定した場合、〔登録集名〕ダイアログで、登録集名を設定した場合に出力します。
[9]のサフィックスルールを適用できる場合は、この形式で出力します。
サフィックスルールを適用しない場合は、この形式で出力します。
プロジェクトのツリーに、ターゲットリポジトリファイルを登録している場合に出力します。
〔Interstage〕ダイアログを使用してCORBAアプリケーションを生成するための依存関係を設定した場合に出力します。
実行形式プログラムは、サーバディレクトリに生成されます。
共用オブジェクトプログラムは、サーバディレクトリに生成されます。
〔プリコンパイラ設定〕ダイアログで、プリコンパイラを登録した場合に出力します。
〔プリコンパイラ設定〕ダイアログの、〔INSDBINF〕タブで、〔INSDBINFコマンドを使用する〕チェックボックスにチェックをした場合に出力します。
各アプリケーションでの注意点
以下のアプリケーションでの注意事項について説明します。
プリコンパイラを使用するプロジェクト
CORBAアプリケーション
Webアプリケーションウィザードで作成したアプリケーション
プロジェクト外で提供するリポジトリファイル
プリコンパイラを使用するプロジェクト
〔プリコンパイラ設定〕ダイアログを使用して、プロジェクトにプリコンパイラを登録している場合、ビルド制御文に次のように出力します([]の数字は「ビルド制御文雛型」の番号に対応します)。
プリコンパイラコマンドとオプション、insdbinfコマンドのオプション[5]
プリコンパイラ展開ソースファイル、insdbinf生成ファイルを削除するコマンド[11]
プリコンパイラ展開ソースファイルを生成する指定[21]
insdbinf生成ファイルを生成する指定[22]
プリコンパイラ展開ソースファイルから、オブジェクトファイルやリポジトリファイルを生成する場合、“プリコンパイラ展開ソースファイル”は、「ビルド制御文雛型の説明と編集方法」の“COBOLソースファイル”に相当します。
プリコンパイラのコマンドや、オプションがWindowsと異なる場合、これらの設定を修正する必要があります。修正の方法は、「ビルド制御文雛型の説明」の該当する部分を参照してください。
CORBAアプリケーション
〔Interstage〕ダイアログを使用して、CORBAアプリケーションを生成するための情報を登録しているプロジェクトの、以下について説明します。
IDLソースファイルを登録しているCORBAアプリケーション
IDLソースファイルを登録していないCORBAアプリケーション
Interstageが提供するライブラリファイルの指定
IDLソースファイルを使用してCORBAアプリケーションを作成する場合は、ビルド制御文に次のように出力します。
IDLcコマンド、tdcコマンドに指定するオプション[4]
登録集名CORBA[7]
スタブ/スケルトンファイル、IDL登録集ファイルを削除するコマンド[11]
スタブ/スケルトンファイルを生成する指定[18]
スタブ/スケルトンファイルから、オブジェクトファイルやリポジトリファイルを生成する場合、“スタブ/スケルトンファイル”は、「ビルド制御文雛型の説明と編集方法」の“COBOLソースファイル”に相当します。
IDLcコマンド、tdcコマンドに指定するオプション[4]は、〔Interstage〕ダイアログの〔IDL翻訳オプション〕エディットボックスに設定したオプションを元に生成しています。そのため、お使いの環境に合わせて修正が必要です。特にオプション-Iや-Tが指定してある場合は確認が必要です。
修正の方法は、「ビルド制御文雛型の説明」の該当する部分を参照してください。
プロジェクト外から提供されたスタブ/スケルトンファイルを使用する場合、これらのスタブ/スケルトンファイルは、UNIX上のサーバディレクトリにあるものと仮定してビルド制御文に出力します。
CORBAアプリケーションをビルドするときに必要になるライブラリファイルは、〔制御文生成〕ダイアログの〔リンクオプション1〕タブで指定します。
指定が必要なライブラリファイルについては、Interstageのマニュアルを参照してください。
Webアプリケーションウィザードで作成したアプリケーション
プロジェクトマネージャのWebアプリケーションウィザードで生成したHTMLファイルには、実行可能ファイル名や、ダイナミックリンクライブラリ名が直接記述してある場合があります。
これらのHTMLファイルをUNIX上に送信して利用する場合は、ファイル名を、UNIX上の実行形式プログラム名や共用オブジェクトプログラム名に変更する必要があります。
Webアプリケーションウィザードで生成したファイルについては、“NetCOBOL ユーザーズガイド”の“Web連携”を参照してください。
プロジェクト外で提供するリポジトリファイル
プロジェクト外で作成したリポジトリファイルは、ビルド制御文には出力しません。〔制御文生成〕ダイアログの〔翻訳オプション〕タブで、入力となるリポジトリファイルの格納ディレクトリを指定する必要があります。