首先阅读根目录下的README.install。
生成f2c库
直接在根目录下输入make f2clib
,生成libf2c.a
接下来搞BLAS库
发现如果需要替换BLAS库,主要有以下两个区别:
(1)需要连接的BLAS的是CBLAS接口
(2)需要连接的BLAS的是Fortran接口
如果是CBLAS接口的BLAS
这种情况官方举的例子为ATLAS,后面我们替换可以参考。
<1> 在根目录下输入make cblaswrap
生成libcblaswr.a 接口包装库。
<2> 需要进入make.inc文件中, 修改BLASLIB = ../../libcblaswr.a -lcblas -latlas
.
<3> 然后在输入命令cd CLAPACK/BLAS/TESTING
进入BLAS测试目录,分别输入make -f Makeblat2
和make -f Makeblat3
生成level-2与level-3样例.此时BLAS目录下会有测试文件,可用如下命令执行测试:
./xblat2s < sblat2.in ./xblat2c < cblat2.in
./xblat2d < dblat2.in ./xblat2z < zblat2.in
./xblat3s < sblat3.in ./xblat3c < cblat3.in
./xblat3d < dblat3.in ./xblat3z < zblat3.in
如果是Fortan接口的BLAS
参考官方的样例,自己在泰山服务器中实验发现按如下步骤可以成功执行测试:
<1>进入make.inc文件中, 修改CC = gcc -DNO_BLAS_WRAP
和BLASLIB = /home/lsl/OpenBLAS/libopenblas.a -lpthread
.
<2> 此时不需要生成接口包装库.
<3> 可以如上一节的<3>一样操作,正常进行测试。
编译LAPACK源码
cd CLAPACK/SRC; make
,发生报错,缺少INSTALL里的一个文件。
所以最好先进入cd CLAPACK/INSTALL; make
会在根目录生成lapack库。
想要验证正确性,后续看README.md中的(6)