ソースからの ROOT の作り方

English Page is here.

コンパイル環境

99/03/17 現在の私のコンパイル環境は
egcs*-1.1.2-1a
egcs-libg++-2.9.0-1d
glibc-0.961212-1o
binutils-2.9.1-19b
です。これしか試していないので、他の環境でうまく行くかどうか 不明です。

オリジナルの在処

ROOT をソースから作るには次のファイルをダウンロードして下さい:
ftp://root.cern.ch/root/root_v2.21.PPCLinux.2.2.0.egcs.tar.gz
ftp://root.cern.ch/root/root_v2.00.source.tar.gz
ftp://root.cern.ch/root/ttf_1.1.tar.gz
1番目のファイルは egcs-1.0x で作られた ROOT のバイナリーパッケージです。 libg++.so.2.8 とリンクされています。DR3 で動くはずなので、 この状況に不満がなければバイナリーの作り直しは不要です。 2番目のファイルが、完全なソースコードのツリーです。ですが、 ソースから作りなおす場合にもバイナリーパッケージが必要です。 TrueType サポートが必要な場合は3番目のファイルも必要です。

また、いくつかパッチをあてる必要もありました。 私家版パッチは

root_v2.21b7-mklinux.patch
root_v2.21b7-mklinux_ttf.patch
root_v2.21b7-x3d_depth.patch
にあります。最初のものは次のファイルにパッチをあてます:
Makefile.mklinux
CXXFLAGS に "-fno-rtti -fno-exceptions" を加える(egcs で必要)。
ROOTX_rootx.cxx
閉じていないかっこに閉じかっこを加える。
UNIX_UnixSystem.cxx
閉じていないかっこに閉じかっこを加える。
socklen_t を size_t におきかえる(MkLinux の glibc*-0.961212 が 完全には glibc-2.x になりきっていないため)。
2番目のパッチは、ttf をリンクするためのものです。 3番目のパッチは、X3D を 16 bpp で使うためのものです。

パッケージ作成手順

まずバイナリーのターボールを展開、次にソースターボール、 パッチあて、make という感じです:
$ tar -zxvf orig/root_v2.21.PPCLinux.2.2.0.egcs.tar.gz
$ cd root
$ tar -zxvf ../orig/root_v2.21.source.tar.gz
$ tar -zxvf ../orig/ttf_1.1.tar.gz
$ export ROOTSYS=`pwd`
$ export LD_LIBRARY_PATH=$ROOTSYS/lib
$ export PATH=$ROOTSYS/bin:$PATH
$ cd src
$ patch -p1 -s < <somewhere>/root_v2.21b7-mklinux.patch
$ patch -p1 -s < <somewhere>/root_v2.21b7-mklinux_ttf.patch
$ patch -p1 -s < <somewhere>/root_v2.21b7-x3d_depth.patch
$ ln -s Makefile.mklinux Makefile
$ make distclean
$ ln -s /usr/lib/libttf.so.2.0.0 ../lib
$ ln -s G__TypeInfo.h ../cint/include/iosenum.h
$ make OPT='-O4 -g' >& make.log &
$ tail -f make.log
$ cd ../tutorials
$ patch -p1 -s < ../../patches/root_v2.21b7-demos.patch
これで "bin" の中身の一部とと "lib" の中身の全てが更新されます。 勇敢(無謀?)にも、"-O4" でコンパイルしている点に注意。 3番目のパッチは、新しいソース配布がされ次第不要になるはずです。

こうしてできたパッケージが

root_v2.21b7_egcs111.tar.gz
です。"-g" 付きでコンパイルしましたが、スリム化のためストリップしました。 このパッケージを使うには、egcs-1.1.1 以降の libstdc++ が必要です。 egcs のディレクトリーにあります。
Back to the Top ROOT Page
fujiik@jlcuxf.kek.jp Sep. 3, 1998