aboutsummaryrefslogtreecommitdiff
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