public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sci-libs/clblas/files/, sci-libs/clblas/
@ 2017-01-04  6:02 Sebastien Fabbro
  0 siblings, 0 replies; only message in thread
From: Sebastien Fabbro @ 2017-01-04  6:02 UTC (permalink / raw
  To: gentoo-commits

commit:     023edbbca8c5bb368ed32ce0fe44b54f9a537de4
Author:     Sébastien Fabbro <bicatali <AT> gentoo <DOT> org>
AuthorDate: Wed Jan  4 05:09:09 2017 +0000
Commit:     Sebastien Fabbro <bicatali <AT> gentoo <DOT> org>
CommitDate: Wed Jan  4 06:02:05 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=023edbbc

sci-libs/clblas: initial import

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 sci-libs/clblas/Manifest                           |   1 +
 sci-libs/clblas/clblas-2.10.ebuild                 | 102 +++++++++++++++++++++
 .../clblas-2.10-disable-multilib-cflags.patch      |  20 ++++
 .../files/clblas-2.10-fix-blas-dot-calls.patch     |  59 ++++++++++++
 .../files/clblas-2.10-fix-doxygen-output-dir.patch |  16 ++++
 .../files/clblas-2.10-fix-pthread-linkage.patch    |  18 ++++
 .../files/clblas-2.10-use-boost-dynamic-libs.patch |  16 ++++
 .../files/clblas-2.10-use-system-mathjax.patch     |  18 ++++
 sci-libs/clblas/metadata.xml                       |  29 ++++++
 9 files changed, 279 insertions(+)

diff --git a/sci-libs/clblas/Manifest b/sci-libs/clblas/Manifest
new file mode 100644
index 00000000..7431ba3
--- /dev/null
+++ b/sci-libs/clblas/Manifest
@@ -0,0 +1 @@
+DIST clblas-2.10.tar.gz 1154117 SHA256 72a46cb92f6057d10b503ce23d62db73d7332eb0645bb8bca3337f4c0558b429 SHA512 5ed43104aae565292e0df4cc9e014cf483ccc0ff89257ebb5817f6508bfc9593585ed658da639f2167fbfb5d92ef116be4d5de3694f56e1a1e228bd42b1c05c6 WHIRLPOOL 1a96142dc0e7aad076d1e61508b943da8ac176bd889cac89a3cab1aab64a1d8a6bc207bda4483be7dc726af600b660370548ee06db4d28d4b6643b7bff9419e8

diff --git a/sci-libs/clblas/clblas-2.10.ebuild b/sci-libs/clblas/clblas-2.10.ebuild
new file mode 100644
index 00000000..1769b44
--- /dev/null
+++ b/sci-libs/clblas/clblas-2.10.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+FORTRAN_NEEDED=test
+
+inherit cmake-utils python-single-r1 toolchain-funcs fortran-2
+
+MYPN="clBLAS"
+
+DESCRIPTION="Library containing BLAS routines for OpenCL"
+HOMEPAGE="https://github.com/clMathLibraries/clBLAS"
+SRC_URI="https://github.com/clMathLibraries/${MY_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0/2" # soname version
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+client doc examples ktest performance test"
+
+REQUIRED_USE="performance? ( ${PYTHON_REQUIRED_USE} )"
+
+RDEPEND="
+	virtual/opencl
+	doc? ( dev-libs/mathjax )
+	performance? ( ${PYTHON_DEPS} )
+"
+DEPEND="${RDEPEND}
+	doc? ( app-doc/doxygen )
+	test? (
+	   dev-cpp/gtest
+	   dev-libs/boost
+	   virtual/pkgconfig
+	   virtual/blas
+	)
+"
+
+S="${WORKDIR}/${MYPN}-${PV}"
+CMAKE_USE_DIR="${S}/src"
+
+PATCHES=(
+	"${FILESDIR}"/${P}-disable-multilib-cflags.patch
+	"${FILESDIR}"/${P}-fix-blas-dot-calls.patch
+	"${FILESDIR}"/${P}-fix-doxygen-output-dir.patch
+	"${FILESDIR}"/${P}-fix-pthread-linkage.patch
+	"${FILESDIR}"/${P}-use-boost-dynamic-libs.patch
+	"${FILESDIR}"/${P}-use-system-mathjax.patch
+)
+
+src_configure() {
+	local mycmakeargs=(
+		-DBUILD_SHARED_LIBS=ON
+		-DBUILD_RUNTIME=ON
+		-DBUILD_SAMPLE=OFF
+		-DBUILD_CLIENT="$(usex client)"
+		-DBUILD_KTEST="$(usex ktest)"
+		-DBUILD_PERFORMANCE="$(usex performance)"
+	)
+	if use test; then
+		mycmakeargs+=(
+			-DBUILD_TEST=ON
+			-DUSE_SYSTEM_GTEST=ON
+			-DBLAS_LIBRARIES="$($(tc-getPKG_CONFIG) --libs blas)"
+		)
+	else
+		mycmakeargs+=( -DBUILD_TEST=OFF	)
+	fi
+	cmake-utils_src_configure
+}
+
+src_compile() {
+	cmake-utils_src_compile
+	if use doc; then
+		cd doc
+		doxygen clBLAS.doxy || die
+	fi
+}
+
+src_test() {
+	pushd "${BUILD_DIR}/staging" > /dev/null
+	LD_LIBRARY_PATH="${BUILD_DIR}/library:${LD_LIBRARY_PATH}" \
+				   ./test-short
+	popd > /dev/null
+
+	# horrible hack to avoid installing compiled tests
+	# this will trigger some overcompilation
+	mycmakeargs+=( -DBUILD_TEST=OFF	)
+	cmake-utils_src_configure
+}
+
+src_install() {
+	use doc && HTML_DOCS=( doc/html/. )
+	cmake-utils_src_install
+	dodoc CHANGELOG  CONTRIBUTING.md NOTICE  README.md
+	if use examples; then
+		insinto /usr/share/doc/${PF}/examples
+		doins -r src/samples/*
+		docompress -x /usr/share/doc/${PF}/examples
+	fi
+}

diff --git a/sci-libs/clblas/files/clblas-2.10-disable-multilib-cflags.patch b/sci-libs/clblas/files/clblas-2.10-disable-multilib-cflags.patch
new file mode 100644
index 00000000..a7e59d9
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-disable-multilib-cflags.patch
@@ -0,0 +1,20 @@
+Description: disable multilib flags
+Author: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Forwarded: not-needed
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -296,9 +296,9 @@
+     # Don't use -rpath.
+     set(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE)
+ 
+-    set(CMAKE_C_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_C_FLAGS}")
+-    set(CMAKE_CXX_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_CXX_FLAGS}")
+-    set(CMAKE_Fortran_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_Fortran_FLAGS}")
++    #set(CMAKE_C_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_C_FLAGS}")
++    #set(CMAKE_CXX_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_CXX_FLAGS}")
++    #set(CMAKE_Fortran_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_Fortran_FLAGS}")
+ 
+     if(TARGET_PLATFORM EQUAL 32)
+         set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")

diff --git a/sci-libs/clblas/files/clblas-2.10-fix-blas-dot-calls.patch b/sci-libs/clblas/files/clblas-2.10-fix-blas-dot-calls.patch
new file mode 100644
index 00000000..cc2c6c3
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-fix-blas-dot-calls.patch
@@ -0,0 +1,59 @@
+diff --git a/src/tests/correctness/blas-lapack.c b/src/tests/correctness/blas-lapack.c
+index 9687bdf..54666b1 100644
+--- a/src/tests/correctness/blas-lapack.c
++++ b/src/tests/correctness/blas-lapack.c
+@@ -655,7 +655,7 @@ complex cdotu( int n, complex *x, int incx, complex *y, int incy)
+     #elif defined( __APPLE__)
+         cblas_cdotu_sub(n, x, incx, y, incy, &ans);
+     #else
+-        cdotusub_(&n, x, &incx, y, &incy, &ans);
++        ans = cdotu_(&n, x, &incx, y, &incy);
+     #endif
+ 
+     return ans;
+@@ -670,7 +670,7 @@ doublecomplex zdotu( int n, doublecomplex *x, int incx,  doublecomplex *y, int i
+     #elif defined(__APPLE__)
+         cblas_zdotu_sub(n, x, incx, y, incy, &ans);
+     #else
+-        zdotusub_(&n, x, &incx, y, &incy, &ans);
++        ans = zdotu_(&n, x, &incx, y, &incy);
+     #endif
+ 
+     return ans;
+@@ -685,7 +685,7 @@ complex cdotc( int n, complex *x, int incx, complex *y, int incy)
+     #elif defined(__APPLE__)
+         cblas_cdotc_sub(n, x, incx, y, incy, &ans);
+     #else
+-        cdotcsub_(&n, x, &incx, y, &incy, &ans);
++        ans = cdotc_(&n, x, &incx, y, &incy);
+     #endif
+ 
+     return ans;
+@@ -700,7 +700,7 @@ doublecomplex zdotc( int n, doublecomplex *x, int incx,  doublecomplex *y, int i
+     #elif defined(__APPLE__)
+         cblas_zdotc_sub(n, x, incx, y, incy, &ans);
+     #else
+-        zdotcsub_(&n, x, &incx, y, &incy, &ans);
++        ans = zdotc_(&n, x, &incx, y, &incy);
+     #endif
+ 
+     return ans;
+diff --git a/src/tests/correctness/blas-lapack.h b/src/tests/correctness/blas-lapack.h
+index d2db1aa..8619e1e 100644
+--- a/src/tests/correctness/blas-lapack.h
++++ b/src/tests/correctness/blas-lapack.h
+@@ -1170,10 +1170,10 @@ double ddot_(int *n, double *x, int *incx, double* y, int *incy);
+     complex cdotc_(int *n, complex *x, int *incx, complex* y, int *incy);
+     doublecomplex zdotc_(int *n, doublecomplex *x, int *incx, doublecomplex* y, int *incy);
+ #else
+-    void cdotusub_(int *n, complex *x, int *incx, complex* y, int *incy, complex *ans);
+-    void zdotusub_(int *n, doublecomplex *x, int *incx, doublecomplex* y, int *incy, doublecomplex *ans);
+-    void cdotcsub_(int *n, complex *x, int *incx, complex* y, int *incy, complex *ans);
+-    void zdotcsub_(int *n, doublecomplex *x, int *incx, doublecomplex* y, int *incy, doublecomplex *ans);
++    complex cdotu_(int *n, complex *x, int *incx, complex* y, int *incy);
++    doublecomplex zdotu_(int *n, doublecomplex *x, int *incx, doublecomplex* y, int *incy);
++    complex cdotc_(int *n, complex *x, int *incx, complex* y, int *incy);
++    doublecomplex zdotc_(int *n, doublecomplex *x, int *incx, doublecomplex* y, int *incy);
+ #endif
+ 
+ void sswap_(int *n, float *x, int *incx, float* y, int *incy);

diff --git a/sci-libs/clblas/files/clblas-2.10-fix-doxygen-output-dir.patch b/sci-libs/clblas/files/clblas-2.10-fix-doxygen-output-dir.patch
new file mode 100644
index 00000000..31abb89
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-fix-doxygen-output-dir.patch
@@ -0,0 +1,16 @@
+Description: use system mathjax instead of remote
+Author: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Forwarded: not-needed
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/doc/clBLAS.doxy
++++ b/doc/clBLAS.doxy
+@@ -52,7 +52,7 @@
+ # If a relative path is entered, it will be relative to the location 
+ # where doxygen was started. If left blank the current directory will be used.
+ 
+-OUTPUT_DIRECTORY       = ..\..\bin\clBLAS.doxy
++OUTPUT_DIRECTORY       = 
+ 
+ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+ # 4096 sub-directories (in 2 levels) under the output directory of each output 

diff --git a/sci-libs/clblas/files/clblas-2.10-fix-pthread-linkage.patch b/sci-libs/clblas/files/clblas-2.10-fix-pthread-linkage.patch
new file mode 100644
index 00000000..aa99529
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-fix-pthread-linkage.patch
@@ -0,0 +1,18 @@
+Description: fix missing linkage with pthread
+Author: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Forwarded: no 
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/library/CMakeLists.txt
++++ b/src/library/CMakeLists.txt
+@@ -888,6 +888,10 @@
+ set_target_properties( clBLAS PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/staging" )
+ target_link_libraries(clBLAS ${OPENCL_LIBRARIES} ${MATH_LIBRARY})
+ 
++set(THREADS_PREFER_PTHREAD_FLAG ON)
++find_package(Threads REQUIRED)
++target_link_libraries(clBLAS ${CMAKE_THREAD_LIBS_INIT})
++
+ # CPack configuration; include the executable into the package
+ install( TARGETS clBLAS
+          EXPORT Library

diff --git a/sci-libs/clblas/files/clblas-2.10-use-boost-dynamic-libs.patch b/sci-libs/clblas/files/clblas-2.10-use-boost-dynamic-libs.patch
new file mode 100644
index 00000000..57c585d
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-use-boost-dynamic-libs.patch
@@ -0,0 +1,16 @@
+Description: use Boost shared libraries instead of static
+Author: Ghislain Antony Vaillant <ghisvail@gmail.com>
+Forwarded: no 
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -270,7 +270,7 @@
+ 
+ # Find Boost on the system, and configure the type of boost build we want
+ set( Boost_USE_MULTITHREADED ON )
+-set( Boost_USE_STATIC_LIBS   ON )
++set( Boost_USE_STATIC_LIBS   OFF )
+ set( Boost_DETAILED_FAILURE_MSG   ON )
+ set( Boost_DEBUG ON )
+ set( Boost_ADDITIONAL_VERSIONS "1.44.0" "1.44" "1.47.0" "1.47" )

diff --git a/sci-libs/clblas/files/clblas-2.10-use-system-mathjax.patch b/sci-libs/clblas/files/clblas-2.10-use-system-mathjax.patch
new file mode 100644
index 00000000..775a669
--- /dev/null
+++ b/sci-libs/clblas/files/clblas-2.10-use-system-mathjax.patch
@@ -0,0 +1,18 @@
+Description: fix output directory for documentation
+ Use default doxygen directory, i.e. under docs/html, rather than the 
+ inappropriate path set by upstream.
+Author: Ghislain Antony Vaillant <ghisvail@gmail.com> 
+Forwarded: no
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+--- a/doc/clBLAS.doxy
++++ b/doc/clBLAS.doxy
+@@ -1223,7 +1223,7 @@
+ # installing MathJax.  However, it is strongly recommended to install a local 
+ # copy of MathJax from http://www.mathjax.org before deployment.
+ 
+-MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
++MATHJAX_RELPATH        = /usr/share/javascript/mathjax
+ 
+ # The MATHJAX_EXTENSIONS tag can be used to specify one or MathJax extension 
+ # names that should be enabled during MathJax rendering.

diff --git a/sci-libs/clblas/metadata.xml b/sci-libs/clblas/metadata.xml
new file mode 100644
index 00000000..cad01ed
--- /dev/null
+++ b/sci-libs/clblas/metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>sci@gentoo.org</email>
+    <name>Gentoo Science Project</name>
+  </maintainer>
+  <longdescription>
+    clBLAS is the code for the OpenCL BLAS portion of clMath. The
+    complete set of BLAS level 1, 2 and 3 routines is implemented. See
+    Netlib BLAS for the list of supported routines. In addition to GPU
+    devices, the library also supports running on CPU devices to
+    facilitate debugging and multicore programming.
+  </longdescription>
+  <use>
+    <flag name="client">
+      Build a command line clBLAS client program.
+    </flag>
+    <flag name="ktest">
+      A command line tool for testing single clBLAS kernel.
+    </flag>
+    <flag name="performance">
+      Copy performance scripts that can measure and graph performance.
+    </flag>
+  </use>
+  <upstream>
+    <remote-id type="github">clMathLibraries/clBLAS</remote-id>
+  </upstream>
+</pkgmetadata>


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-01-04  6:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-04  6:02 [gentoo-commits] repo/gentoo:master commit in: sci-libs/clblas/files/, sci-libs/clblas/ Sebastien Fabbro

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox