mwrank (Jan 2005)
$ cd ~
$ tar zxf mwrank.tar.gz
$ cd rankdist
$ CFLAGS="-mcpu=i586 -O3" ./configure --prefix=/usr/gnu
LiDIA libraryを使用する(y)、LiDIAを使用するMWRANKのmodeに対して"1 - pure mode: uses LiDIA bigints, bigrationals and bigfloats"を選択する。
Makefileを編集する。
19c19
< OPTFLAG = -O3
---
> OPTFLAG = -mcpu=i586 -O3
38,39c38,41
< LIDIALIBDIR = .#/usr/local/lib
< LIDIAINCDIR = .#/usr/local/include
---
> #LIDIALIBDIR = .#/usr/local/lib
> #LIDIAINCDIR = .#/usr/local/include
> LIDIALIBDIR = /usr/local/lib
> LIDIAINCDIR = /usr/local/include
53,54c55,56
< LIDIACFLAGS = -DLiDIA_ALL -I$(LIDIAINCDIR)
< LIDIALFLAGS = -lLiDIA -L$(LIDIALIBDIR) -lgmp
---
> LIDIACFLAGS = -DLiDIA_ALL -I$(LIDIAINCDIR) -I/usr/gnu/include
> LIDIALFLAGS = -lLiDIA -L$(LIDIALIBDIR) -L/usr/gnu/lib -lgmp
62,63c64,65
< LIDIACFLAGS = -DLiDIA_INTS -I$(LIDIAINCDIR)
< LIDIALFLAGS = -lLiDIA -L$(LIDIALIBDIR) -lgmp
---
> LIDIACFLAGS = -DLiDIA_INTS -I$(LIDIAINCDIR) -I/usr/gnu/include
> LIDIALFLAGS = -lLiDIA -L$(LIDIALIBDIR) -L/usr/gnu/lib -lgmp
71,72c73,74
< LIDIACFLAGS = -DNTL_INTS
< LIDIALFLAGS = -lntl -lgmp
---
> LIDIACFLAGS = -DNTL_INTS -I/usr/gnu/include
> LIDIALFLAGS = -lntl -L/usr/gnu/lib -lgmp
GNU makeでmakeする。
allisogでリンクエラーが発生するが、mwrankのbuildには問題ないので、リンクエラーの対策は後回しにする。
[2005.04.15追記] LiDIAの旧版shared libraryを完全に削除して、libLiDIA.soを作成し直すことで、結果的に解決した。
しかし、LiDIA-2.1.3のshared libraryのbuildでは、./configure時に、CXXFLAGS="-mcpu=i586 -O3"を指定すると、GNU C compilerの内部エラーのため、途中で失敗したので、CXXFLAGS="-mcpu=i586 -O2"を指定することで回避した。
$ gmake progs
mwrankを/usr/gnu/bin/mwrankにコピーする。
$ su
# cp mwrank /usr/gnu/bin/
# exit