aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPjotr Prins2020-11-29 09:26:16 +0000
committerPjotr Prins2020-11-29 09:26:16 +0000
commit16d491f215ce894ff046755bf84e17a184db48b1 (patch)
treef33bc5d71cc59ab0f4a746a477c2b4fe60f5a7ac
parent3130e3d48e27901f516675f49d4b0f0913798bb8 (diff)
downloadpangemma-16d491f215ce894ff046755bf84e17a184db48b1.tar.gz
Update INSTALL doc
-rw-r--r--INSTALL.md55
1 files changed, 21 insertions, 34 deletions
diff --git a/INSTALL.md b/INSTALL.md
index 8aa7e78..ef023ab 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -10,8 +10,8 @@ and it should give you the version.
## GEMMA dependencies
-GEMMA runs on Linux and MAC OSX and the runtime has the following
-dependencies:
+GEMMA runs on Linux, MAC OSX and Windows (with Docker). The runtime
+has the following dependencies:
* C++ tool chain >= 5.5.0 (see Travis CI and we test with file .guix-dev-gcc-older)
* GNU Science library (GSL) 2.x (GEMMA dropped support for GSL 1.x)
@@ -52,41 +52,32 @@ using the following command
guix package -i gemma
-To build GEMMA from source you can opt to install the build tools with GNU Guix
+A more recent version may be found in the guix-bioinformatics channel
+which is maintained by the authors. See the
+[README](http://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics), e.g.
- guix package -i make gcc linux-libre-headers gsl openblas lapack glibc ld-wrapper
+ env GUIX_PACKAGE_PATH=./guix-bioinformatics guix package -A gemma
-The current build container is in [guix-dev](../guix-dev)
+To build GEMMA from source you can opt to install the build tools with
+GNU Guix, the current build container is in [guix-dev](./.guix-dev)
- guix environment -C guix --ad-hoc gcc-toolchain gdb gsl openblas zlib bash ld-wrapper perl vim which
+ source .guix-dev
+ make
-To build with an older gcc, for example:
+Guix allows for easy versioning. To build with an older gcc, for
+example:
guix environment -C guix --ad-hoc gcc-toolchain@9.3.0 gdb gsl openblas zlib bash ld-wrapper perl vim which
### Install from source
-Note: Eigen is no longer required!
-
-Install listed dependencies and run
+Install listed dependencies (you may want to take hints from
+the Travis-CI [tests](./.travis.yml)) and run
make -j 4
(the -j switch builds on 4 cores).
-if you get an Eigen error you may need to override the include
-path. E.g. to build GEMMA on GNU Guix with shared libs the following
-may work
-
- make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_OPENBLAS=1
-
-another example overriding optimization and LIB flags (so as to link
-against gslv1) would be
-
- make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_OPENBLAS=1 GCC_FLAGS="-Wall" LIBS="$HOME/opt/gsl1/lib/libgsl.a $HOME/opt/gsl1/lib/libgslcblas.a -L$HOME/.guix-profile/lib -pthread -llapack -lblas -lz"
-
-to run GEMMA tests
-
time make check
You can run gemma in the debugger with, for example
@@ -99,27 +90,23 @@ You can run gemma in the debugger with, for example
Note that if you get <optimized out> warnings on inspecting variables you
should compile with GCC_FLAGS="" to disable optimizations (-O3). E.g.
- make EIGEN_INCLUDE_PATH=~/.guix-profile/include/eigen3 WITH_OPENBLAS=1 GCC_FLAGS=
+ make WITH_OPENBLAS=1 GCC_FLAGS=
Other options, such as compiling with warnings, are listed in the
Makefile.
### GNU Guix commands used
-With git bisect build the older versions of gemma with openblas
+Some development examples. With git bisect build the older versions
+of gemma with openblas
- ~/.config/guix/current/bin/guix environment -C guix --ad-hoc gcc gdb gfortran:lib gsl eigen lapack openblas zlib bash ld-wrapper perl ldc
- make clean ; make EIGEN_INCLUDE_PATH=$GUIX_ENVIRONMENT/include/eigen3 WITH_OPENBLAS=1 FORCE_DYNAMIC=1 -j 8
+ ~/.config/guix/current/bin/guix environment -C guix --ad-hoc gcc gdb gfortran:lib gsl lapack openblas zlib bash ld-wrapper perl ldc
+ make clean ; make WITH_OPENBLAS=1 FORCE_DYNAMIC=1 -j 8
or with atlas
- ~/.config/guix/current/bin/guix environment -C guix --ad-hoc gcc gdb gfortran:lib gsl eigen lapack atlas zlib bash ld-wrapper perl ldc
- make clean ; make EIGEN_INCLUDE_PATH=$GUIX_ENVIRONMENT/include/eigen3/Eigen/ WITH_OPENBLAS= FORCE_DYNAMIC=1 -j 25
-
-You may need to symlink Eigen in some older versions
-
- ln -s $GUIX_ENVIRONMENT/include/eigen3/Eigen src/Eigen
-
+ ~/.config/guix/current/bin/guix environment -C guix --ad-hoc gcc gdb gfortran:lib gsl lapack atlas zlib bash ld-wrapper perl ldc
+ make clean ; make WITH_OPENBLAS= FORCE_DYNAMIC=1 -j 25
## Run tests