about summary refs log tree commit diff
diff options
context:
space:
mode:
-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