>From 3e5e1e49893c73f8b9a565edcae5388f548dd13a Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Jan 2015 16:12:31 +0100 Subject: [PATCH] gnu: Add Threading Building Blocks. * gnu/packages/tbb.scm: New file. * gnu-system.am (GNU_SYSTEM_MODULES): Add it. --- gnu-system.am | 1 + gnu/packages/tbb.scm | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 gnu/packages/tbb.scm diff --git a/gnu-system.am b/gnu-system.am index 850c155..7f554bd 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -253,6 +253,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/stalonetray.scm \ gnu/packages/swig.scm \ gnu/packages/synergy.scm \ + gnu/packages/tbb.scm \ gnu/packages/tcl.scm \ gnu/packages/tcsh.scm \ gnu/packages/telephony.scm \ diff --git a/gnu/packages/tbb.scm b/gnu/packages/tbb.scm new file mode 100644 index 0000000..674ec57 --- /dev/null +++ b/gnu/packages/tbb.scm @@ -0,0 +1,84 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2015 Ricardo Wurmus +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see . + +(define-module (gnu packages tbb) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (gnu packages)) + +(define-public tbb + (package + (name "tbb") + (version "4.3.2") + (source (origin + (method url-fetch) + (uri (string-append + "https://www.threadingbuildingblocks.org/sites/default" + "/files/software_releases/source/" + "tbb43_20141204oss_src.tgz")) + (sha256 + (base32 + "0jsczl99jfgj47kj7c4sd4fk7v3rbaiax1ng9ypykz1hh0lrrsws")))) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases (alist-delete + 'configure + (alist-cons-before + 'build 'set-build-path + (lambda _ + (substitute* "build/common.inc" + (("export tbb_build_prefix.+$") + "export tbb_build_prefix?=guix\n"))) + (alist-replace + 'install + (lambda _ + (let ((lib (string-append %output "/lib")) + (doc (string-append %output "/doc")) + (examples (string-append %output "/examples")) + (include (string-append %output "/include"))) + (mkdir-p lib) + (for-each + (lambda (f) + (copy-file f + (string-append lib "/" + (basename f)))) + (find-files "build/guix_release" "\\.so")) + (copy-recursively "examples" examples) + (copy-recursively "include" include) + (copy-recursively "doc" doc) + #t)) + %standard-phases))))) + (home-page "https://www.threadingbuildingblocks.org") + (synopsis "The Threading Building Blocks library abstracts low-level +threading details") + (description + "Threading Building Blocks (TBB) is a C++ runtime library that abstracts +the low-level threading details necessary for optimal multi-core performance. +It uses common C++ templates and coding style to eliminate tedious threading +implementation work. + +TBB requires fewer lines of code to achieve parallelism than other threading +models. The applications you write are portable across platforms. Since the +library is also inherently scalable, no code maintenance is required as more +processor cores become available.") + ;; GPL2 with exceptions + (license gpl2))) -- 1.9.3