-
Notifications
You must be signed in to change notification settings - Fork 39
Installation instructions
PEER depends on a small number of freely downloadable pieces of software.
For R users this is likely to be the preferred option. We have prepared a public source release of PEER for R. Compilation is natively handled by R and should work without problems for most users. PEER will soon also be available via CRAN.
To install the PEER R package using one of the above binary packages, simply download the source package for the correct platform, for instance R_peer_source_1.3.tgz, then run R CMD INSTALL R_peer_source_1.3.tgz
.
In some cases it may be helpful to include the switch "--no-multiarch" (see Troubleshooting section below).
PEER is built using the CMake build system. A full build of PEER provides access to the python binding, standalone tool and R interface. To build and install PEER from source, first pull it from our git source code repository:
git clone [email protected]:PMBio/peer.git
Alternatively, there are versioned source packages of PEER available for download:
Then create a target directory for the build:
cd peer
mkdir build
Then go to the build directory and call CMake
cd build
cmake ./..
Finally, compile and install PEER
make
make install
Although we do not recommend this, PEER can also be built form the cloned full repository.
You need to pass an additional argument to CMake: -DBUILD_R_PACKAGE=1
. The full sequence of build commands needed is then as follows:
mkdir build
cd build
cmake ./..
cmake -DBUILD_R_PACKAGE=1 ./..
make
make install
NOTE! You need SWIG 2.0 or later to build the R package. Building will fail with earlier SWIG versions. At the time of writing SWIG 1.x is still the one made available by default on many Linux distributions, so be sure to check the version.
By default, peer is not built as an universal binary on OS X. This can be easily changed by adding the following configuration parameter to CMake: -DBUILD_UNIVERSAL=1
. This will cause peer to be built as an Intel 32/64 bit binary. For more control over the included architectures, edit the file CMakeLists.txt in the root directory of the project.
- Installing peer binaries. If
make
is called with theinstall
flag, the standard behaviour is to install a peer binary and the peer C++ library to the system-wide targets. Usecmake ./.. -DCMAKE_INSTALL_PREFIX=~/my_software/peer
or equivalent to specify your own build target. - Python module. The python module is not affected by
CMAKE_INSTALL_PREFIX
. Instead, cmake tries to build the python module and installs it using the python version which is in the path when using the commandpython
. You can specify your own python binary by editingCMakeLists.txt
. The python interface requires a recent numpy version. - R module. If you receive the error
build/R/peerR_wrap.cxx: In function ‘RCallbackFunctionData* R_SWIG_pushCallbackFunctionData(SEXPREC*, SEXPREC*)’:
build/R/peerR_wrap.cxx:759: error: ‘calloc’ was not declared in this scope
build/R/peerR_wrap.cxx: In function ‘void R_SWIG_popCallbackFunctionData(int)’:
build/R/peerR_wrap.cxx:800: error: ‘free’ was not declared in this scope
...
check that you have an up-to-date version of Swig (at least 2.0 is required).
- Prebuilt R package. If your receive the error
Eigen/src/Core/arch/AltiVec/Complex.h: In function ‘Packet Eigen::ei_pset1(const typename Eigen::ei_unpacket_traits<T>::type&) [with Packet = Eigen::Packet2cf]’:
Eigen/src/Core/arch/AltiVec/Complex.h:71: error: no matching function for call to ‘ei_pload(const float*)’
...
make: *** [array_helper.o] Error 1
ERROR: compilation failed for package ‘peer’
repeat the R CMD INSTALL
command with "--no-multiarch" flag.