summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2017-07-04 15:21:33 +0300
committerEfraim Flashner <efraim@flashner.co.il>2017-07-04 22:55:44 +0300
commitce7e361fa30d3dbe5c1da35f52dade2eb829aed7 (patch)
treeb8ebc0463b08c201d93d58423af4fad81ea7277e
parent0545e43a91c884f8dac07abad5a267e362b56d89 (diff)
gnu: gemma: Fix building on non-Intel architectures.
* gnu/packages/patches/gemma-intel-compat.patch: New file. * gnu/packages/bioinformatics.scm (gemma)[source]: Add patch. [arguments]: Add NO_INTEL_COMPAT flag on non-Intel architectures. * gnu/local.mk (dist_patch_DATA): Register patch.
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/bioinformatics.scm19
-rw-r--r--gnu/packages/patches/gemma-intel-compat.patch44
3 files changed, 56 insertions, 8 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index ecd80acda5..8dbce7c052 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -622,6 +622,7 @@ dist_patch_DATA = \
%D%/packages/patches/gd-freetype-test-failure.patch \
%D%/packages/patches/gd-php-73968-Fix-109-XBM-reading.patch \
%D%/packages/patches/gegl-CVE-2012-4433.patch \
+ %D%/packages/patches/gemma-intel-compat.patch \
%D%/packages/patches/geoclue-config.patch \
%D%/packages/patches/ghc-dont-pass-linker-flags-via-response-files.patch \
%D%/packages/patches/ghostscript-CVE-2013-5653.patch \
diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 0ff0bbb9e3..55c2975a1e 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4,7 +4,7 @@
;;; Copyright © 2015, 2016 Pjotr Prins <pjotr.guix@thebird.nl>
;;; Copyright © 2015 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2016 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2016 Raoul Bonnal <ilpuccio.febo@gmail.com>
;;;
@@ -99,7 +99,7 @@
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg)
#:use-module (srfi srfi-1)
- #:use-module (srfi srfi-26))
+ #:use-module (ice-9 match))
(define-public r-ape
(package
@@ -2719,7 +2719,8 @@ comment or quality sections.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
- "055ynn16gd12pf78n4vr2a9jlwsbwzajpdnf2y2yilg1krfff222"))))
+ "055ynn16gd12pf78n4vr2a9jlwsbwzajpdnf2y2yilg1krfff222"))
+ (patches (search-patches "gemma-intel-compat.patch"))))
(inputs
`(("gsl" ,gsl)
("lapack" ,lapack)
@@ -2727,11 +2728,13 @@ comment or quality sections.")
(build-system gnu-build-system)
(arguments
`(#:make-flags
- '(,@(if (any (cute string-prefix? <> (or (%current-system)
- (%current-target-system)))
- '("x86_64" "mips64el" "aarch64"))
- '("FORCE_DYNAMIC=1") ; use shared libs
- '("FORCE_DYNAMIC=1" "FORCE_32BIT=1")))
+ '(,@(match (%current-system)
+ ("x86_64-linux"
+ '("FORCE_DYNAMIC=1"))
+ ("i686-linux"
+ '("FORCE_DYNAMIC=1" "FORCE_32BIT=1"))
+ (_
+ '("FORCE_DYNAMIC=1" "NO_INTEL_COMPAT=1"))))
#:phases
(modify-phases %standard-phases
(delete 'configure)
diff --git a/gnu/packages/patches/gemma-intel-compat.patch b/gnu/packages/patches/gemma-intel-compat.patch
new file mode 100644
index 0000000000..f12ec56d9b
--- /dev/null
+++ b/gnu/packages/patches/gemma-intel-compat.patch
@@ -0,0 +1,44 @@
+From da1ed24209121f7b0f03f360b1029d7125a38e70 Mon Sep 17 00:00:00 2001
+From: Efraim Flashner <efraim@flashner.co.il>
+Date: Tue, 4 Jul 2017 12:44:53 +0300
+Subject: [PATCH] Add NO_INTEL_COMPAT flag to Makefile.
+
+see also: https://github.com/xiangzhou/GEMMA/pull/47
+
+---
+ Makefile | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 5bb8748..712b1ad 100644
+--- a/Makefile
++++ b/Makefile
+@@ -11,6 +11,7 @@
+ SYS = LNX
+ # Leave blank after "=" to disable; put "= 1" to enable
+ WITH_LAPACK = 1
++NO_INTEL_COMPAT =
+ FORCE_32BIT =
+ FORCE_DYNAMIC =
+ DIST_NAME = gemma-0.96
+@@ -64,10 +65,13 @@ endif
+ HDR += $(SRC_DIR)/lapack.h
+ endif
+
+-ifdef FORCE_32BIT
+- CPPFLAGS += -m32
+-else
+- CPPFLAGS += -m64
++ifdef NO_INTEL_COMPAT
++ else
++ ifdef FORCE_32BIT
++ CPPFLAGS += -m32
++ else
++ CPPFLAGS += -m64
++ endif
+ endif
+
+ ifdef FORCE_DYNAMIC
+--
+2.13.2
+