cuemol2/Build_LinuxCueMol: Molecular Visualization Framework |
LinuxでのbuildCentOS 5.Xでの場合.(それ以外のdistrでも,xulrunnerがちゃんと動くようなら一応動くのでは.未確認.) Ubuntu amd64では動くようです(Biochem_fanさんに感謝!). http://pastebin.com/uHcmVrE8 必要なソフトウェア・ライブラリ類のインストール
※ライブラリーのうちBOOST以外は特定のモジュールからしか使用されていないので、 以下の例ではなるべくstatic libraryとして作ってリンクするようにしている。 (もちろん全部shared libraryとして作って実行時リンクするようにしても構わない。) xulrunner SDKMacOSXの場合と同様. ftp://ftp.mozilla.org/pub/xulrunner/releases/からdownloadできる. CueMol2のバージョンに合ったバージョンのSDKを用いる必要がある。 2.2.0では23.0.1を使用している。 SDKのほうを, ~/src/xulrunner/xulrunner-sdk/以下に展開する. Runtimeのほうを, ~/src/xulrunner/xulrunner/以下に展開する. Xulrunner 23.0.1を使用した場合は,SDKとruntimeを使用すればOK. Sourceからbuildする必要はなかった. BOOST C++ Libraries多くのlinux distributionでは,パッケージとしてBOOSTが最初から入っている場合が多い.それでコンパイルできて動く場合は問題ないが,うまくいかない場合は自前で最新版を入れた方がよい. Version 2.1.0では1.44.0を使用している.ちなみに1.52.0を使用したらconfigureが通らない(他のlibにboost_systemへの依存が出来ているため.要改善) 自前で入れる場合はhttp://www.boost.org/から取得できる. 方法はMacOSXの場合と大体同様. すべてのlibraryのbuildを行う必要はない.~/app/boost以下にインストールされるべくbuild. ただし,MacOSXの場合と同様にsoが配置されない場合は,手動でコピーする必要有り. 具体的には:まずソースを展開後、bjamをbuildする。 cd boost_1_44_0 ./bootstrap.sh --prefix=~/app/boost 次に、bjamでビルドする。以下のようなshell scriptを作成して必要なものだけbuildするようにした。 #!/bin/sh instpath=~/app/boost ./bjam \ --prefix=$instpath \ --exec-prefix=$instpath \ --libdir=$instpath \ --includedir=$instpath \ --with-date_time \ --with-filesystem \ --with-iostreams \ --with-program_options \ --with-regex \ --with-system \ --with-thread \ link=shared,static threading=multi install ただし、上記iostreamsはbzip2の開発環境(bzip2-develなど)がinstallされていないとbuildに失敗する。 (iostreamsは使用していないので省いても良いかも) 実際にはinstallしてもうまくいかない。bjamのscriptが期待するdirectory構成と違うようにinstallされてしまうため。以下のようにファイルを移動してcuemolのautoconf scriptから参照しやすいようにした。
FFTWのインストールhttp://www.fftw.org/download.htmlから取得可能。 基本的に、configure/makeでOK。あと、defaultでstatic libraryがbuildされるが、それでOK. 最終的にはsoとしてbuildされるため,-fPICは(static libraryであっても)つけておく必要がある. env CFLAGS="-fPIC -DPIC" \ ./configure \ --enable-float \ --prefix=$HOME/proj/fftw \ --disable-fortran \ --disable-shared CGAL
※-fPICは入れないとsoとlinkできない glewのインストール
※当たり前だがX11やOpenGLの開発パッケージがインストールされている必要がある。 RepositoryからチェックアウトMacOSXの場合と同様.すなわち,
以下では~/proj/cuemol2以下にcheckoutしたとする. configureスクリプトの実行とbuild以下buildは,~/proj/cuemol2/uxbuildにて行うのでcdで移動. configureを走らせるためのスクリプトrun_config.shが,~/proj/cuemol2/uxbuildにあるので,必要に応じて編集.(これを使わなくても出来なくもないが,いちいちキーボードから入力するのは面倒なので) library等のインストール位置を上述から変更していない場合は, CVS repositoryにあるrun_config.shは,ライブラリーのインストール位置が 上述と合致しないため,変更が必要. gecko_sdk_dir=$HOME/src/xulrunner/xulrunner-sdk/ gecko_rt_dir=$HOME/src/xulrunner/xulrunner/ boost_dir=$HOME/app/boost エラー無くconfigureスクリプトが生成され,さらにMakefileが生成されたら,makeコマンドを実行.buildが行われる.
試し実行make installを行うと,~/proj/cuemol2/xul_gui以下に必要なファイル類が配置される.xulrunnerの引数に,~/proj/cuemol2/xul_gui/application.iniを与えて起動すれば動くはず. ~/src/xulrunner/xulrunner-sdk/bin/xulrunner ~/proj/cuemol2/xul_gui/application.ini うまくはしらない場合は,MacOSXの場合と同様 setenv NSPR_LOG_MODULES linker:5 を使うこともできるが,あまり有用な情報は出ない模様. 一方,ld.soの設定LD_DEBUGをつかって setenv LD_DEBUG libs とすると,どのsymbolがみつからなくてどのsoのloadがコケたか詳しく出てくる. インストールパッケージの生成/proj/cuemol2/uxbuild/uxdistに移動し、make distを実行するとインストールパッケージ(tar.bz2形式)が作られる。 cd uxdist make dist できるファイルは、CueMol2-<version>-Linux-Intel64.tar.bz2になる。 このパッケージ中のbin/cuemol2を実行すると起動する。 |