ページの先頭行へ戻る
NetCOBOL V12.0 ユーザーズガイド(UNIX分散開発編)
FUJITSU Software

4.2.1 ビルド制御文雛型の生成時の規則

以下では、プロジェクトの情報とビルド制御文生成ダイアログの情報から、どのような規則でビルド制御文の雛型を生成するかを説明します。

翻訳対象ファイル

プロジェクトマネージャの以下のフォルダに登録されているファイルのうち、次のものを翻訳対象ファイルとする翻訳処理をビルド制御文として展開します。

  • 〔COBOLソースファイル〕フォルダに登録されているCOBOLソースファイル。

  • 〔登録集ファイル〕フォルダ登録されている登録集ファイル。

  • 〔定義体ファイル〕フォルダに登録されている画面帳票定義体ファイル。

  • 〔プリコンパイラ〕フォルダの最下位階層の〔プリコンパイラ〕フォルダに登録されたプリコンパイラソースファイルと、プリコンパイラソースファイルの〔インクルードファイル〕フォルダに登録されている登録集ファイル。

  • 〔IDLソース〕フォルダに登録されているIDLソースファイルと、IDLソースファイルの〔インクルードファイル〕フォルダに登録されているインクルードファイル。

  • IDLコンパイラにより翻訳を行わない場合の、設定されたスタブ/スケルトンファイル。ただし、“ビルド制御文生成”ダイアログで〔送信済のファイルだけをビルドの対象とする〕を指定した場合は、“送信”機能で送信した際の送信情報を元に翻訳対象ファイルの絞込みが行われます。〔送信〕ダイアログの〔送信ファイル情報一覧〕に設定されていないファイルは翻訳対象ファイルとなりません。

ファイルの存在位置は、“送信”時に指定した“送信先”のディレクトリとなります。

〔送信済のファイルだけをビルドの対象とする〕を指定しない場合は、プロジェクトマネージャに登録されている上記のファイルすべてが翻訳対象ファイルとなります。

この場合、未送信のファイルの存在位置は“サーバディレクトリ”となります。

翻訳オプション

〔プロジェクト〕  -  〔オプション〕  -  〔翻訳オプション〕メニューから設定したWindowsの翻訳オプションを、UNIXの翻訳オプションの形式に変換したものをビルド制御文に展開します。

ただし、ディレクトリ名を指定するオプションについては、WindowsシステムとUNIX系システムの機能差から、〔ビルド制御文生成〕の〔オプション設定〕で更新が必要となります。

UNIX固有のオプションについては、同様に〔ビルド制御文生成〕の〔オプション設定〕で設定します。

また、登録集名の設定については、生成されたビルド制御文を編集する必要があります。

また、Windowsシステム固有の翻訳オプションについては展開されません。

図4.4 翻訳オプションの情報展開の流れ

表4.1 ビルド制御文に展開する翻訳オプションの一覧

翻訳オプション名

説明

ビルド制御文生成で必要な操作

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

広域最適化を行うかどうかを指定する。

-

PRINT

各種翻訳リストの出力を出力するかどうかとその出力先を指定する。

“翻訳リストファイルの出力先ディレクトリ(-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)”を指定した場合は指定したディレクトリとなります。

指定していない場合には、ソースファイルと同じディレクトリとなります。

Interstageのスタブ/スケルトンファイル

IDLコンパイラによる翻訳を行う場合は、プロジェクトマネージャに登録されているIDLコンパイラ(IDLcおよびtdc)が作成するスタブ/スケルトンファイル名が出力されます。ファイルの格納先はIDLソースと同じディレクトリとなります。

IDLコンパイラにより翻訳を行わない場合は、設定されたスタブ/スケルトンファイル名が“サーバディレクトリ”に出力されます。

IDLコンパイラのコマンドオプションについては、プロジェクトマネージャに登録されているWindowsシステムの情報がそのまま出力されます。

ただし、WindowsシステムとUNIX系システムのIDLコンパイラの差異から、〔Interstage〕の指定が以下の条件に当てはまる場合には“-unic”オプションが追加されます。

  1. 〔言語〕が〔オブジェクト指向COBOL〕  かつ

  2. 〔アプリケーション形態〕が〔CORBA〕  かつ

  3. 〔実行時コード系〕が〔Unicode〕

    図4.5 Interstageダイアログ

また、フォルダを指定するオプションについては、以下の規則で変換されます。

表4.2 IDLコンパイラにおけるフォルダ指定オプションの変換

オプション

意味

変換規則

-I

インクルードファイル検索ディレクトリ

(a), (c)

-T

一時ファイル作成ディレクトリ

(b), (c)

(a)  インクルードファイルを転送した場合は、転送先ディレクトリとします。インクルードファイルを転送しなかった場合は、相対パス指定のときはディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外のときは削除します。

(b)  相対パスならディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外なら“サーバディレクトリ”になります。

(c)  指定されているパス名が""で囲まれている場合、UNIX形式のパス名も""で囲まれます。

プリコンパイラ展開ソースファイル

プロジェクトマネージャに登録されているプリコンパイラ展開ソースファイル名が出力されます。ファイルの格納先ディレクトリは、プロジェクトマネージャ上の登録形式が相対パス指定の場合は、パス構成をそのままUNIX形式に変換して出力します。相対パス以外の場合は、“サーバディレクトリ”を出力します。ファイル名はプロジェクトマネージャに登録されているファイル名のまま出力します。

オリジナルソース(プリコンパイラフォルダで最下位階層に登録されているソース)が翻訳対象ファイルであるときに出力します。

ビルド制御文には、プリコンパイラのコマンドの情報も出力されます。

コマンドの設定はプリコンパイラ展開ソースファイル単位に、マクロ定義としてビルド制御文に出力されます。定義されるマクロ名は、“PRECOMFLAGSn”(nは1からの通し番号)となります。

プロジェクトマネージャで行った〔プリコンパイラ設定〕の設定情報を元に以下の規則で変換されます。

プリコンパイラのコマンド名

〔コマンド〕エディットボックスに指定した、プリコンパイラの実行形式ファイル名から、パスと拡張子を削除し、ファイル名を英小文字に変換したものを使用します。

プリコンパイラコマンドのパラメタ

Windowsシステムで設定した内容をそのまま使用します。

ただし、以下のマクロ指定部分については、以下の様に展開されます。

%INFILE%

オリジナルソース名

%OUTFOLDER%

プリコンパイラ展開ソースファイルの格納先ディレクトリ

%OUTFILE%

プリコンパイラ展開ソースファイル

insdbinf生成ファイル

プロジェクトマネージャに登録されているinsdbinf生成ファイル名が出力されます。

オリジナルソース(プリコンパイラフォルダで最下位の階層に登録されているソース)が翻訳対象ファイルであるときに出力します。

Windowsのフォルダ指定オプションの内容は、以下の規則で変換されます。

表4.3 insdbinfにおけるフォルダ指定オプションの変換

オプション

意味

-I

インクルードファイル検索ディレクトリ

インクルードファイルを転送した場合は転送先ディレクトリとなります。転送しなかった場合は、相対パス指定のときはディレクトリ構成をそのままにUNIX形式に変換し、相対パス以外のときは削除します。

実行形式プログラム

プロジェクトマネージャに登録されている、EXEの最終ターゲット名より生成します。

出力されるファイル名は、最終ターゲット名から拡張子(.EXE)を取り除いたものとなります。

Foo.EXE → Foo

実行形式プログラムを構成するオブジェクトファイルをターゲットとする依存関係がすべて出力された場合のみ出力されます。

共用オブジェクトプログラム

プロジェクトマネージャに登録されている、DLLの最終ターゲット名より生成します。

出力されるファイル名は、最終ターゲット名の先頭にlibを付加し、拡張子(.DLL)を.soに変換したものとなります。

Foo.DLL → libFoo.so

生成するソースファイルがビルド制御文に出力される翻訳対象ファイルでない場合には出力されません。

注意

  1. 特殊文字を含む項目の変換

    Makefileの文法上特別な意味を持つ文字が存在します。これらの文字はビルド制御文にそのまま出力すると、正しく動作しない可能性があります。

    そのため、以下の文字については該当の文字の前に'\'を追加(クォーティング)して出力を行っていますが、やむを得ない場合を除き使用しないことをお勧めします。

    クォーティングする特殊文字の一覧

    TAB

    空白

    !

    &

    |

    ^

    `

    <

    >

    また、以下の文字については特殊文字として判定されますが、ビルド制御文の出現個所の構成により対処方法が異なるため(対処不要も含む)、変換処理は行われずにそのまま出力されます。

    変換を行わない特殊文字の一覧

    #

    $

    %

    '

    (

    )

    =

    ~

    -

    {

    [

    +

    *

    }

    ;

    :

    ]

    ?

    .

    /

    \

    ※-(ハイフン)および+(プラス)は、ファイル名先頭に指定してある場合のみ特殊文字とする。

    これらの特殊文字がビルド制御文に出力される場合、ビルド制御文生成実行時に確認を促すメッセージが出力されます。

    生成されたビルド制御文の内容を確認し、必要がある場合には修正を行ってください。

    修正の方法については、“4.2.3 生成したビルド制御文雛型とその修正”を参照してください。

  2. ファイル名の大文字・小文字変換

    ビルド制御文に出力するファイル名の大文字・小文字は、プロジェクトマネージャに登録されているWindowsシステムの資産のファイル名をそのまま使用します。しかし、以下のファイルについては、拡張子の小文字化が行われます。

    • 拡張子が“.COB”,“.CBL”,“.COBOL”のファイル

    • 拡張子が“.IDL”のファイル

  3. ビルド制御文生成時に変換されるファイル名がソースファイル中に記述されている場合、UNIX系システム上のファイル名とソースファイル中のファイル名が一致しない場合があります。その場合は、ソースファイル中のファイル名の記述をUNIX系システム上の実際のファイル名に修正してください。