Freeの64bit版Fortranのセットアップ方法(3)

LAPACKのインストール方法についてです。

NetlibからダウンロードしたLAPACKは、元々LinuxなどのOS用に最適化されていますので、Windows OSで使用する場合には、少し変更が必要になります。

まず、LAPACKを解凍しましょう。
以下のようなディレクトリ構造になりますので、適当な場所に保存してください。

lapack-3.4.2 — [DOCS]
[INSTALL]
[lapacke]
[SRC]
[TESTING]
[BLAS]
[CMAKE]

ここでは、”lapack-3.4.2”のディレクトリ名を”lapack”に変更します。なお、変更しなくても動作はします。

次に、lapackのルートディレクトリにmake.incファイルを作成します。[INSTALL]ディレクトにある”make.inc.gfortran”をlapackのルートディレクトリに移動し、ファイル名を”make.inc”に変えてください。

この状態で、Mingwのコマンドプロンプトから、
>mingw32-make all
とすると LAPACKのコンパイルが開始されるのですが、Windows OSでは普通エラーが起こるはずです。実は、各ディレクトにあるmakefileの一部の書式をWindows用に変更しなければなりません。主な変更点は次の通りです。

① パイプを示すセミコロン”;”を”&”に置換します。
  だたし、すべて変えてしまうと、動かなくなります。
  例えば、
cd INSTALL; $(MAKE) -> cd INSTALL& $(MAKE)
と変更してください。一方で、
   slaruv.o: slaruv.f ; $(FORTRAN) $(NOOPT) -c $< -o $@
  の中央部にあるセミコロンはそのままにしてください。

② ディレクトリの”/”は”¥”にしないと動かない場合があります。

以上の変更は様子を見ながら置換して下さい。すべて変えてしまうとおかしくなる場合があります。

③ エディタで、LAPACKのルートディレクトリにあるmakefileを以下のように変更して、blaslibのコンパイルを有効化します。
   #lib: lapacklib tmglib
    lib: blaslib variants lapacklib tmglib

④ mingw32-makeを実行するにあたり、cp.exe、mv.exeが必要です。前のブログでhead.exe、tail.exeを最新版に変更する方法をアップしましたが、同じファイルの中に、cp.exe、mv.exeが含まれていますので、これらの実行ファイルをパスの通ったディレクトリにコピーするか、上記の実行ファイルがあるディレクトリについて環境変数でパスを通してください。

⑤ makefile中で”mv”の実行ファイルを使用する際、ファイル名に”.exe”が抜けているために移動しないことがあります。適宜付けるようにすると、動くようになります。

LAPACKのルートディレクトリに、以下の3つのファイルが作成されていたら完成です。

librefblas.a
liblapack.a
libtmglib.a