SPECViewPerf Ver.7 (かなり古いバージョン)のビルド手順です。本家サイトには既に掲載されていなく、奇跡的に sourceforge.net にソースを含んだ状態で残っていました。
ビルド手順など情報も SPECViewPerf Mini-HOWTO: Linux (icculus.org) が残っている状態なので、こちらのサイトでも残しておきます。
CentOS7 の状態と追加パッケージ
CentOS7では GNOME Desktop をインストールした状態を基本としています。そこに追加で以下のパッケージをインストールします。
ルートユーザで以下のコマンドを実行します。
# yum install gcc gcc-c++
# yum install glc-utils
# yum install mesa-libGL-devel msa-libGLU-devel
# yum install libpng12-devel
libpng12-devel をインストールする理由は、libpng-devel でビルドするとコンパイルが通らないためです。
改行コードの一括修正
viewperf 7.0 は基本的に Windows 環境でビルドされることを前提としているようで、改行コードがCRLFとなっています。その改行コードがシェルスクリプトの誤動作を発生させることがあるため、一括で修正してしまいます。
修正対象もシェルスクリプト(Cシェル用のスクリプトファイル)とC言語のソースとヘッダファイルとします。
なお、ここでは既にダウンロードした SPECViewperf7.0.zip を通常ユーザーで unzip していることを前提としています。
$ find . -name "*.csh" -type f -exec sed -i -e "s/\r//g" {} \;
$ find . -name "*.c" -type f -exec sed -i -e "s/\r//g" {} \;
$ find . -name "*.h" -type f -exec sed -i -e "s/\r//g" {} \;
ビルドを通すための修正事項
ビルドを通すために以下の修正を行います。
$ cd src
$ mv VP_OBJS.UNX.FUNC_CALLS Vp_objs.unx.func_calls
$ vi texture.c
#include "png.h" → #include <libpng12/png.h> へ変更
$ vi pngxor/pngxor.c
#include "png.h" → #include <libpng12/png.h> へ変更
$ vi clock.c
#define CLK_TCK CLOCKS_PER_SEC を37行目に追加
$ vi pngxor/Makefile.linux
CC = icc -c を CC = gcc -c へ変更
ビルド
viewperf, vpost, pngxor をビルドします。
$ make -f makefile.linux (viewperf をビルドする)
$ cd ./vpost/
$ gcc -o vpost vpost.c -lm
$ cd ../pngxor/
$ make -f Makefile.linux
実行
$ cd .. (src の一つ上に移動する)
$ cp src/viewperf ./viewperf/
$ cp src/vpost/vpost ./vpost/
$ cp src/pngxor/pngxor ./pngxor/
$ ./runall.csh