Sun Studio 12: Fortran プログラミングガイド

3.2.1 SCCS によるファイルの管理

ファイルを SCCS の管理下に置くには、次の処理を行う必要があります。

3.2.1.1 SCCS ディレクトリの作成

まず最初に、プログラム開発を行なっているディレクトリに SCCS サブディレクトリを作成しなければいけません。次のコマンドを使用します。


demo% mkdir SCCS

なお、SCCS は必ず大文字にします。

3.2.1.2 SCCS ID キーワードの挿入

ファイルごとにいくつかの SCCS ID キーワードを挿入する開発者もいますが、これは必須ではありません。あとで、SCCS の get または delget コマンドによってファイルがチェックインされるたびに、キーワードはバージョン番号によって識別されます。キーワードの文字列は次の 3 か所によく置かれます。

キーワードを使用する利点は、ソースリストの中にも、コンパイルされたオブジェクトプログラムの中にも、バージョン情報が現れることです。文字列 @(#) を前に付けておけば、what コマンドを使用して、オブジェクトファイル中のキーワードを出力できます。

パラメータとデータの定義文だけを含むヘッダーファイルをインクルードした場合は、初期化データの生成は行われず、ファイルに対するキーワードは、通常コメントの中か PARAMETER 文に付けられます。ASCII データファイルやメイクファイルのようなファイルの場合には、SCCS 情報はコメントに現れます。

SCCS キーワードは % キーワード % の形式で現れ、SCCS の get コマンドによって本来の値に展開されます。頻繁に使用されるキーワードは、次のとおりです。

%Z% は、what コマンドで認識される識別子文字列 @(#) に展開されます。%M% は、ソースファイルの名前に展開されます。%I% は、この SCCS が管理するファイルのバージョン番号に展開されます。%E% は、現在の日付に展開されます。

たとえば、make のコメント中で次のようなキーワードを使用すると、メイクファイルを指定することができます。


#      %Z%%M%       %I%       %E%

ソースファイルの startupcore.fcomputepts.f、および pattern.f は、次の形式の初期化データによって指定できます。


      CHARACTER*50 SCCSID
      DATA SCCSID/"%Z%%M%       %I%       %E%\n"/

このファイルを SCCS で処理し、コンパイルし、SCCS の what コマンドでオブジェクトファイルを処理すると、次のように表示されます。


demo% f95 -c pattern.f
...
demo% what pattern
pattern:
      pattern.f 1.2 96/06/10

また、get でファイルに探査するたびに自動的に更新される、CTIME という名前の PARAMETER も作成できます。


      CHARACTER*(*) CTIME
      PARAMETER ( CTIME="%E%")

INCLUDE ファイルは、SCCS スタンプが入っている Fortran のコメントで注釈できます。


C       %Z%%M%       %I%       %E%

注 –

Fortran 95 ソースコードファイルから取得した 1 文字の型成分名を使用すると、SCCS キーワード認識と競合する可能性があります。たとえば、Fortran 95 構造体成分参照 X%Y%Z は、SCCS から渡された場合、SCCS の get を実行したあとに XZ となります。ここで、Fortran 95 プログラムで SCCS を使用するとき、構造体成分を定義するのに 1 文字の英字を使用しないように注意します。たとえば、Fortran 95 プログラムの構造体参照が X%YY%Z の場合、%YY% は SCCS によりキーワード参照として解釈されません。そのほかの方法としては、SCCS で get -k オプションを指定すると、SCCS キーワード ID を拡張しなくてもファイルが取得されます。


3.2.1.3 SCCS ファイルの作成

これで、SCCS の create コマンドによって、これらのファイルを SCCS の管理下に置くことができます。


demo% sccs create makefile commonblock startupcore.f \
  computepts.f pattern.f
demo%