Linux版ビューワ コンパイル手順(影がいいです〜)

ぱすてる

2008年06月22日 19:25


● 今日は朝から雨なので

最近話題になってる、インワールドの影(Dynamic Shadows)を体験したくて
SLビューワのLinux版を、ソースからコンパイル・ビルドしてみました。

私が最近買ったPCですが、グラフィックボードがGF8800GTXなので、OKみたいです。
OSは、Linux Ubuntu8.04LTS です。



● マニュアルを読みます。

結構親切でわかりやすいのですが、案の定、コンパイル中にエラーが出まくります。
試行錯誤と野生の勘で、何とか動きましたので、ヨシとします。。^^;

http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Linux)



● Required tools

Root権限で、必要なパッケージをインストールしました。

# apt-get install scons
# apt-get install bison
# apt-get install flex
# apt-get install libboost-program-options-dev




● Installing the required libraries

Root権限で、必要なライブラリをインストールしました。

# apt-get install mesa-common-dev
# apt-get install libglu1-mesa-dev
# apt-get install libstdc++6-dev
# apt-get install zlib1g-dev
# apt-get install libssl-dev




● ソースコード(Changeset 575)の入手

http://svn.secondlife.com/trac/linden/changeset/575

slviewer-artwork-shadow-draft-r87814.zip
slviewer-linux-libs-shadow-draft-r87814.tar.gz
slviewer-src-shadow-draft-r87814.tar.gz




このサイトから、必要なソース3つをwgetコマンドでダウンロードしました。

$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-artwork-shadow-draft-r87814.zip
$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-linux-libs-shadow-draft-r87814.tar.gz
$ wget http://secondlife.com/developers/opensource/downloads/2008/05/slviewer-src-shadow-draft-r87814.tar.gz




● www.fmod.org サウンド関連ライブラリ(fmodapi375linux.tar.gz)の入手

サードバーティ製のサウンド関連ライブラリが必要と書いてありますので、入手します。

$ wget http://www.fmod.org/index.php/release/version/fmodapi375linux.tar.gz



●  Unpack the source tree

ソースコードを解凍します

$ tar xvzf slviewer-src-shadow-draft-r87814.tar.gz
$ tar xvzf slviewer-linux-libs-shadow-draft-r87814.tar.gz
$ unzip slviewer-artwork-shadow-draft-r87814.zip


上書きしますか?の質問に、ALL を選んでみました。

replace linden/indra/newview/app_settings/windlight/clouds2.tga? [y]es, [n]o, [A]ll, [N]one, [r]ename: A

ローカルディレクトリに「linden」というディレクトリが作成され、ソース1式が解凍されます。



● サウンド関連ライブラリを解凍して、ヘッダ、ライブラリを、「linden」配下にコピーします。

$ tar xvzf fmodapi375linux.tar.gz
$ cd fmodapi375linux/
$ cp api/inc/* ../linden/libraries/i686-linux/include/
$ cp api/libfmod-3.75.so ../linden/libraries/i686-linux/lib_release_client/




● Compiling

最後にパッケージ一式を圧縮してくれる、releasefordownloadモードでコンパイルして見ました。

$ scons DISTCC=no BTARGET=client BUILD=releasefordownload MOZLIB=yes



● エラー出まくり ーー;

(1) g++-4.1 がありません、と出たので

# apt-get install g++-4.1



(2) libboost 関連がありません、がたくさん出るので、「SConstruct」ファイルの中を調べて
libboost 関連のパッケージを片っ端から、インストールしてみました。^^;

# apt-get install libboost-dev
# apt-get install libboost-regex-dev
# apt-get install libboost-signals-dev




(3) boost_signals-gcc34-mt が無い、というエラーが出ます。

マニュアルにも解決方法が書いてありました。

http://wiki.secondlife.com/wiki/Compiling_the_viewer_(Linux)
Required tools

「SConstruct」ファイルには、以下のようにlibboost関連の指定がたくさんあります。

(linden/indra/SConstruct)

client_external_libs += [ 'boost_program_options-gcc34-mt', 'boost_signals-gcc34-mt', 'boost_regex-gcc34-mt']
external_libs += ['boost_signals-gcc34-mt']
boost_signals_lib = 'boost_signals-gcc33-mt-d'
boost_libs = [ 'boost_regex-gcc33-mt-d', boost_signals_lib ]

など

でも、ubuntu8.04のファイル一覧を調べると、ファイル名に「gcc33」「gcc34」などバージョンがついていないので
「SConstruct」ファイルを修正してしまいます。(オリジナルのSConstructファイルはコピーしておく事)

(linden/indra/SConstruct)

client_external_libs += [ 'boost_program_options-mt', 'boost_signals-mt', 'boost_regex-mt']
external_libs += ['boost_signals-mt']
boost_signals_lib = 'boost_signals-mt-d'
boost_libs = [ 'boost_regex-mt-d', boost_signals_lib ]




● やっとこさ、コンパイル・ビルド終了~

(正常終了時のメッセージ)

Running command: mv newview/packaged newview/SecondLife_i686_1_20_6_0
Running command: tar -C newview --numeric-owner -cjf newview/SecondLife_i686_1_20_6_0.tar.bz2 SecondLife_i686_1_20_6_0
Running command: mv newview/SecondLife_i686_1_20_6_0 newview/packaged
scons: done building targets.




圧縮されたパッケージが作成されます。

linden/indra/newview/SecondLife_i686_1_20_6_0.tar.bz2



● パッケージを解凍して、実行

$ tar xvjf linden/indra/newview/SecondLife_i686_1_20_6_0.tar.bz2
$ cd SecondLife_i686_1_20_6_0
$ ./secondlife




● ビューワで、「Debug Settings」の設定

ビューワの「Advanced」->「Debug Settings」ウィンドウを開いて

1.RenderDeferred を FALSE(誤) に設定
2.RenderUseFBO を TRUE(正) に設定
3.RenderDeferred を TRUE(正) にもどす



● 京都河原町サンドボックスの夕暮れ

なんか、夕ご飯の匂いが漂ってきそうな感じです~。^^
こんな苦労しなくても、はやく影が表示できるようになるといいですね。


SLViewer