めもめも
▼はい準備。
まずgccとg77をapt-getでインストール。ひょっとしたらf2cもいるかも。
ターゲットによってはgccの2.9.xを要求されるかもしれないのでその場合はそっちも入れて、
# update-alternative --config gcc
# update-alternative --config g77
▼次ソース取得。
総本山からclapack.tgzとatlas3.6.0.tgzを取得。
▼はい次ATLASのビルド
# tar xvfz atlas3.6.0.tgz
# cd ATLAS
# make ←この時点で設定するのはCPUタイプぐらいで、あとはデフォルトでOK
# make install arch=Linux_P4SSE2_4←ここんとこは前記makeの最後に表示されるものに従う
# cd ..
# tar xvfz clapack.tgzこれでmake.incのコピー元に対応した名称のライブラリファイル、lapack_LINUX.aができる。
# cd CLAPACK
# cp ../ATLAS/lib/Linux_P4SSE2_4/lib*.a ./ ←コピー元ディレクトリは先ほど生成したもの
# cp INSTALL/make.inc.LINUX ./make.inc ← コピー元は環境にあったものを選ぶ
# vi make.inc ← 下記のとおりBLASKLIBを変更
BLASLIB= ../../libcblaswr.a ../../libcblas.a ../../libatlas.a ←ATLASで作成したものを指定。二階層下からのパス。
# make f2clib
# make cblaswrap
# make lapacklib
▼パッケージのマージ
lapack_LINUX.aをliblapack.aに改名してATLASで作ったほうの内容をくっつけるのだ
# mv liblapack.a liblapack_ATLAS.a
# cp lapack_LINUX.a liblapack.a
# mkdir tmp
# cd tmp
# ar x ../liblapack_ATLAS.a
# ar r ../liblapack.a *.o
# cd ..
# rm -rf tmp
# mkdir /usr/local/lib/CLAPACK
# cp F2CLIBS/libI77.a /usr/local/lib/CLAPACK
# cp F2CLIBS/libF77.a /usr/local/lib/CLAPACK
# cp libatlas.a /usr/local/lib/CLAPACK
# cp libcblas.a /usr/local/lib/CLAPACK
# cp libcblaswr.a /usr/local/lib/CLAPACK
# cp liblapack.a /usr/local/lib/CLAPACK
# cp F2CLIBS/f2c.h /usr/local/include/CLAPACK
▼余談
gccのバージョン管理が必要ならCLAPACKディレクトリをgccのバージョンごとに作成し、
# update-alternatives --install /usr/local/lib/CLAPACK CLAPACK /usr/local/lib/CLAPACK_gcc3.2 32てな感じでalternativesを仕込んでおく(/etc/alternatives/に反映)
# update-alternatives --install /usr/local/lib/CLAPACK CLAPACK /usr/local/lib/CLAPACK_gcc2.9 29
# update-alternatives --config CLAPACKとかやれば切り替えられるという仕組み。
