以下では、プロジェクトの情報とビルド制御文生成ダイアログの情報から、どのような規則でビルド制御文の雛型を生成するかを説明します。
プロジェクトマネージャの以下のフォルダに登録されているファイルのうち、次のものを翻訳対象ファイルとする翻訳処理をビルド制御文として展開します。
〔COBOLソースファイル〕フォルダに登録されているCOBOLソースファイル。
〔登録集ファイル〕フォルダ登録されている登録集ファイル。
〔定義体ファイル〕フォルダに登録されている画面帳票定義体ファイル。
〔プリコンパイラ〕フォルダの最下位階層の〔プリコンパイラ〕フォルダに登録されたプリコンパイラソースファイルと、プリコンパイラソースファイルの〔インクルードファイル〕フォルダに登録されている登録集ファイル。
〔IDLソース〕フォルダに登録されているIDLソースファイルと、IDLソースファイルの〔インクルードファイル〕フォルダに登録されているインクルードファイル。
IDLコンパイラにより翻訳を行わない場合の、設定されたスタブ/スケルトンファイル。ただし、“ビルド制御文生成”ダイアログで〔送信済のファイルだけをビルドの対象とする〕を指定した場合は、“送信”機能で送信した際の送信情報を元に翻訳対象ファイルの絞込みが行われます。〔送信〕ダイアログの〔送信ファイル情報一覧〕に設定されていないファイルは翻訳対象ファイルとなりません。
ファイルの存在位置は、“送信”時に指定した“送信先”のディレクトリとなります。
〔送信済のファイルだけをビルドの対象とする〕を指定しない場合は、プロジェクトマネージャに登録されている上記のファイルすべてが翻訳対象ファイルとなります。
この場合、未送信のファイルの存在位置は“サーバディレクトリ”となります。
〔プロジェクト〕 - 〔オプション〕 - 〔翻訳オプション〕メニューから設定したWindowsの翻訳オプションを、UNIXの翻訳オプションの形式に変換したものをビルド制御文に展開します。
ただし、ディレクトリ名を指定するオプションについては、WindowsシステムとUNIX系システムの機能差から、〔ビルド制御文生成〕の〔オプション設定〕で更新が必要となります。
UNIX固有のオプションについては、同様に〔ビルド制御文生成〕の〔オプション設定〕で設定します。
また、登録集名の設定については、生成されたビルド制御文を編集する必要があります。
また、Windowsシステム固有の翻訳オプションについては展開されません。
翻訳オプション名 | 説明 | ビルド制御文生成で必要な操作 |
---|---|---|
ALPHAL | 英小文字を英大文字と同一視するかどうかを指定する。 | - |
ASCOMP5 | 2進項目の解釈方法を指定する。 | - |
BINARY | 2進項目の割り付け領域長をワード単位、バイト単位にするかを指定する。 | - |
CHECK | CHECK機能を使用するかどうかを指定する。 | - |
CODECHK | 実行時のコード系チェックの指定。 | UNIX固有として、〔オプション設定〕で追加 |
CONF | 新/旧規格の非互換を指摘する診断メッセージを出力するかどうかを指定する。 | - |
COPY | ソースプログラムリストへの登録集原文を表示するかどうかを指定する。 | - |
COUNT | COUNT機能を使用するかどうかを指定する。 | - |
CREATE | オブジェクト生成のために翻訳するか、リポジトリ生成のために翻訳するかを指定する。 | - |
CURRENCY | 通貨編集用文字を指定する。 | - |
DLOAD | プログラム構造を指定する。 | - |
DUPCHAR | Unicode環境でソースを翻訳する際の全角ハイフン文字の扱いを指定する。 | UNIX固有として、〔オプション設定〕で追加 |
EQUALS | SORT文での同一キーデータの処理方法を指定する。 | - |
FLAG | 表示する診断メッセージのレベルを指定する。 | - |
FLAGSW | COBOL文法の言語要素に対する指摘メッセージを出力するかどうかを指定する。 | - |
FORMEXT | 画面帳票定義体ファイルの拡張子を指定する。 | 環境変数SMED_SUFFIXとして設定される |
FORMLIB | 画面帳票定義体ファイルの格納フォルダを指定する。 | “画面帳票定義体ファイルの入力先ディレクトリ(-m)”を更新する |
INITVALUE | 作業場所節でのVALUE句なし項目の扱い。 | - |
KANA | カナ文字の文字コードの扱いを指定する。 | UNIX固有として、〔オプション設定〕で追加 |
LALIGN | 連絡節データ宣言の扱いを指定する。 | UNIX固有として、〔オプション設定〕で追加 |
LANGLVL | ANSI COBOL規格の非互換項目をどの規格に従って解釈するかを指定する。 | - |
LIB | 登録集ファイルの格納フォルダを指定する。 | “登録集ファイルの入力先ディレクトリ(-I)”を更新する |
LIBEXT | 登録集ファイルの拡張子を指定する。 | 環境変数COB_LIB_SUFFIXとして設定される |
LINECOUNT | 翻訳リストの1ページあたりの行数を指定する。 | - |
LINESIZE | 翻訳リストの1行あたりの文字数を指定する。 | - |
LIST | 目的プログラムリストの出力を出力するかどうかを指定する。 | - |
MAIN | 主プログラム/副プログラムの違いを指定する。 | - |
MAP | データマップリスト、プログラム制御情報リストおよびセクションサイズリストを出力するかどうかを指定する。 | - |
MESSAGE | オプション情報リスト、翻訳単位統計情報リストを出力するかどうかを指定する。 | - |
MODE | ACCEPT文の動作の指定を指定する。 | - |
NCW | 日本語利用者語の文字集合を指定する。 | - |
NSPCOMP | 日本語空白の比較方法を指定する。 | - |
NUMBER | 行番号としてソースプログラムの一連番号領域の値を使用するかどうかを指定する。 | - |
OBJECT | 目的プログラムを出力するかどうかを指定する。 | “オブジェクトファイルの出力先ディレクトリ(-do)”を更新する NOOBJECTが指定されていた場合、”-do”は無効 |
OPTIMIZE | 広域最適化を行うかどうかを指定する。 | - |
各種翻訳リストの出力を出力するかどうかとその出力先を指定する。 | “翻訳リストファイルの出力先ディレクトリ(-dp)”を更新する PRINTが指定されていない場合、”-dp”は無効 | |
QUOTE/APOST | 表意定数QUOTEの扱いを指定する。 | - |
RCS | 実行時コード系を指定する。 | - |
REP | リポジトリファイルの入出力先フォルダを指定する。 | “リポジトリファイルの入出力先ディレクトリの指定(-dr)”を更新する |
REPIN | リポジトリファイルの入力元フォルダを指定する。 | “リポジトリファイルの入力先ディレクトリ(-R)”を更新する |
RSV | 使用する予約語セットを指定する。 | - |
SAI | ソース解析情報ファイルを出力するかどうかを指定する。 | “ソース解析情報ファイルの出力先ディレクトリ(-ds)”を更新する SAIが指定されていない場合、”-ds”は無効 |
SDS | 符号付き10進項目の符号整形を実施するかどうかを指定する。 | - |
SHREXT | マルチスレッドプログラムにおける外部属性に関する扱いを指定する。 | - |
SMSIZE | PowerSORTが使用するメモリ容量を指定する。 | - |
SOURCE | ソースプログラムリストを出力するかどうかを指定する。 | - |
SQLGRP | SQLのホスト変数定義の拡張仕様を使用するかどうかを指定する。 | - |
SRF | 正書法の種類を指定する。 | - |
SSIN | ACCEPT文のデータの入力先を指定する。 | - |
SSOUT | DISPLAY文のデータの出力先を指定する。 | - |
STD1 | 英数字の文字の大小順序の比較方法を指定する。 | - |
TAB | ソース中のタブ文字の扱いを指定する。 | - |
TEST | 対話型デバッガを使用するかどうかを指定する。 | “デバッグ情報ファイルの出力先ディレクトリ(-dd)”を更新するTESTが指定されていない場合、”-dd”は無効 |
THREAD | マルチスレッドプログラムの作成を指定する。 | - |
TRACE | TRACE機能を使用するかどうかを指定する。 | - |
TRUNC | 桁落とし処理を実施するかどうかを指定する。 | - |
XREF | 相互参照リストを出力するかどうかを指定する。 | - |
ZWB | 符号付き外部10進項目と英数字項目の比較方法を指定する。 | - |
〔登録集名〕 | 登録集名 | ビルド制御文生成後に編集 (注) |
注 :
出力されるパス名は“サーバディレクトリ”となります。他のパスに変更する場合は、ビルド制御文の生成後、ビルド制御文をエディタ等で直接編集する必要があります。
リンクオプションについては、WindowsシステムとUNIX系システムで機能が異なるため、Windowsのリンクオプションはビルド制御文に展開されません。
ただし、マルチスレッドモデルのプログラムをリンクするオプション("-Tm")は、Windowsの翻訳オプションに"THREAD(MULTI)"を指定した場合、自動的に出力されます。
〔ビルド制御文生成〕ダイアログの〔オプション設定〕で設定した情報および、プロジェクトツリーに登録されたNetCOBOL製品の提供するライブラリファイルを、cobolコマンドラインオプションとしてビルド制御文に展開します。
これらの指定は、プロジェクトに複数のターゲットファイルが含まれる場合、すべてのターゲットファイルに対して指定されます。特定のターゲットファイルにのみ指定を行わなければならない場合には、生成されたビルド制御文を直接編集して追加してください。
NetCOBOL製品の提供するライブラリファイル
NetCOBOL製品の提供するライブラリファイルがプロジェクトに登録してある場合、リンクオプションに出力します。ただし、WindowsシステムとUNIX系システムではファイル名が異なるため、リンクオプションへは以下の下線部分のような形式で出力します。
例
COBLDFLAGS = $(F3BICFPR_LIB)
下線部分は、ビルド実行時に、UNIX系システムにインストールしている変換用ファイルを使用し、リンクオプションへ指定する形式へと変換されます。
例に示したファイルの場合、次のように変換しています。
プロジェクトへの登録ファイル名 | F3BICFPR.lib |
ビルド制御文での表記 | $(F3BICFPR_LIB) |
ビルド実行時の変換 | -lFJPRT |
変換用ファイルはインストールディレクトリ配下の“config/mkinc/LIBLIST”に提供されており、ファイルの内容は以下の通りです。
イコール(=)の左側の文字列の、“_”を“.”に変換したものが、WindowsシステムにNetCOBOLが提供しているライブラリファイル名となります。
F1FVDENT_LIB = -ldbalcob F3BICCOL_LIB = -lFJCOL-LINKED-LIST -lFJCOL-ALPHANUMERIC-MAP -lFJCOL-IDENTITY-SET F3BICFPR_LIB = -lFJPRT F3BIJART_LIB = -ljart F3BICWSR_LIB = -lcobw3cgi F3BIFCFA_LIB = -lcobfa F3BIFUTC_LIB = F3BINSRT_LIB = -lcobw3saf F3BISAPI_LIB =
翻訳対象ファイルのCOBOLソース、スタブ/スケルトン(IDLあり/なし)、プリコンパイラ展開ソースから生成されます。
COBOLソースファイルの拡張子が.cob, .cbl, .cobolの場合、COBOLソースの拡張子を.oに置き換えたものとなり、COBOLソースファイルの拡張子が.cob, .cbl, .cobolの以外場合、COBOLソースファイル名に拡張子.oを付加したものとなります。
例
foo.cob → foo.o , foo.abc → foo.abc.o)
また、オブジェクトファイルの格納先は翻訳オプション“オブジェクトファイルの出力先ディレクトリ(-do)”を指定した場合は指定したディレクトリとなります。
指定していない場合には、ソースファイルと同じディレクトリとなります。
プロジェクトマネージャに登録されている、COBOLソースファイル、スタブ/スケルトンファイル(IDLソースあり/なし)、プリコンパイラ展開ソースのターゲットリポジトリファイル名より生成します。
生成するソースファイルが翻訳対象ファイルでない場合には出力されません。
ビルド時に生成されるリポジトリファイル名は、翻訳オプションALPHALの指定に従って大文字/小文字が決定されますが、ビルド制御文に出力されるリポジトリファイル名はプロジェクトマネージャに登録されているファイル名がそのまま出力されます。プロジェクトマネージャに登録されているリポジトリファイル名とビルド時に生成されるリポジトリファイル名が異なる場合は、生成されたビルド制御文を修正してください。
また、リポジトリファイルの格納先は翻訳オプション“リポジトリファイルの入出力先ディレクトリの指定(-dr)”を指定した場合は指定したディレクトリとなります。
指定していない場合には、ソースファイルと同じディレクトリとなります。
IDLコンパイラによる翻訳を行う場合は、プロジェクトマネージャに登録されているIDLコンパイラ(IDLcおよびtdc)が作成するスタブ/スケルトンファイル名が出力されます。ファイルの格納先はIDLソースと同じディレクトリとなります。
IDLコンパイラにより翻訳を行わない場合は、設定されたスタブ/スケルトンファイル名が“サーバディレクトリ”に出力されます。
IDLコンパイラのコマンドオプションについては、プロジェクトマネージャに登録されているWindowsシステムの情報がそのまま出力されます。
ただし、WindowsシステムとUNIX系システムのIDLコンパイラの差異から、〔Interstage〕の指定が以下の条件に当てはまる場合には“-unic”オプションが追加されます。
〔言語〕が〔オブジェクト指向COBOL〕 かつ
〔アプリケーション形態〕が〔CORBA〕 かつ
〔実行時コード系〕が〔Unicode〕
また、フォルダを指定するオプションについては、以下の規則で変換されます。
オプション | 意味 | 変換規則 |
---|---|---|
-I | インクルードファイル検索ディレクトリ | (a), (c) |
-T | 一時ファイル作成ディレクトリ | (b), (c) |
(a) インクルードファイルを転送した場合は、転送先ディレクトリとします。インクルードファイルを転送しなかった場合は、相対パス指定のときはディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外のときは削除します。
(b) 相対パスならディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外なら“サーバディレクトリ”になります。
(c) 指定されているパス名が""で囲まれている場合、UNIX形式のパス名も""で囲まれます。
プロジェクトマネージャに登録されているプリコンパイラ展開ソースファイル名が出力されます。ファイルの格納先ディレクトリは、プロジェクトマネージャ上の登録形式が相対パス指定の場合は、パス構成をそのままUNIX形式に変換して出力します。相対パス以外の場合は、“サーバディレクトリ”を出力します。ファイル名はプロジェクトマネージャに登録されているファイル名のまま出力します。
オリジナルソース(プリコンパイラフォルダで最下位階層に登録されているソース)が翻訳対象ファイルであるときに出力します。
ビルド制御文には、プリコンパイラのコマンドの情報も出力されます。
コマンドの設定はプリコンパイラ展開ソースファイル単位に、マクロ定義としてビルド制御文に出力されます。定義されるマクロ名は、“PRECOMFLAGSn”(nは1からの通し番号)となります。
プロジェクトマネージャで行った〔プリコンパイラ設定〕の設定情報を元に以下の規則で変換されます。
〔コマンド〕エディットボックスに指定した、プリコンパイラの実行形式ファイル名から、パスと拡張子を削除し、ファイル名を英小文字に変換したものを使用します。
Windowsシステムで設定した内容をそのまま使用します。
ただし、以下のマクロ指定部分については、以下の様に展開されます。
オリジナルソース名
プリコンパイラ展開ソースファイルの格納先ディレクトリ
プリコンパイラ展開ソースファイル
プロジェクトマネージャに登録されているinsdbinf生成ファイル名が出力されます。
オリジナルソース(プリコンパイラフォルダで最下位の階層に登録されているソース)が翻訳対象ファイルであるときに出力します。
Windowsのフォルダ指定オプションの内容は、以下の規則で変換されます。
オプション | 意味 |
---|---|
-I | インクルードファイル検索ディレクトリ |
インクルードファイルを転送した場合は転送先ディレクトリとなります。転送しなかった場合は、相対パス指定のときはディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外のときは削除します。
プロジェクトマネージャに登録されている、EXEの最終ターゲット名より生成します。
出力されるファイル名は、最終ターゲット名から拡張子(.EXE)を取り除いたものとなります。
例
Foo.EXE → Foo
実行形式プログラムを構成するオブジェクトファイルをターゲットとする依存関係がすべて出力された場合のみ出力されます。
プロジェクトマネージャに登録されている、DLLの最終ターゲット名より生成します。
出力されるファイル名は、最終ターゲット名の先頭にlibを付加し、拡張子(.DLL)を.soに変換したものとなります。
例
Foo.DLL → libFoo.so
生成するソースファイルがビルド制御文に出力される翻訳対象ファイルでない場合には出力されません。
注意
特殊文字を含む項目の変換
Makefileの文法上特別な意味を持つ文字が存在します。これらの文字はビルド制御文にそのまま出力すると、正しく動作しない可能性があります。
そのため、以下の文字については該当の文字の前に'\'を追加(クォーティング)して出力を行っていますが、やむを得ない場合を除き使用しないことをお勧めします。
TAB | 空白 | ! | “ | & | | | ^ | ` | < | > |
また、以下の文字については特殊文字として判定されますが、ビルド制御文の出現個所の構成により対処方法が異なるため(対処不要も含む)、変換処理は行われずにそのまま出力されます。
# | $ | % | ' | ( | ) | = | ~ | - | { | [ |
+ | * | } | ; | : | ] | ? | . | / | \ |
※-(ハイフン)および+(プラス)は、ファイル名先頭に指定してある場合のみ特殊文字とする。
これらの特殊文字がビルド制御文に出力される場合、ビルド制御文生成実行時に確認を促すメッセージが出力されます。
生成されたビルド制御文の内容を確認し、必要がある場合には修正を行ってください。
修正の方法については、“4.2.3 生成したビルド制御文雛型とその修正”を参照してください。
ファイル名の大文字・小文字変換
ビルド制御文に出力するファイル名の大文字・小文字は、プロジェクトマネージャに登録されているWindowsシステムの資産のファイル名をそのまま使用します。しかし、以下のファイルについては、拡張子の小文字化が行われます。
拡張子が“.COB”,“.CBL”,“.COBOL”のファイル
拡張子が“.IDL”のファイル
ビルド制御文生成時に変換されるファイル名がソースファイル中に記述されている場合、UNIX系システム上のファイル名とソースファイル中のファイル名が一致しない場合があります。その場合は、ソースファイル中のファイル名の記述をUNIX系システム上の実際のファイル名に修正してください。