about summary refs log tree commit diff
path: root/gn/packages/arrayfire.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gn/packages/arrayfire.scm')
-rw-r--r--gn/packages/arrayfire.scm216
1 files changed, 127 insertions, 89 deletions
diff --git a/gn/packages/arrayfire.scm b/gn/packages/arrayfire.scm
index 5869a88..21c1895 100644
--- a/gn/packages/arrayfire.scm
+++ b/gn/packages/arrayfire.scm
@@ -18,12 +18,16 @@
 
 (define-module (gn packages arrayfire)
   #:use-module (guix packages)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system cmake)
-  #:use-module (guix licenses)
+  #:use-module (gnu packages)
+  #:use-module (guix utils)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bootstrap)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages gawk)
   #:use-module (gnu packages cmake)
@@ -31,155 +35,189 @@
   #:use-module (gnu packages glib)
   #:use-module (gnu packages image)
   #:use-module (gnu packages video)
-  #:use-module (gnu packages tls)
   #:use-module (gnu packages textutils)
   ;; #:use-module (gnu packages fftw)
   ;; #:use-module (gnu packages fftw-openmpi) - in algebra
   ;; #:use-module (gnu packages fftwf)
   #:use-module (gnu packages gl)
-  #:use-module (gnu packages glew)
+  #:use-module (gnu packages gnupg)
   #:use-module (gnu packages pkg-config)
-  #:use-module (gnu packages mesa)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages web)
+  #:use-module (gnu packages wget)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages ruby)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages zip)  
   #:use-module (gnu packages linux))
 
 (define-public arrayfire
-  (package
+(package
     (name "arrayfire")
-    (version "v3.3.alpha")
+    (version "3.3.1")
     (source (origin
               (method url-fetch)
-              (uri (string-append "https://github.com/arrayfire/arrayfire/archive/" version 
-                                  ".tar.gz"))
+              (uri (string-append "http://arrayfire.com/arrayfire_source/arrayfire-full-" version 
+                                  ".tar.bz2"))
+              (file-name (string-append name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0rla0mi5wby8bkpzrj063y6js3d4dlfl3qwfvm8m8skfc21dz52p"))))
-    (build-system cmake-build-system)
-    (arguments `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release -DBUILD_OPENCL=ON")))
-    (native-inputs
-      `(("autoconf" ,autoconf)
+                "045adww6dqmyz6kkfmq7xawi5v9a894yp5j9pzn6j568gi48pyqc"))))
+    (native-inputs `(("autoconf" ,autoconf)
         ("automake" ,automake)
-        ("cmake" ,cmake)
-        ("doxygen" ,doxygen)
         ("gawk" ,gawk)
-        ("gettext" ,gnu-gettext)
-        ("icedtea7" ,icedtea7) 
+        ("git" ,git)
+        ("glew" ,glew)
         ("libtool" ,libtool)
-        ("pkg-config" ,pkg-config)
-        ("swig" ,swig)
-        ("which" ,which)
-        ("yasm" ,yasm)))
-    (inputs
-     `(("boost" ,boost)
-       ("bzip2" ,bzip2)
+        ("pkg-config" ,pkg-config)))
+    (inputs `(("boost" ,boost)
        ("glfw" ,glfw)
        ("curl" ,curl)
+       ("atlas" ,atlas)
        ("dbus" ,dbus)
+       ("opencl-headers" ,opencl-headers)
+       ("ocl-icd" ,ocl-icd)
        ("enca" ,enca)
        ("eudev" ,eudev)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("fribidi" ,fribidi)
        ("glew" ,glew)
-       ("gnutls" ,gnutls)
-       ("gperf" ,gperf)
+       ("glib" ,glib)
+       ("lapack" ,lapack)
+       ("scalapack" ,scalapack)
        ("libcap" ,libcap)
-       ("libgcrypt" ,libgcrypt)
        ("libjpeg" ,libjpeg)
        ("libltdl" ,libltdl)
-       ("libssh" ,libssh)
        ("libtiff" ,libtiff)
-       ("libxml2" ,libxml2)
-       ("libxmu" ,libxmu)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxslt" ,libxslt)
-       ("libxt" ,libxt)
        ("libyajl" ,libyajl)
-       ("lzo" ,lzo)
        ("mesa-utils" ,mesa-utils)
-       ("mysql" ,mysql)
-       ("openssl" ,openssl)
-       ("pcre" ,pcre)
        ("python" ,python-2)
-       ("tinyxml" ,tinyxml)
-       ("unzip" ,unzip)
-       ("zip" ,zip)
        ("freeimage" ,freeimage)
+       ("freeglut" ,freeglut)
        ("fftw" ,fftw)
        ("fftwf" ,fftwf)
        ("fftw-openmpi" ,fftw-openmpi)
-       ("atlas" ,atlas)
-       ("gfortran", gfortran)
        ("glew" ,glew)
        ("glu" ,glu)
-       ("libx11" ,libx11)
-       ("libxi" ,libxi)
-       ("libxrandr" ,libxrandr)
-       ("libxxf86vm" ,libxxf86vm)
-       ("inputproto" ,inputproto)
-       ("glproto" ,glproto)
-       ("zlib" ,zlib)))
+       ("openblas" ,openblas)
+       ("wget" ,wget)
+       ("cmake" ,cmake)))
+    (build-system cmake-build-system)
+    (arguments 
+     `(#:configure-flags '("-DBUILD_OPENCL=OFF" "-DBUILD_CUDA=OFF" "-DBUILD_GRAPHICS=OFF") 
+       #:tests? #f))     
     (synopsis "ArrayFire: a general purpose GPU library. https://arrayfire.com")
     (description "ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming simple.")
     (home-page "http://arrayfire.com/")
-    (license gpl3+)))
+    (license (list license:gpl2 
+                   license:gpl2+ 
+                   license:gpl3 
+                   license:gpl3+))))
 
 (define-public glfw
   (package
     (name "glfw")
-    (version "3.0.4")
+    (version "3.1.2")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/glfw/glfw/archive/"
-                                 version ".zip"))
-             (file-name (string-append name "-" version ".zip"))
+                                 version ".tar.gz"))
              (sha256
               (base32
-               "1g0jm80cakk60477zz9z1mpsznxaadsfm318yiigf6kackrkqfqg"))))
-    (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON")))
-    (native-inputs
-      `(("autoconf" ,autoconf)
+               "08pixv8hd5xsccf7l8cqcijjqaq4k4da8qbp77wggal2fq445ika"))))
+    (build-system cmake-build-system)
+    (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") 
+                 #:tests? #f))
+    (native-inputs `(("autoconf" ,autoconf)
         ("automake" ,automake)
         ("cmake" ,cmake)
+        ("git" ,git)
         ("libtool" ,libtool)
+        ("libpthread-stubs" ,libpthread-stubs)
         ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("bzip2" ,bzip2)
-       ("curl" ,curl)
+    (inputs `(("curl" ,curl)
        ("dbus" ,dbus)
        ("enca" ,enca)
        ("eudev" ,eudev)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("fribidi" ,fribidi)
        ("glew" ,glew)
-       ("gnutls" ,gnutls)
-       ("gperf" ,gperf)
        ("libcap" ,libcap)
-       ("libgcrypt" ,libgcrypt)
        ("libjpeg" ,libjpeg)
        ("libltdl" ,libltdl)
-       ("libssh" ,libssh)
        ("libtiff" ,libtiff)
-       ("libxml2" ,libxml2)
-       ("libxmu" ,libxmu)
-       ("libxrandr" ,libxrandr)
-       ("libxrender" ,libxrender)
-       ("libxslt" ,libxslt)
-       ("libxt" ,libxt)
-       ("lzo" ,lzo)
        ("mesa-utils" ,mesa-utils)
-       ("mysql" ,mysql)
-       ("openssl" ,openssl)
-       ("python" ,python-2)
-       ("tinyxml" ,tinyxml)
-       ("unzip" ,unzip)
-       ("zip" ,zip)
-       ("zlib" ,zlib)))
+       ("randrproto" ,randrproto)
+       ("libxrandr" ,libxrandr)
+       ("xineramaproto" ,xineramaproto)
+       ("libxinerama" ,libxinerama)
+       ("libxcursor" ,libxcursor)
+       ("python" ,python-2)))       
     (home-page "http://www.glfw.org/")
     (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.")
-    (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events. It is easy to integrate into existing applications and does not lay claim to the main loop.
-GLFW is written in C and has native support for Windows, OS X and many Unix-like systems using the X Window System, such as Linux and FreeBSD.
-GLFW is licensed under the zlib/libpng license.")
-    (license license:gpl2+)))
+    (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.")
+    (license (list license:gpl2))))
+    
+(define-public ocl-icd
+  (package
+   (name "ocl-icd")
+   (version "2.2.9")
+   (source (origin
+             (method url-fetch)
+             (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-"
+                                 version ".tar.gz"))
+             (file-name (string-append name "-" version ".tar.gz"))
+             (sha256
+              (base32
+               "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc"))))
+    (inputs `(("zip" ,zip)
+             ("autoconf" ,autoconf)
+             ("automake" ,automake)
+             ("ruby" ,ruby)
+             ("libtool" ,libtool)
+             ("opencl-headers" ,opencl-headers)
+             ("libgcrypt" ,libgcrypt)))                                              
+    (build-system gnu-build-system)
+     (arguments
+     '(#:phases (modify-phases %standard-phases
+                    (add-after 'unpack `bootstrap
+                      (lambda _
+                        (zero? (system* "autoreconf" "-vfi")))))))    
+    (home-page "https://forge.imag.fr/projects/ocl-icd/")
+    (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).")
+    (description "OpenCL implementations are provided as ICD (Installable Client Driver).
+    An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project.
+    This free ICD Loader can load any (free or non free) ICD")
+    (license (list license:gpl2 license:ruby))))
+    
+(define-public opencl-headers
+(let ((commit "c1770dc"))
+  (package
+    (name "opencl-headers")
+    (version (string-append "2.1-" commit ))
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+              (url "https://github.com/KhronosGroup/OpenCL-Headers.git")
+              (commit commit)))
+              (file-name (string-append name "-" commit))
+              (sha256
+               (base32
+                "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck"))))
+    (propagated-inputs '())
+    (inputs '())
+    (native-inputs '())
+    (build-system gnu-build-system)
+    (arguments
+     '(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (delete 'build)
+         (delete 'check)
+         (replace 'install
+                  (lambda* (#:key outputs #:allow-other-keys)
+                    (copy-recursively "." (string-append
+                                                 (assoc-ref outputs "out")
+                                                 "/include/CL")))))))
+    (synopsis "The Khronos OpenCL headers")
+    (description "This package provides the Khronos OpenCL headers")
+    (home-page "https://www.khronos.org/registry/cl/")
+    (license (list license:gpl2)))))
+