diff options
author | Pjotr Prins | 2020-11-29 09:26:16 +0000 |
---|---|---|
committer | Pjotr Prins | 2020-11-29 09:52:31 +0000 |
commit | e4238a9ddf368c7eefca39a1961fb37ec047f965 (patch) | |
tree | f33bc5d71cc59ab0f4a746a477c2b4fe60f5a7ac | |
parent | e9e8424af2e02d46ac97af206765b9bbec8f9732 (diff) | |
download | pangemma-e4238a9ddf368c7eefca39a1961fb37ec047f965.tar.gz |
Update INSTALL doc
-rw-r--r-- | INSTALL.md | 55 |
1 files changed, 21 insertions, 34 deletions
@@ -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 |