diff options
author | Sébastien Fabbro <bicatali@gentoo.org> | 2017-01-04 05:09:09 +0000 |
---|---|---|
committer | Sébastien Fabbro <bicatali@gentoo.org> | 2017-01-04 06:02:05 +0000 |
commit | 023edbbca8c5bb368ed32ce0fe44b54f9a537de4 (patch) | |
tree | 10cf84c6aaaa59656bbca4d8ebaec3e9e1ceeb85 /sci-libs | |
parent | sci-libs/clblast: initial import (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | sci-libs/clblas/clblas-2.10.ebuild | 102 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-disable-multilib-cflags.patch | 20 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-fix-blas-dot-calls.patch | 59 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-fix-doxygen-output-dir.patch | 16 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-fix-pthread-linkage.patch | 18 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-use-boost-dynamic-libs.patch | 16 | ||||
-rw-r--r-- | sci-libs/clblas/files/clblas-2.10-use-system-mathjax.patch | 18 | ||||
-rw-r--r-- | sci-libs/clblas/metadata.xml | 29 |
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> |