about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix.scm121
1 files changed, 87 insertions, 34 deletions
diff --git a/guix.scm b/guix.scm
index c9c0410..4461891 100644
--- a/guix.scm
+++ b/guix.scm
@@ -1,53 +1,104 @@
 ;; To use this file to build HEAD of gemma:
 ;;
-;;   guix build -f guix.scm
+;;   guix build -f guix.scm       # default builds pangemma-git
+;;   guix build -L . gemma-git    # builds original (still)
 ;;
 ;; To get a development container (e.g., run in emacs shell).
 ;;
-;;   guix shell -C -D -f guix.scm
+;;   guix shell -C -D -F -v 3 -L . pangemma-shell-git  # pangemma-shell-git
+;;   guix shell -C -D -F -v 3 -L . gemma-git           # for specific packages
 ;;
 
-(use-modules
-  ((guix licenses) #:prefix license:)
-  (guix gexp)
-  (guix packages)
-  (guix git-download)
-  (guix build-system gnu)
-  (gnu packages algebra)
-  (gnu packages base)
-  (gnu packages compression)
-  ;; (gnu packages bioinformatics)
-  (gnu packages build-tools)
-  (gnu packages check)
-  ;; (gnu packages curl)
-  (gnu packages gdb)
-  (gnu packages guile)
-  ;; (gnu packages llvm)
-  (gnu packages maths)
-  ;; (gnu packages ninja)
-  ;; (gnu packages parallel)
-  (gnu packages perl)
-  ;; (gnu packages perl6)
-  ;; (gnu packages ruby)
-  (gnu packages pkg-config)
-  ;; (pjotr packages openblas) ;; we use this for the static builds
-  ;; (gnu packages shell)  ;; for shunit2
-  (srfi srfi-1)
-  (ice-9 popen)
-  (ice-9 rdelim))
+(define-module (guix)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix gexp)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages algebra)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages build-tools)
+  #:use-module (gnu packages check)
+  #:use-module (gnu packages gdb)
+  #:use-module (gnu packages guile)
+  #:use-module (gnu packages maths)
+  #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (srfi srfi-1)
+  #:use-module (ice-9 popen)
+  #:use-module (ice-9 rdelim))
 
 (define %source-dir (dirname (current-filename)))
 
 (define %git-commit
-    (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ)))
+  (read-string (open-pipe "git describe --always --tags --long|tr -d $'\n'" OPEN_READ)))
 
-(define %gemma-version
-    (read-string (open-pipe "cat VERSION" OPEN_READ)))
+(define %pangemma-version
+    (read-string (open-pipe "cat VERSION|tr -d $'\n'" OPEN_READ)))
 
+(define-public pangemma-base-git
+  "Pangemma base build package"
+  (package
+    (name "pangemma-git")
+    (version (git-version %pangemma-version "HEAD" %git-commit))
+    (source (local-file %source-dir #:recursive? #t))
+    (build-system gnu-build-system)
+    (inputs
+     (list gsl
+        openblas
+        zlib))
+    ;; ("gsl-static" ,gsl-static)
+    ;; ("zlib:static" ,zlib "static")
+    (propagated-inputs
+     (list guile-3.0))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+                      (delete 'configure)
+                      (delete 'validate-runpath)
+                      (add-before 'build 'bin-mkdir
+                                  (lambda _
+                                    (mkdir-p "bin")
+                                    ))
+                      (replace 'install
+                               (lambda* (#:key outputs #:allow-other-keys)
+                                 (let ((out (assoc-ref outputs "out")))
+                                   (install-file "bin/gemma" (string-append out "/bin"))))))
+       #:tests? #t
+       #:parallel-tests? #f))
+    (home-page "https://git.genenetwork.org/pangemma/")
+    (synopsis "Tool for genome-wide efficient mixed model association")
+    (description "New version of Genome-wide Efficient Mixed Model Association (PANGEMMA)
+provides a standard linear mixed model resolver with application in
+genome-wide association studies (GWAS).")
+    (license license:gpl3)))
+
+(define-public pangemma-shell-git
+  "Shell version for development"
+  (package
+    (inherit pangemma-base-git)
+    (name "pangemma-shell-git")
+    (propagated-inputs
+     (modify-inputs (package-inputs pangemma-base-git)
+         (append which binutils coreutils ;; for the shell
+                 )))
+    (arguments
+     `(#:phases (modify-phases %standard-phases
+                               (delete 'configure)
+                               (delete 'build)
+                               (delete 'package)
+                               (delete 'check)
+                               (delete 'install))))
+    (description "Pangemma shell for development")
+    ))
+
+;; ---- legacy build -----------------------------------------------------------------
 (define-public gemma-git
+  "Original legacy gemma -- for as long as it compiles"
   (package
     (name "gemma-git")
-    (version (git-version "0.98.5" "HEAD" %git-commit))
+    (version (git-version %pangemma-version "HEAD" %git-commit))
     (source (local-file %source-dir #:recursive? #t))
     (build-system gnu-build-system)
     (inputs
@@ -84,4 +135,6 @@ provides a standard linear mixed model resolver with application in
 genome-wide association studies (GWAS).")
     (license license:gpl3)))
 
+
+
 gemma-git