Compiling OpenStructure consists of several steps that are described below in more detail. In essence, these steps are:
* Installing the Dependencies
* Checking out the source code from GIT
* Configuring the build with cmake
* Compiling an Linking
* Installing the Dependencies
* Checking out the source code from GIT
* Configuring the build with cmake
* Compiling an Linking
Installing the Dependencies
...
...
@@ -25,25 +25,29 @@ Installing the Dependencies
OpenStructure uses a bunch of OpenSource libraries. If you haven't already installed them, please install them now! Where appropriate the minimally required version is given in parantheses.
* `CMake <http://cmake.org>`_ (2.6.4)
* `Eigen3 <http://eigen.tuxfamily.org>`_ (3.2.0)
* `Boost <http://boost.org>`_ (1.53)
* `libpng <http://www.libpng.org>`_
* `Python <http://python.org>`_ (2.7)
* `Qt <http://qt-project.org/>`_ (4.5)
* `CMake <http://cmake.org>`_ (2.6.4)
* `Eigen3 <http://eigen.tuxfamily.org>`_ (3.2.0)
* `Boost <http://boost.org>`_ (1.53)
* `libpng <http://www.libpng.org>`_
* `Python <http://python.org>`_ (2.7)
When you enable support for image processing, you will need:
* `FFTW3 <http://fftw.org>`_. By default, OpenStructure is compiled with single precision and thus also requires FFTW to be compiled with single precision. Most platforms offer this as a second package. If you are compiling manually, use the `--enable-single` option.
* `FFTW3 <http://fftw.org>`_. By default, OpenStructure is compiled with single
precision and thus also requires FFTW to be compiled with single precision.
Most platforms offer this as a second package. If you are compiling manually,
use the `--enable-single` option.
* `libtiff <http://www.libtiff.org>`_
* `libtiff <http://www.libtiff.org>`_
If you would like to use the info module, also install:
* `Qt4 <http://qt-project.org/>`_ (4.5, Qt5 is not supported yet)
If you would like to use the graphical user interface, also install:
If you would like to use the graphical user interface (GUI), also install:
OpenStructure uses `git` as the revision control system. The main repository can be browsed `here <https://git.scicore.unibas.ch/schwede/openstructure.git>`_. To get the source code, use git clone:
OpenStructure uses `git` as the revision control system. The main repository can
be browsed `here <https://git.scicore.unibas.ch/schwede/openstructure.git>`_. To
By default you are checking out the master branch. Master is, by definition a stable branch. It always points to the latest release. However, there are several other branches at your disposal. The main development is happening in the develop branch. It contains the newest features and bug fixes. However, we dont't make any guarantees that the develop branch is bug free and doesn't contain major bugs. After all, it's in constant flux. If you are developing new features, start your feature branch off develop. Besides that, there are several smaller features branches that are used to group together commits for one specific features. To change to a specific branch, use
By default you are checking out the master branch. Master is, by definition a
stable branch. It always points to the latest release. However, there are
several other branches at your disposal. The main development is happening in
the develop branch. It contains the newest features and bug fixes. However, we
dont't make any guarantees that the develop branch is bug free and doesn't
contain major bugs. After all, it's in constant flux. If you are developing new
features, start your feature branch off develop. Besides that, there are several
smaller features branches that are used to group together commits for one
specific features. To change to a specific branch, use
OpenStructure uses `CMake <http://cmake.org>`_ for compiling and building the project. The next required step is to configure the build environment using cmake. You can do that by invoking `cmake` in the project directory.
OpenStructure uses `CMake <http://cmake.org>`_ for compiling and building the
project. The next required step is to configure the build environment using
cmake. You can do that by invoking `cmake` in the project directory.
.. code-block:: bash
cmake . <options>
There are two kinds of options: Options that let you control the building behaviour, enabling and disabling the compilation of certain modules and options that let you tell CMake where to find the dependencies. All of them are passed to CMake with via `-D<opt>=<value>`.
There are two kinds of options: Options that let you control the building
behaviour, enabling and disabling the compilation of certain modules and options
that let you tell CMake where to find the dependencies. All of them are passed
to CMake with via `-D<opt>=<value>`.
On Windows, use Tools -> VisualStudio -> commandline prompt from within VisualStudio
On Windows, use Tools -> VisualStudio -> commandline prompt from within
By default, `CMake <http://cmake.org>`_ searches the standard directories for dependencies. However, on some systems, this might not be enough. Here is a short description of how CMake figures out what dependencies to take and how you can influence it.
By default, `CMake <http://cmake.org>`_ searches the standard directories for
dependencies. However, on some systems, this might not be enough. Here is a
short description of how CMake figures out what dependencies to take and how you
can influence it.
* Boost is mainly controlled via the `BOOST_ROOT` option. If boost wasn't
found, it should be set to the prefix of the boost installation.
* Boost is mainly controlled via the `BOOST_ROOT` option. If boost wasn't
found, it should be set to the prefix of the boost installation.
* `QT_QMAKE_EXECUTABLE` defines the exact Qt installation to take. It should
be set to the full path to `qmake`.
* `PYTHON_ROOT` is the Python equivalent of BOOST_ROOT. It should be set to
the prefix path containing the python binary, headers and libraries.
* `SYS_ROOT` controls the general prefix for searching libraries and headers.
By default, it is set to `/`.
* `COMPOUND_LIB` specifies the location of the compound library and
activates the rule-based-builder. The compound library is based on
the component dictionary released by the PDB, and it specifies atoms
of a certain residue or connectivities between atoms etc. The
:doc:`compound library <conop/compoundlib>` itself is created from the
component dictionary by calling the OpenStructure chemdict_tool.
By default this is switched off but it is highly recommended to provide a
compound library to use all features of OpenStructure.
* `COMPILE_TMTOOLS` will activate bindings for TMAlign and TMScore, which are
then available at python level. This option requires a Fortran compiler.
By default this option is switched off.
* `USE_NUMPY` allows OpenStructure to pass back data in NumPy format. By
default this is switched off.
* `PYTHON_ROOT` is the Python equivalent of BOOST_ROOT. It should be set to
the prefix path containing the python binary, headers and libraries.
* `SYS_ROOT` controls the general prefix for searching libraries and headers.
By default, it is set to `/`.
* `COMPOUND_LIB` specifies the location of the compound library and
activates the rule-based-builder. The compound library is based on
the component dictionary released by the PDB, and it specifies atoms
of a certain residue or connectivities between atoms etc. The
:doc:`compound library <conop/compoundlib>` itself is created from the
component dictionary by calling the OpenStructure chemdict_tool.
By default this is switched off but it is highly recommended to provide a
compound library to use all features of OpenStructure.
* `QT_QMAKE_EXECUTABLE` defines the exact Qt installation to take. It should
be set to the full path to `qmake`. This is only needed if `ENABLE_INFO` is
switched on.
* `COMPILE_TMTOOLS` will activate bindings for TMAlign and TMScore, which are
then available at python level. This option requires a Fortran compiler.
By default this option is switched off.
* `USE_NUMPY` allows OpenStructure to pass back data in NumPy format. By
All the dependencies can be installed from the package manager and are thus located in standard locations. cmake will automatically find them without the need to pass any additional parameters. The only exception is -DOPTIMIZE, which will tell cmake to build an optimized (-O3 -DNDEBUG) version of OpenStructure.
All the dependencies can be installed from the package manager as follows: