diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2019-10-29 12:58:10 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2019-10-29 15:14:22 +0100 |
commit | 7ff157c16cc74d367978170815313a37fc0fff93 (patch) | |
tree | a6d8f33f2ce5fa540276161c653fe8930289acdd /gnu/packages | |
parent | 9b6410b96aed1f51a4eae9d123358a1e41f54374 (diff) |
gnu: Add guile-ffi-fftw.
* gnu/packages/guile-xyz.scm (guile-ffi-fftw): New variable.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/guile-xyz.scm | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/gnu/packages/guile-xyz.scm b/gnu/packages/guile-xyz.scm index 3a55585251..d5c7325ba4 100644 --- a/gnu/packages/guile-xyz.scm +++ b/gnu/packages/guile-xyz.scm @@ -41,6 +41,7 @@ (define-module (gnu packages guile-xyz) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) + #:use-module (gnu packages algebra) #:use-module (gnu packages aspell) #:use-module (gnu packages autotools) #:use-module (gnu packages base) @@ -2608,3 +2609,47 @@ bindings to Vigra C (a C wrapper to most of the Vigra functionality) and is enriched with pure Guile Scheme algorithms, all accessible through a nice, clean and easy to use high level API.") (license license:gpl3+))) + +(define-public guile-ffi-fftw + (let ((commit "95d7ffb55860f3163c5283ecec1ef43bc3d174dd") + (revision "1")) + (package + (name "guile-ffi-fftw") + (version (git-version "0" revision commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/lloda/guile-ffi-fftw.git") + (commit commit))) + (file-name (git-file-name "guile-ffi-fftw" version)) + (sha256 + (base32 + "0v9vk9cr4x9gn36lihi9gfkxyiqak0i598v5li6qw8bg95004p49")))) + (build-system guile-build-system) + (arguments + `(#:source-directory "mod" + #:phases + (modify-phases %standard-phases + (add-after 'unpack 'prepare-build + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "mod/ffi/fftw.scm" + (("\\(getenv \"GUILE_FFI_FFTW_LIBFFTW3_PATH\"\\)") + (format #f "\"~a/lib\"" (assoc-ref inputs "fftw")))) + #t)) + (add-after 'build 'check + (lambda _ + (invoke "guile" "-L" "mod" + "-s" "test/test-ffi-fftw.scm")))))) + (inputs + `(("fftw" ,fftw) + ("guile" ,guile-2.2))) + (home-page "https://github.com/lloda/guile-ffi-fftw/") + (synopsis "Access FFTW through Guile's FFI") + (description "This is a minimal set of Guile FFI bindings for the FFTW +library's ‘guru interface’. It provides two functions: @code{fftw-dft! rank +sign in out} and @code{fftw-dft rank sign in}. These bindings being minimal, +there is no support for computing & reusing plans, or split r/i transforms, or +anything other than straight complex DFTs.") + ;; TODO: This might actually be LGPLv3+ + ;; See https://github.com/lloda/guile-ffi-fftw/issues/1 + (license license:gpl3+)))) |