IMP
is available in a variety of different ways. If you are just planning on using existing IMP
code and run on a standard platform, you may be able to install a pre-built binary. See the download page.
If you are planning on contributing to IMP
, you should download and build the source. See the next section for more information.
If you are building IMP
from source, read the following sections, otherwise skip to the last one.
IMP
from source is straightforward if the prerequisites are already installed. First, obtain the source code tarball from the download page. code theretar -xvzf imp-1.0.tar.gz
imp-1.0
containing all the source.scons prefix=place_to_install_imp all
IMP
by doing scons prefix=place_to_install_imp install
(If you are familiar with Subversion, you can also use an SVN client to check out the same code from our Subversion repository at http://svn.salilab.org/imp/tags/release-1.0/)
If there are build errors
scons
-h
) to figure out any more arguments you need to pass to scons in order to make sure it finds needed external libraries.
If you are likely to be building IMP
repeatedly, it can be useful to put the arguments to scons
into a config file. This is a file called config.py
located in the IMP
directory (the one containing the SConscript
file). For example one of ours looks like
import os modeller=os.environ['MODINSTALLSVN'] prefix=os.environ['HOME']+"/fs" path='/opt/local/bin' includepath='/opt/local/include:'+os.environ['HOME']+"/fs/include" libpath=os.environ['HOME']+"/fs/lib" build='debug' deprecated=False
IMP
, it is necessary to check it out from our IMP repository using an Subversion client: svn co http://svn.salilab.org/imp/trunk imp
imp
containing all the source at the SVN trunk. We recommend you use use this. Since this is the place that people commit changes to, one should consult the nightly build logs before updating to make sure things are working. In addition, consult the ChangeLog
file to see what has changed since your last update.
When developing code for IMP
, it is useful to be able to run it without installing everything. To aid this, we provide a script located at tools/imppy.sh
which runs a command after setting up the environment so that dynamically linked libraries and python modules can be found. For example, to run Python such that it can use IMP
do
./tools/imppy.sh python
In addition, we recommend doing out of source builds (building IMP
in a directory other than the one containing the source files). Doing this allows several different versions of IMP
to be built using the same source files. For example, an optimized one (using build='fast'
) and a debug one (build='debug'
).
To set this up
svn co http://svn.salilab.org/imp/trunk src
mkdir imp-debug
src/tools/setup-out-of-source-build imp-debug
imp-debug/config.py
as desiredimp-debug
cd imp-debug
scons -j 2
You can update your copy of IMP
, by typing
svn update
IMP
, you will need:
If you wish to build the Python interfaces, you will also need:
If you install headers, libraries or tools anywhere other than the standard locations (i.e. /usr/lib
and friends) then you need to tell SCons
where to find them. This is done using the `includepath`, `libpath`, and `path` options (paths are colon-separated). These can either be passed to scons as command line arguments or put in the config.py
file. For example
scons includepath=/usr/local/include:/opt/local/include libpath=/usr/local/lib path=/usr/local/bin
IMP
to search to headers and libraries in the provided locations in addition to the standard ones.Notes on how to work around various platform issues can be found at the Build Notes page in the wiki.
/opt/local/bin
to your path (either by modifying your shell's config file or by making an environment.plist
file-see the FAQ) and then do sudo port install boost scons swig-python
Do not install any C++ headers in `/usr/include` on your Mac as the compiler assumes any such headers are C headers.
If you want to use IMP
with MODELLER, you should use version 9v7 or later and use the following argument to scons
scons modeller=path/to/modeller
Certain geometric computations will be faster, better or more reliable if CGAL is installed.
IMP
within Python and C++.Everyone should read the Introduction and developers should then move on to the Developer guide.