Geant4 install

最近のLinuxのディストリビューションではSTLは標準で入っていますし、 OpenGLの環境もそろっています。なのでSTLportとMesaのインストールは しなくて済むみたいです。以下、過去の記録。

Geant4をFedora Core 1にインストールした。これはそのLogです。 用意したライブラリーとかは以下のとおり。全部フリーです。

clhep-1.8.2.0ダウンロード高エネルギー物理共通のクラスライブラリらしい。
STLport-4.6.2ダウンロード無料のSTL
Mesa Library6.0.1ダウンロードDAWNを動作させるために必要
Mesa-demo6.0.1ダウンロードMesaの動作確認のためにダウンロードした
DAWN-3.86aダウンロードVisualizationは色々な方法でできるがこれでやってみる
Geant4.6.2.p01ダウンロード本体

さてここからがインストール。
まずCLHEP Libraryのインストール。もちろんログインはrootで。/usr以下にclhep-1.8.2.0.tgzに展開。
# cd /usr
# tar xvfz clhep-1.8.2.0.tgz
# cd CLHEP
# ./configure
# make
# make install
特に問題なくできた。 ここで/usr/local/libにlibCLHEP-g++.1.8.2.0.a というファイルが作成される。Geant4のコンパイルのときに「libCLHEP.a」が無いというエラーが起こらないためにこのファイルをリンクしておく。
# cd /usr/local/lib
# ln -s libCLHEP-g++.1.8.2.0.a libCLHEP.a
次にSTLportのインストール。ここでも/usr以下でSTLport-4.6.2.tar.gzを解凍。
# cd /usr
# tar xvfz STLport-4.6.2.tar.gz
# cd STLport-4.6.2/stlport/config/new_compiler
# ./configure
これで終了。makeはしないらしい。
次にMesa Libraryをインストール。ここでは/usr以下にMesaLib-6.0.1.tar.tarとMesaDemos-6.0.1.tar.tarを展開。
# cd /usr
# tar xvfz MesaLib-6.0.1.tar.tar
# tarxvfz MesaDemos-6.0.1.tar.tar
ここからMesaのホームページにあるとおりにコンパイルを進める。
# cd Mesa-6.0.1
# cp Makefile.X11 Makefile
# chmod a+x bin/mklib
二番目のコピーの作業はどうやら保険のようでdiffで調べたら二つともまったく同じファイルだった。
# make
# make linux-x86
一回makeするとサポートされているシステム一覧が表示されるのでその中で自分の環境に合ったものを選ぶ。今回はlinux-x86。このmakeが正常に終了した時点でlilbraryのインストール自体は終了しているが、動作確認のためのデモがダウンロードできるのでそれを使って動作確認をした。
# cd /usr/Mesa-6.0.1/lib
# export LD_LIBRARY_PATH=${PWD}
rootのログインシェルがbashだったのでexportをした。cshの場合は
# setenv LD_LIBRARY_PATH ${pwd}
とすればいいらしい。さてここからデモを動作させる。
# cd ../progs/demos
# ./gears
ここで3枚のギアが回っている動画が出れば正常に動作しているということ。大丈夫でした。
次はDAWNのインストール。ここでも/usr以下にdawn_3_86a.tazを展開。
# cd /usr
# tar xvfz dawn_3_86a.taz
# cd dawn_3_86a
# make clean
# make guiclean
# ./configure_xwin
./configure_xwinを実行すると色々聞かれるのでそれをここに書いておきます。
      ****************************************************
      * Configure script to generate Makefile of DAWN    *
      *                       ------ without OpenGL mode *
      *                                                  *
      * (Note: If you want to incorporate OpenGL mode,   *
      *        use the other script "configure".      )  *
      ****************************************************


      Input C++ compiler name (e.g. g++, no default).
       :g++
      Input optimization option (e.g. -O2, no default)
       :
      Input Tcl/Tk window shell name
      (e.g. wish, no default): wish
      Input include directory of Xlib "with -I":
        (e.g. -I/usr/X11R6/include) 
	   Hit return key if path is already set properly.            )
            : -I/usr/X11R6/include

      Input lib directory of Xlib "with -L":
        (e.g. -L/usr/X11R6/lib) 
	   Hit return key if path is already set properly.)
	       : -L/usr/X11R6/lib

      Input directory to install executable files
        (e.g. /usr/local/bin, no default ): /usr/local/bin
      Select a system (0: Defalut, 1: AIX, 2: IRIX, 3: Solaris, 4: RedHat Linux): 4

      Do you use remote-visualization function? (y/n, no default)
       (Select n if your compilation fails for FRClientServer.cc)
       : n

      Old Makefile is deleted.
      New Makefile is created.

      C++ compiler            : egcs
      Optimization level      : 
      Tcl/Tk window shell     : wish
      Xlib include directory  : -I/usr/X11R6/include
      Xlib lib directory      : -L/usr/X11R6/lib
      Socket libraries        : 
      System name             : RedHat
      Remote visualization    : n

      Type  "make" to start compilation.

      After compilation, type  "make install" for installation.
      Then four executable files "dawn", "DAWN_GUI",
      "dawnunixd", and "dawninetd"  will be installed to 
      /usr/local/bin.
とした。そして
# make
# make install
問題なくmakeできた。 さてここでも動作確認ができる。
# cd PRIM_DATA
# ../dawn primitives.prim
なんかWindowが出てきたのでOKをおしてみるとghost viewで変な画像が表示された。これで大丈夫。
さてやっと本体のインストール作業開始。rootで作業をしていたがこれからは自分のアカウントで作業する。自分のホームディレクトリに本体を展開。
# cd ~/
# tar xvfz geant4.6.2.p01.tar.gz
# cd genat4.6.2.p01/cofig
# emacs architecture.gmk
architecture.gmkの以下の部分を編集した。
G4INSTALL:= $HOME/geant4.6.2.p01
CLHEP_BASE=DIR:= /usr/local
ECHO:= /bin/echo
GREP:= /bin/grep
次に.tcshrcを編集。rootと違ってログインシェルはtcshなので。
setenv PATH $HOME/geant4.6.2.p01/bin/Linux-g++:$PATH
setenv G4SYSTEM Linux-g++
setenv G4INSTALL $HOME/geant4.6.2.p01
setenv G4BINDIR $G4INSTALL/bin
setenv CPPVERBOSE 1

setenv OGLHOME /usr/local
setenv OGLFLAGS "-I$OGLHOME/include"
setenv OGLLIBS "-L$OGLHOME/lib -lGLU -lGL"

setenv G4VIS_BUILD_DAWN_DRIVER 1
setenv G4VIS_BUILD_DAWNFILE_DRIVER 1
setenv G4VIS_USE_DAWN 1
setenv G4VIS_USE_DAWNFILE 1

setenv G4USE_STL 1
setenv G4USE_STLPORT 1
setenv STLPORTDIR /usr/stlport-4.6.2

# setenv fot tcl & tk
setenv TCL_LIBRARY /usr/lib/tcl8.3
setenv TK_LIBRARY /usr/lib/tk8.3
として.tcshrcを読み込む。
# source .tcshrc
# cd $G4INSTALL/source
# gmake |& tee log
これでコンパイルが終了すればOK!しかし終了までに2時間近くかかるので注意。必ずlogをとろう。

VISUALIZATIONを再コンパイルするときはこうしよう。
# cd ~/geant4.6.2.p01/source/visualization
# gmake clean
# cd ..
# touch management/src/G4VisManager.cc
# gmake
とするとできる。