From 6a35cc5ec7083d71efe5c8db717fe824f7096446 Mon Sep 17 00:00:00 2001 From: Mo Zhou Date: Thu, 11 Jul 2019 05:28:40 +0000 Subject: sci-libs/openblas: bump to 0.3.6, solving problem with gcc-9.1.0 . Closes: https://github.com/gentoo/gentoo/pull/12423 Package-Manager: Portage-2.3.52, Repoman-2.3.12 Signed-off-by: Mo Zhou Signed-off-by: Benda Xu --- sci-libs/openblas/Manifest | 1 + sci-libs/openblas/openblas-0.3.6.ebuild | 105 ++++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+) create mode 100644 sci-libs/openblas/openblas-0.3.6.ebuild diff --git a/sci-libs/openblas/Manifest b/sci-libs/openblas/Manifest index 8ebcf20cda70..87307912432f 100644 --- a/sci-libs/openblas/Manifest +++ b/sci-libs/openblas/Manifest @@ -1 +1,2 @@ DIST openblas-0.3.5.tar.gz 11853101 BLAKE2B a9b249bc397fcb1d80401d1c60c6985803016e4fd0908649fe6386ae84a09a53569814b3af65fd8fbfa92f2cdd5d4af313ba91a80f7daa7e481a7941cbb9af2c SHA512 15520c3eca79b002f1afbee64257afa24705dec667a89bd46acfcdae426e29342816fb586db98ff256fcc9d0fd744b14b347fed23995958e7646a5e3e7310cf4 +DIST openblas-0.3.6.tar.gz 11923774 BLAKE2B 0133b83a4449fd7f86d6379129be4e4477df338d0a402a7787eec317838922b175315c6e6b014a2c7ed6aa1c58509a28f6b48c641e043af067434c4315f1fdb1 SHA512 e432ae8bfbdc8e8c6336553e05181ab38576164c140ef2a6ddb2a66479f724bd4e60a2c90f7bc15bf18eefa7045e7775dedae421fb71296b8d250132c2407b07 diff --git a/sci-libs/openblas/openblas-0.3.6.ebuild b/sci-libs/openblas/openblas-0.3.6.ebuild new file mode 100644 index 000000000000..ba14ee30b531 --- /dev/null +++ b/sci-libs/openblas/openblas-0.3.6.ebuild @@ -0,0 +1,105 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +DESCRIPTION="Optimized BLAS library based on GotoBLAS2" +HOMEPAGE="http://xianyi.github.com/OpenBLAS/" +SRC_URI="https://github.com/xianyi/OpenBLAS/tarball/v${PV} -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" +IUSE="dynamic openmp pthread serial static-libs eselect-ldso" +REQUIRED_USE="?? ( openmp pthread serial )" + +RDEPEND=" +eselect-ldso? ( >=app-eselect/eselect-blas-0.2 + !app-eselect/eselect-cblas + >=app-eselect/eselect-lapack-0.2 ) +" +DEPEND="virtual/pkgconfig" + +PATCHES=( "${FILESDIR}/shared-blas-lapack.patch" ) + +openblas_flags() { + local flags=() + use dynamic && \ + flags+=( DYNAMIC_ARCH=1 TARGET=GENERIC NUM_THREADS=64 NO_AFFINITY=1 ) + if use openmp; then + flags+=( USE_THREAD=1 USE_OPENMP=1 ) + elif use pthread; then + flags+=( USE_THREAD=1 USE_OPENMP=0 ) + else + flags+=( USE_THREAD=0 ) # serial + fi + flags+=( DESTDIR="${D}" PREFIX="${EPREFIX}/usr" ) + flags+=( OPENBLAS_INCLUDE_DIR='$(PREFIX)'/include/${PN} ) + flags+=( OPENBLAS_LIBRARY_DIR='$(PREFIX)'/$(get_libdir) ) + echo "${flags[@]}" +} + +src_unpack () { + default + find "${WORKDIR}" -maxdepth 1 -type d -name \*OpenBLAS\* && \ + mv "${WORKDIR}"/*OpenBLAS* "${S}" || die +} + +src_compile () { + emake $(openblas_flags) + emake -Cinterface shared-blas-lapack $(openblas_flags) +} + +src_install () { + emake install $(openblas_flags) + + if use eselect-ldso; then + dodir /usr/$(get_libdir)/blas/openblas/ + insinto /usr/$(get_libdir)/blas/openblas/ + doins interface/libblas.so.3 + dosym libblas.so.3 usr/$(get_libdir)/blas/openblas/libblas.so + doins interface/libcblas.so.3 + dosym libcblas.so.3 usr/$(get_libdir)/blas/openblas/libcblas.so + + dodir /usr/$(get_libdir)/lapack/openblas/ + insinto /usr/$(get_libdir)/lapack/openblas/ + doins interface/liblapack.so.3 + dosym liblapack.so.3 usr/$(get_libdir)/lapack/openblas/liblapack.so + fi +} + +pkg_postinst () { + use eselect-ldso || return + local libdir=$(get_libdir) me="openblas" + + # check blas + eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me} + local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2) + if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then + eselect blas set ${libdir} ${me} + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + else + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + elog "To use blas [${me}] implementation, you have to issue (as root):" + elog "\t eselect blas set ${libdir} ${me}" + fi + + # check lapack + eselect lapack add ${libdir} "${EROOT}"/usr/${libdir}/lapack/${me} ${me} + local current_lapack=$(eselect lapack show ${libdir} | cut -d' ' -f2) + if [[ ${current_lapack} == "${me}" || -z ${current_lapack} ]]; then + eselect lapack set ${libdir} ${me} + elog "Current eselect: LAPACK ($libdir) -> [${current_lapack}]." + else + elog "Current eselect: LAPACK ($libdir) -> [${current_lapack}]." + elog "To use lapack [${me}] implementation, you have to issue (as root):" + elog "\t eselect lapack set ${libdir} ${me}" + fi +} + +pkg_postrm () { + if use eselect-ldso; then + eselect blas validate + eselect lapack validate + fi +} -- cgit v1.2.3-65-gdbad