From 8c6c91feadf8cc35426f0254e1b898eb3f9e6fbf Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 26 Jan 2015 16:12:31 +0100 Subject: 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 | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 gnu/packages/tbb.scm diff --git a/gnu-system.am b/gnu-system.am index 1ee1b3eb05..6c2d66bbda 100644 --- a/gnu-system.am +++ b/gnu-system.am @@ -256,6 +256,7 @@ GNU_SYSTEM_MODULES = \ gnu/packages/swig.scm \ gnu/packages/sxiv.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 0000000000..42670d77c0 --- /dev/null +++ b/gnu/packages/tbb.scm @@ -0,0 +1,83 @@ +;;; 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")) + (modules '((guix build utils))) + (snippet + '(substitute* "build/common.inc" + (("export tbb_build_prefix.+$") + "export tbb_build_prefix?=guix\n"))))) + (outputs '("out" "doc")) + (build-system gnu-build-system) + (arguments + `(#:test-target "test" + #:phases (alist-delete + 'configure + (alist-replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((doc (string-append + (assoc-ref outputs "doc") "/doc")) + (examples (string-append doc "/examples")) + (lib (string-append + (assoc-ref outputs "out") "/lib")) + (include (string-append + (assoc-ref outputs "out") "/include"))) + (mkdir-p lib) + (for-each + (lambda (f) + (copy-file f + (string-append lib "/" + (basename f)))) + (find-files "build/guix_release" "\\.so")) + (copy-recursively "doc" doc) + (copy-recursively "examples" examples) + (copy-recursively "include" include) + #t)) + %standard-phases)))) + (home-page "https://www.threadingbuildingblocks.org") + (synopsis "C++ library for parallel programming") + (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. It provides parallel loop constructs, asynchronous +tasks, synchronization primitives, atomic operations, and more.") + ;; GPLv2 with run-time exception: + ;; + (license gpl2))) -- cgit v1.2.3