Skip to content

Building GalSim with the LSST stack

Mike Jarvis edited this page Apr 6, 2016 · 27 revisions

Notes from Chris Walter for building Galsim for LSST members using anaconda 2.1 and the Winter 2014 DM stack.

The stack+anaconda should contain all dependencies except for TMV which you will need to build yourself.


Update:

Later versions of the LSST DM stack fix the problem with the anaconda library (if you let LSST install anaconda for you, that is), so the below machinations with install_name_tool are no longer necessary.

For the moment, you can get the fixed installation with

bash newinstall_galsim.sh

(This will eventually not be necessary.) Then, after the normal stack installation is complete, you can get the latest release of GalSim with

eups distrib install GalSim 1.2

If you want to install a development version of GalSim, you can do the above to get all the dependencies. Also, the LSST stack has fixed the python library problem that Chris describes below. However, the boost python library is still messed up. So you will still ned to manually fix the stack-supplied boost following the step marked *** below.

cd $LSST_PGKS/boost/1.55.0.1.lsst2/lib
install_name_tool -id $PWD/libboost_python.dylib libboost_python.dylib

Then you should be able to install a development version of GalSim with

scons TMV_DIR=$LSST_PKGS/tmv/0.72/ 
      FFTW_DIR=$LSST_PKGS/fftw/3.3.3/
      BOOST_DIR=$LSST_PKGS/boost/1.55.0.1.lsst2/
      EXTRA_LIB_PATH=$LSST_PKGS/miniconda2/3.19.0.lsst4/lib

(all on one line -- just broken up here for legibility) The final version numbers for each directory might be different for your system. Use the version that is installed on your machine.

After this is installed, you will need to tell eups to use this version of GalSim rather than the one that was installed with the stack:

eups declare -r /Users/Mike/GalSim GalSim $USER
eups declare -r /Users/Mike/GalSim GalSim $USER -t $USER
setup GalSim -t $USER

Finally, to use the galsim.lsst module, you'll also need to run the following:

eups distrib install obs_lsstSim -t sims
setup obs_lsstSim -t sims

Useful references related to problems with GalSim and boost and boost generally:

http://stackoverflow.com/questions/23771608/trouble-installing-galsim-on-osx-with-anaconda https://svn.boost.org/trac/boost/ticket/9141

Procedure

Make sure that you have setup the DM stack and:

setup boost
setup scons
setup fftw

Install TMV (>= 0.72 from http://code.google.com/p/tmv-cpp/). For example:

scons install PREFIX=/Users/walter/LSST/GalSim/tmv-0.72

Go to your anaconda library directory. For example:

cd LSST/anaconda/lib/

Look at the python library from anaconda:

otool -L libpython2.7.dylib

You will see the first entry (libpython2.7.dylib) has no full path this is going to cause the loader to grab the system version instead and mess things up. You need to fix this:

install_name_tool -id  $PWD/libpython2.7.dylib libpython2.7.dylib

Now if you do the otool -L libpython2.7.dylib the first entry should have the full path.

*** Now make the same change to the stack supplied boost library. Go to your stack boost library directory:

cd $BOOST_DIR/lib
install_name_tool -id $PWD/libboost_python.dylib libboost_python.dylib

There is one more change you need to make. You need to tell the stack's boost which system python to use. It is also currently entered without a path.

An example:

install_name_tool -change libpython2.7.dylib /Users/walter/LSST/anaconda/lib/libpython2.7.dylib libboost_python.dylib

Download GalSim (from https://github.com/GalSim-developers/GalSim/releases)

Now build Galsim. For example:

scons TMV_DIR=/Users/walter/LSST/GalSim/tmv-0.72 FFTW_DIR=$FFTW_DIR
Clone this wiki locally