summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Fabbro <bicatali@gentoo.org>2017-01-04 05:09:09 +0000
committerSébastien Fabbro <bicatali@gentoo.org>2017-01-04 06:02:05 +0000
commit023edbbca8c5bb368ed32ce0fe44b54f9a537de4 (patch)
tree10cf84c6aaaa59656bbca4d8ebaec3e9e1ceeb85 /sci-libs
parentsci-libs/clblast: initial import (diff)
downloadgentoo-023edbbca8c5bb368ed32ce0fe44b54f9a537de4.tar.gz
gentoo-023edbbca8c5bb368ed32ce0fe44b54f9a537de4.tar.bz2
gentoo-023edbbca8c5bb368ed32ce0fe44b54f9a537de4.zip
sci-libs/clblas: initial import
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'sci-libs')
-rw-r--r--sci-libs/clblas/Manifest1
-rw-r--r--sci-libs/clblas/clblas-2.10.ebuild102
-rw-r--r--sci-libs/clblas/files/clblas-2.10-disable-multilib-cflags.patch20
-rw-r--r--sci-libs/clblas/files/clblas-2.10-fix-blas-dot-calls.patch59
-rw-r--r--sci-libs/clblas/files/clblas-2.10-fix-doxygen-output-dir.patch16
-rw-r--r--sci-libs/clblas/files/clblas-2.10-fix-pthread-linkage.patch18
-rw-r--r--sci-libs/clblas/files/clblas-2.10-use-boost-dynamic-libs.patch16
-rw-r--r--sci-libs/clblas/files/clblas-2.10-use-system-mathjax.patch18
-rw-r--r--sci-libs/clblas/metadata.xml29
9 files changed, 279 insertions, 0 deletions
diff --git a/sci-libs/clblas/Manifest b/sci-libs/clblas/Manifest
new file mode 100644
index 000000000000..7431ba3d0316
--- /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 000000000000..1769b44e244a
--- /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 000000000000..a7e59d913f06
--- /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 000000000000..cc2c6c3c1766
--- /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 000000000000..31abb89b1c3a
--- /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 000000000000..aa99529df034
--- /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 000000000000..57c585da11fc
--- /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 000000000000..775a669e96a8
--- /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 000000000000..cad01ed8bce0
--- /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>