From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ricardo Wurmus Subject: [PATCH] gnu: Add Threading Building Blocks Date: Mon, 26 Jan 2015 16:19:48 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38420) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFlSK-0003JK-V2 for guix-devel@gnu.org; Mon, 26 Jan 2015 10:20:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YFlSH-00062l-6e for guix-devel@gnu.org; Mon, 26 Jan 2015 10:20:00 -0500 Received: from pegasus.bbbm.mdc-berlin.de ([141.80.25.20]:47072) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YFlSG-00061F-Q4 for guix-devel@gnu.org; Mon, 26 Jan 2015 10:19:57 -0500 Received: from localhost (localhost [127.0.0.1]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP id 440953806EF for ; Mon, 26 Jan 2015 16:19:55 +0100 (CET) Received: from pegasus.bbbm.mdc-berlin.de ([127.0.0.1]) by localhost (pegasus.bbbm.mdc-berlin.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Wqi2EWuU_RS0 for ; Mon, 26 Jan 2015 16:19:49 +0100 (CET) Received: from HTCATWO.mdc-berlin.net (mab.citx.mdc-berlin.de [141.80.36.102]) by pegasus.bbbm.mdc-berlin.de (Postfix) with ESMTP for ; Mon, 26 Jan 2015 16:19:49 +0100 (CET) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel@gnu.org --=-=-= Content-Type: text/plain Hi Guix, the attached patch adds the Intel TBB library. There are a couple of things I'm not sure about: - should the examples be included per default or should they go into a separate "doc" output together with the /doc directory? Together they take up about 10MB. - the version number is only given as "4.3 Update 2 Current version" on the download page. I turned this into "4.3.2", but I'm not sure if this is really equivalent or if we should rather use the datestamp on the tarball (= "43_20141204") - the second paragraph of the description sounds a little too much like advertisement; any suggestions on how to reword this, or can I just delete the second paragraph? Best, Ricardo --=-=-= Content-Type: text/x-patch; charset="utf-8" Content-Disposition: attachment; filename="0001-gnu-Add-Threading-Building-Blocks.patch" Content-Transfer-Encoding: quoted-printable >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 =3D \ 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 =C2=A9 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 (a= t +;;; 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/defau= lt" + "/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?=3Dguix\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 abst= racts +the low-level threading details necessary for optimal multi-core perform= ance. +It uses common C++ templates and coding style to eliminate tedious threa= ding +implementation work. + +TBB requires fewer lines of code to achieve parallelism than other threa= ding +models. The applications you write are portable across platforms. Sinc= e the +library is also inherently scalable, no code maintenance is required as = more +processor cores become available.") + ;; GPL2 with exceptions + (license gpl2))) --=20 1.9.3 --=-=-=--