Hatena::ブログ(Diary)

にいくらの日記

2015-05-13

ROOT v6のインストール (X11編)

需要があるのかわからないけど、MacOSX上でCocoaを使わずにROOTをインストールしたらちょっと苦戦したのでメモを残しておく。自分のラップトップで使用する分にはCocoaで問題ないんだけど、サーバーとして使っているマシンにはX11も用意しておかないとWindowsやLinuxのユーザが困るので。

あらかじめ必要なパッケージをインストールしておく。本当に以下のパッケージで必要十分なのかはよくわかってない。僕はHomebrewを使っている。

brew install ftgl freetype glew

configureとmake。

./configure --disable-cocoa --enable-builtin-freetype --enable-builtin-glew

これで、とりあえず動く。でも、TBrowserなどを立ち上げるとエラーで動かなくなる(ことがある)。その場合は、以下を参考にもう少し頑張る。

https://root.cern.ch/phpBB3/viewtopic.php?f=3&t=17490

1. configure Root (from fresh 5-34-18 sources)

./configure --enable-roofit --enable-table --enable-opengl --disable-cocoa --enable-builtin-freetype

2. make Root. This makes the version that suffers from the conflict.

make -j4

3. I had patched the libAfterImage configure script to print out the options it is being called with. Then I add --with-builtin-png=yes and build again

cd graf2d/asimage/src/libAfterImage

make clean

./configure --with-ttf --with-ttf-includes=-I../../../../graf2d/freetype/src/freetype-2.3.12/include --with-afterbase=no --without-svg --disable-glx --with-builtin-ungif --with-jpeg --with-jpeg-includes=/usr/local/include --with-png --with-png-includes=/usr/local/include --with-tiff-includes=/usr/local/include --with-builtin-png=yes

make

4. Go back to root directory and call make again to pick up the new libAfterImage:

cd -

make -j4

TBrowserとかTCanvasを動かしてもエラーを出さなければたぶん大丈夫。

ROOT v6のインストール

原因はちゃんと覚えてないんだけど、使っていたROOT関連のプログラムがXCodeのアップデートに伴って使えなくなったので、ROOTをバージョンアップすることにした。ROOTのページを見たら前見たときはexperimentalだったはずのバージョン6系がrecommendedになっていたので、オススメ通りv6-20-08を入れることにした。

Downloading ROOT | ROOT a Data analysis Framework

特に特別なことをする気はないので、完全デフォルトでインストール。つまり、configureで特別なオプションなし。

./configure
make

問題なくインストール完了したが、自分で作ったプログラムをコンパイルしようとすると大量のエラーがでる。一部だけ引用すると、こんな感じ。

In file included from /opt/root/pro/include/TTree.h:30:
In file included from /opt/root/pro/include/TBranch.h:28:
In file included from /opt/root/pro/include/TNamed.h:26:
In file included from /opt/root/pro/include/TObject.h:31:
In file included from /opt/root/pro/include/Rtypes.h:37:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/atomic:539:2: error: 
      <atomic> is not implemented
#error <atomic> is not implemented

調べてみたら、どうもコンパイル時にオプションを一つつけないとダメらしい。

Problems compiling on os x 10.9 - ROOT - ROOT Forum

具体的には、コンパイル時のフラグに--std=c++11を追加すれば動く。忘れそうなので書き残しておく。