Install HallD Software on Ubuntu

From GlueXWiki
Revision as of 12:09, 11 February 2014 by Romanov (Talk | contribs)

Jump to: navigation, search

Here is a complete list of commands to install and run sim-recon on fresh installed Ubuntu. Tested with Ubuntu 13.10

Complete list means that one can open a terminal window after ubuntu instillation and setup halld software by copy/paste commands one by one.


sudo apt-get update && apt-get upgrade

1. Install all things with dependencies. (Probably it is more than required for only gluex-software)

sudo apt-get install vim scons gcc subversion pythia8-root-interface python-dev libgeant321-2-dev 
sudo apt-get install geany-plugins clang llvm-dev build-essential libxft-dev cernlib-base-dev libxft-dev 
sudo apt-get install libfreetype6-dev:i386 paw libmysqlclient-dev libbz2-dev tcsh xutils-dev libcurl3-dev libatlas-base-dev

2. Create folder for HallD software in the home directory

mkdir halld
cd halld

3. Get halld build scripts

svn checkout

4. Set halld environment on startup.

echo 'source ~/halld/build_scripts/'>>~/.bashrc

and update environment

source ~/.bashrc

5. Set clang to be a default compiler

sudo update-alternatives --set c++ /usr/bin/clang++

one can check and change it later by:

sudo update-alternatives --config c++

6. Build first bunch of things. Notice that clhep requires clhep directory to be created

make -f build_scripts/Makefile_all xerces_build
make -f build_scripts/Makefile_all hdds_build
make -f build_scripts/Makefile_all root_build
make -f build_scripts/Makefile_all ccdb_build
#to make clhep we have to create a dir 'clhep' in GLUEX_TOP
mkdir clhep
make -f build_scripts/Makefile_all clhep_make

7. Building cernlib requires several tricks.

First, cernlib requires gmake. Lets make gmake

sudo ln -s /usr/bin/make /usr/bin/gmake

There is a problem with freetype includes. We have to add it explicitly before building the lib. Add next environment variables in session where you build cernlib or add to ~/.bashrc

export C_INCLUDE_PATH=/usr/include/freetype2:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/usr/include/freetype2:$CPLUS_INCLUDE_PATH

Finally build cernlib

make -f build_scripts/Makefile_all cernlib_build


SBMS looks for liblapack3 but ubuntu have it like (This patch doesn't concern BMS build. But is required if one would like to use scons in future)

sudo ln -s /usr/lib/ /usr/lib/


make -f build_scripts/Makefile_all jana_build

9. Finally we build sim-recon

make -f build_scripts/Makefile_all sim-recon_build

Another way is to build JANA and sim-recon using scons SBMS. Here are steps to steps 9 and 10 using SBMS


Create a directory for JANA

mkdir ~/halld/jana
cd ~/halld/jana

Choose and check out the latest tag. I use jana_0.7.1p1 as an example. Link 'prod' to jana_0.7.1p1

svn ls
svn co
ln -s jana_0.7.1p1 prod

go to prod, build and install using scons.

cd ~/halld/jana/prod
scons install

Jana created environment script which is have to be used before using jana. Add it to .bashrc

echo 'source ~/halld/jana/prod/$BMS_OSNAME/'>>~/.bashrc
source ~/.bashrc

9. sim-recon

Create directory and checkout sim-recon

mkdir ~/halld/sim-recon
cd ~/halld/sim-recon
svn co trunk 
ln -s trunk prod
cd ~/halld/sim-recon/trunk/src