Deprecated: Array and string offset access syntax with curly braces is deprecated in /mnt/hep_web/hep_web/member/n-kota/dokuwiki/inc/init.php on line 542
====== source からコンパイルする ======
以下のようにしておけば、バージョン更新・戻しもシンボリックリンクの張り替えだけで済み便利
----
===== ダウンロード =====
* 以下、ほとんどにsudoが要るかも(mac)
* source ファイルを置く場所を作る(例えば /usr/local/src/root/)
* source を http://root.cern.ch/drupal/content/downloading-root からダウンロードしてきて(root_v5.34.19.source.tar.gz など)、/usr/local/src/root/ に置く
* tar zxvf root_v5.34.19.source.tar.gz で展開 (root/ というディレクトリができる)
* mv root root_v5.34.19 のようにして名前version入りに変えておく
===== インストール =====
*インストールする場所を作る(例えば /usr/local/root/root_v5.34.19/)
*/usr/local/src/root/root_v5.34.19/ で、
./configure --prefix=/usr/local/root/root_v5.34.19 //インストールする場所を指定
make
make install
===== シンボリックリンクを張る、環境変数設定 =====
cd /usr/local/root
ln -s root_v5.34.19 root_now
として、使いたいバージョンのrootを root_now にシンボリックリンクしておく。
~/.bashrc で
export ROOTSYS=/usr/local/root/root_now
export PATH=${PATH}:${ROOTSYS}/bin
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${ROOTSYS}/lib
export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH}:${ROOTSYS}/lib // mac だとLD~ でなくこちらが必要?
としておけばよい。
----
===== トラブル =====
===== makeが通らなくなった =====
元はと言えば、FFTWを入れて再コンパイルしようとしたのが始まり。
すでにbuildしていたversionのsourceのあるディレクトリに行き、sudo make clear 、sudo make distclearしてから
おきまりの./configure .... , make, make install しようとしたが、makeでエラーを吐いた。
おそらく原因はOSのアップグレード(Yosemite)と推測。
いろいろ調べて結局、
* XQuartzを再インストール
* Xcodeを再インストール
インストールした後、terminalで
xcode-select --install
sudo xcodebuild -license ## ->agree
* MacPortsを再インストール(Yosemite版)
* MacPortsからgcc、gfortranをインストール(以下コマンド)
sudo port install gcc49
sudo port select gcc mp-gcc49
ここまでやったが、v5.34.09 はmake通らず。
ただ、v5の中で最新のもの、v5.34.32でやってみると、無事makeが通り、make install もOK。
make 前に.bashrcに
export FFTW3=/usr/local/fftw/
のようにFFTWの環境変数を設定しておいたところ(かどうか定かではないが)、
root のtutrialsにあるFFT.Cが動くようになっていたので、configureの際に特に特別な指定をしなくても
FFTWを取り込んでコンパイルしてくれたのか?