about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPjotr Prins2020-11-29 10:56:22 +0000
committerPjotr Prins2020-11-29 10:56:22 +0000
commit00480e8549987b6cae7100b28bcead2a2d501177 (patch)
tree98fa8d71e773faecedd360758b1050beb57c193b
parent235420546bf83bdeb91a654dc6daabdcffd6210f (diff)
downloadpangemma-00480e8549987b6cae7100b28bcead2a2d501177.tar.gz
Fix static build
-rw-r--r--.guix-dev-static2
-rw-r--r--INSTALL.md28
-rw-r--r--Makefile8
-rw-r--r--RELEASE-NOTES.md6
4 files changed, 44 insertions, 0 deletions
diff --git a/.guix-dev-static b/.guix-dev-static
new file mode 100644
index 0000000..a5efa2f
--- /dev/null
+++ b/.guix-dev-static
@@ -0,0 +1,2 @@
+# Typical Guix container invocation
+~/opt/guix/bin/guix environment -C guix --ad-hoc gcc-toolchain:static gdb gsl openblas zlib:static bash ld-wrapper perl vim which gfortran-toolchain
diff --git a/INSTALL.md b/INSTALL.md
index 87066b6..8c0fdb0 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -122,3 +122,31 @@ GEMMA includes the shunit2 test framework (version 2.0).
 or
 
     ./run_tests.sh
+
+## Releases
+
+### Docker release
+
+To distribute GEMMA I made static versions of the binary. A container
+can be made instead with, for example
+
+```sh
+env GUIX_PACKAGE_PATH=~/guix-bioinformatics ~/.config/guix/current/bin/guix \
+  pack -f docker gemma-gn2 -S /bin=bin
+```
+
+which created a container in of size 51MB. Tiny! For more information
+see
+[GUIX-NOTES](http://git.genenetwork.org/guix-bioinformatics/guix-notes/CONTAINERS.org).
+
+
+### Static release
+
+To create a static release, locate the gfortran lib and use
+
+    source .guix-dev-static
+    make WITH_GFORTRAN=1 EXTRA_FLAGS=-L/gnu/store/741057r2x06zwg6zcmqmdyv51spm6n9i-gfortran-7.5.0-lib/lib static
+
+otherwise OpenBlas will complain with
+
+    undefined reference to `_gfortran_concat_string'
diff --git a/Makefile b/Makefile
index 92e55b9..0cf3097 100644
--- a/Makefile
+++ b/Makefile
@@ -23,6 +23,10 @@
 #
 #      make static
 #
+#    Static build may require some extra flags
+#
+#      make WITH_GFORTRAN=1 EXTRA_FLAGS=-L/gnu/store/741057r2x06zwg6zcmqmdyv51spm6n9i-gfortran-7.5.0-lib/lib static
+#
 #    Run tests with
 #
 #      make check
@@ -72,6 +76,7 @@ WITH_GFORTRAN          =                  # Add -lgfortran (if OpenBlas does not
 OPENBLAS_LEGACY        =                  # Using older OpenBlas
 FORCE_STATIC           =                  # Static linking of libraries
 GCC_FLAGS              = -DHAVE_INLINE -pthread -Wall -std=gnu++11 # extra flags -Wl,--allow-multiple-definition
+EXTRA_FLAGS            =
 
 GSL_INCLUDE_PATH =
 ifeq ($(SYS), WIN)
@@ -172,6 +177,9 @@ endif
 ifdef WITH_GFORTRAN
   LIBS += -lgfortran -lquadmath
 endif
+ifdef EXTRA_FLAGS
+  LIBS += $(EXTRA_FLAGS)
+endif
 
 .PHONY: all test
 
diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md
index 7fa72cf..1d59d23 100644
--- a/RELEASE-NOTES.md
+++ b/RELEASE-NOTES.md
@@ -4,6 +4,12 @@ see
 and
 [commits](https://github.com/genetics-statistics/GEMMA/commits/master).
 
+## ChangeLog v0.99-pre1 (2020/??)
+
+* GEMMA builds on ARM
+* Fixed static build - requires gfortran path for OpenBLAS
+* Updated README's and Manual
+
 ## ChangeLog v0.98.3 (2020/11/28)
 
 Maintenance release