Graphic Performance tool build (CentOS7)

etc

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