/compile_only オプションと /keep オプションの両方を省略した場合,指定された Fortran ソース・ファイルは,1 つのオブジェクト・ファイルにコンパイルされた後,リンクされます。オブジェクト・ファイルはリンク後に削除されます。すべての Fortran ソース・ファイルが 1 つのオブジェクト・ファイルにコンパイルされるため,手続間の最適化を完全に行うことができます。DF コマンドでは,基本最適化レベルは (キーワードなしで /debug を指定しない限り) /optimize:4 です。
/compile_only または /keep オプションを指定し,手続間の最適化を完全に行わせたい場合,/object オプションも指定します。/compile_only と /object:file オプションを組み合わせると,複数の Fortran ソース・ファイルから 1 つのオブジェクト・ファイルが作成され,手続間の最適化が完全に行えるようになります。オブジェクト・ファイルは後でリンクすることができます。
次のコマンドは,/compile_only と /object の両方のオプションを使い,手続間の最適化を行うために,/optimize:4 オプションを明示的に指定しています。
DF /compile_only /object:out.obj /optimize:4 ax.for bx.for cx.for
/object オプションを指定せずに /compile_only または /keep オプションを指定すると,個々のソース・ファイルが 1 つのオブジェクト・ファイルにコンパイルされます。これは,最適化を指定しなかった場合 (/optimize:0),または局所的な最適化を指定した場合 (/optimize:1) には問題ありません。複数の入力ファイルを指定し,複数のオブジェクト・ファイルを作成するオプション (/object なしの /compile_only など) を指定し,さらに大域的な最適化 (/optimize:2 以上の最適化レベル) を明示的または暗黙的に指定した場合,情報メッセージが表示されます。
/compile_only オプションを指定するときには,後に別途 DF コマンドを使ってオブジェクト・ファイルをリンクする必要があります。この場合,大きなアプリケーションでは,NMAKE コマンドによって処理されるメイクファイルを使って,増分コンパイルを行うと便利です。
ただし,複数の Fortran ソース・ファイルをコンパイルするときには,/compile_only または /keep オプションを省略するか,/compile_only オプションと /object:file オプションを使用することによって,手続間の最適化が完全に行えるということを覚えておいてください。
最適化オプションについては,「ソフトウェア環境と効率的なコンパイル」を参照してください。