aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2017-04-29 10:50:29 +0100
committerJustin Lecher <jlec@gentoo.org>2017-04-29 10:50:29 +0100
commit206ff4a8cd065eacd6c772b237a5e7c922290b46 (patch)
tree2a95b31050e5381112ea34bc95b6373a8fb08f63
parentUpdate remote ids (diff)
parentsci-libs/openblas: Bump openblas to 0.2.19 (#779) (diff)
downloadsci-206ff4a8cd065eacd6c772b237a5e7c922290b46.tar.gz
sci-206ff4a8cd065eacd6c772b237a5e7c922290b46.tar.bz2
sci-206ff4a8cd065eacd6c772b237a5e7c922290b46.zip
Merge remote-tracking branch 'github/master'
* github/master: sci-libs/openblas: Bump openblas to 0.2.19 (#779)
-rw-r--r--sci-libs/openblas/Manifest2
-rw-r--r--sci-libs/openblas/files/openblas-0.2.19-MAKE.patch29
-rw-r--r--sci-libs/openblas/files/openblas-0.2.19-utest_ldflags.patch13
-rw-r--r--sci-libs/openblas/openblas-0.2.19.ebuild199
4 files changed, 243 insertions, 0 deletions
diff --git a/sci-libs/openblas/Manifest b/sci-libs/openblas/Manifest
index 30a864f7d..c126f1a70 100644
--- a/sci-libs/openblas/Manifest
+++ b/sci-libs/openblas/Manifest
@@ -1,3 +1,5 @@
DIST openblas-0.2.11-gentoo.patch 246353 SHA256 68c13526f37bf510f02961eb3a7918feb98f6bb10a0d888b8575b9146fd56c09 SHA512 4d8fcec9e44f873c31214d48492a171dd00dc18524a7ab51e51fa27c038b62bfd07be281b5af899943e10fb45c6d0b5b704ba3fa93c6bec74aca0a3a6c0f48ab WHIRLPOOL a4b1078f6ba06a6530a9267d950df8824abccd41aa432ce6568641329f828cc1abea7324f588b0b3d1d3339c36b79ea7147d64f0c8b27d12f87bf8be2a97e92a
DIST openblas-0.2.14.tar.gz 9862952 SHA256 aba5088534719cefd77e4155c281c56a3accd3eea218574c2c3d236952bb632b SHA512 5028c0cae1eea168593d951c053d2c3692ea4bf34257b2d6cd533d43dd98d1e4ab982f56c57232e53dcc358a2f8e1e51e15a746235ff6eb64d427a97b1449b60 WHIRLPOOL 2fe8a6afee19327deb962dd9f270b2c3dbf0ee8c92d59050fec4f0d4bacdf1d97801f28a1127804e8464c3c19d7e40b293c3b4d5b5b7e43f0061346c03909e64
DIST openblas-0.2.15.tar.gz 9968430 SHA256 fe32d7977e9a2dddcd6e9c5350683b5e3cc3d59afdd432e9a5989449e536aecc SHA512 7c95de975b4dc4a1277289be4f44e8af01eea93886fd1f278c28ffa7d543310ec7b81c897928f7c6a0905bc6f9aa6f63cb18e2843cf5b47806379a4e499577b7 WHIRLPOOL ba9b39a9f0708608213bc681808c1c36922606bc6180961b53c7d67d9429bb6fc59bd91f44158eb5cafbb5242a0c53b2b95935ba1f0bbf504f869ec7fd57dc96
+DIST openblas-0.2.19-clang-3.9.patch 22096 SHA256 fea7467535b2e43d4bf8ebc4b7c6c08cfb7a36e01899c79019c7b41b5e244101 SHA512 dd216c50f36c978bdf397211e875564b4da221ff51962402651570aa2bc909f3ac9500cdbaee644c368a990ae70f20bcac810c87f79facba53c349f2966aad91 WHIRLPOOL b8cec8ce31ee71e3af8eb19790be5edf10932f0330b9f79d17f5fb1390d96347f27f9993bd8dedf87df903587a5b72cd7db5c0f6e6dcb4e8fb2aff3b2cd1719f
+DIST openblas-0.2.19.tar.gz 10838468 SHA256 878353b52940e0d5be32011cd5ba8440758f5270c3fa0f6f6200c26eabc53f1c SHA512 7ca5e1fdcba2efc0d827874242a7e7da51710e97ca07f4f97cfb9a7f6154553b2b8898a4e999e717b809aa67e08cb7c81dca7550a90f3abeb71a3336d3f7f99f WHIRLPOOL becf4592c2fe70047c51f95422bdfb688e952765bd0c3b1736444767d0fd60a76eba1258a7b617cb733fbcc93be76bc4a0fe35c043ef07b4af8f2b70a2ba6e26
diff --git a/sci-libs/openblas/files/openblas-0.2.19-MAKE.patch b/sci-libs/openblas/files/openblas-0.2.19-MAKE.patch
new file mode 100644
index 000000000..c77dd0f93
--- /dev/null
+++ b/sci-libs/openblas/files/openblas-0.2.19-MAKE.patch
@@ -0,0 +1,29 @@
+diff --git a/Makefile b/Makefile
+index 2ae0047..2071e10 100644
+--- a/Makefile
++++ b/Makefile
+@@ -278,13 +278,13 @@ lapack-timing : large.tgz timing.tgz
+ ifndef NOFORTRAN
+ (cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING)
+ (cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz )
+- make -C $(NETLIB_LAPACK_DIR)/TIMING
++ $(MAKE) -C $(NETLIB_LAPACK_DIR)/TIMING
+ endif
+
+
+ lapack-test :
+ (cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out)
+- make -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintstrfd xlintstrfz xlintsts xlintstz xlintstzc xlintstrfs xlintstrfc
++ $(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintstrfd xlintstrfz xlintsts xlintstz xlintstzc xlintstrfs xlintstrfc
+ ifneq ($(CROSS), 1)
+ ( cd $(NETLIB_LAPACK_DIR)/INSTALL; ./testlsame; ./testslamch; ./testdlamch; \
+ ./testsecond; ./testdsecnd; ./testieee; ./testversion )
+@@ -299,7 +299,7 @@ lapack-runtest:
+
+ blas-test:
+ (cd $(NETLIB_LAPACK_DIR)/BLAS && rm -f x* *.out)
+- make -j 1 -C $(NETLIB_LAPACK_DIR) blas_testing
++ $(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR) blas_testing
+ (cd $(NETLIB_LAPACK_DIR)/BLAS && cat *.out)
+
+
diff --git a/sci-libs/openblas/files/openblas-0.2.19-utest_ldflags.patch b/sci-libs/openblas/files/openblas-0.2.19-utest_ldflags.patch
new file mode 100644
index 000000000..2ffd5babe
--- /dev/null
+++ b/sci-libs/openblas/files/openblas-0.2.19-utest_ldflags.patch
@@ -0,0 +1,13 @@
+diff --git a/utest/Makefile b/utest/Makefile
+index 3ccc0a0..ce809e3 100644
+--- a/utest/Makefile
++++ b/utest/Makefile
+@@ -18,7 +18,7 @@ endif
+ all : run_test
+
+ $(UTESTBIN): $(OBJS)
+- $(CC) $(CFLAGS) -o $@ $^ ../$(LIBNAME) $(EXTRALIB) $(FEXTRALIB)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ ../$(LIBNAME) $(EXTRALIB) $(FEXTRALIB)
+
+ run_test: $(UTESTBIN)
+ ifndef CROSS
diff --git a/sci-libs/openblas/openblas-0.2.19.ebuild b/sci-libs/openblas/openblas-0.2.19.ebuild
new file mode 100644
index 000000000..3ff5f8502
--- /dev/null
+++ b/sci-libs/openblas/openblas-0.2.19.ebuild
@@ -0,0 +1,199 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+NUMERIC_MODULE_NAME="openblas"
+
+inherit alternatives-2 eutils multilib numeric numeric-int64-multibuild
+
+DESCRIPTION="Optimized BLAS library based on GotoBLAS2"
+HOMEPAGE="http://xianyi.github.com/OpenBLAS/"
+SRC_URI="http://github.com/xianyi/OpenBLAS/tarball/v${PV} -> ${P}.tar.gz
+ http://sagetrac.lipn.univ-paris13.fr/sage/${PN}-0.2.19-clang-3.9.patch"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x86-macos ~ppc64 ~x64-macos"
+IUSE="dynamic openmp static-libs threads"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+MULTILIB_WRAPPED_HEADERS=(
+ /usr/include/openblas/cblas.h
+ /usr/include/openblas/f77blas.h
+ /usr/include/openblas/openblas_config.h
+)
+
+PATCHES=(
+ "${DISTDIR}"/${PN}-0.2.19-clang-3.9.patch
+ "${FILESDIR}"/${PN}-0.2.19-MAKE.patch
+ "${FILESDIR}"/${PN}-0.2.19-utest_ldflags.patch
+ )
+
+get_openblas_flags() {
+ local openblas_flags=()
+ use dynamic && \
+ openblas_flags+=( DYNAMIC_ARCH=1 TARGET=GENERIC NUM_THREADS=64 NO_AFFINITY=1 )
+ $(numeric-int64_is_int64_build) && \
+ openblas_flags+=( INTERFACE64=1 )
+ # choose posix threads over openmp when the two are set
+ # yet to see the need of having the two profiles simultaneously
+ if use threads; then
+ openblas_flags+=( USE_THREAD=1 USE_OPENMP=0 )
+ elif use openmp; then
+ openblas_flags+=( USE_OPENMP=1 )
+ fi
+ local profname=$(numeric-int64_get_module_name)
+ local libname="${profname//-/_}"
+ local underscoresuffix="${libname#${PN}}"
+ if [[ "${underscoresuffix}" != "_" ]]; then
+ local libnamesuffix="${underscoresuffix#_}"
+ openblas_flags+=( LIBNAMESUFFIX=${libnamesuffix} )
+ fi
+
+ [[ "${ABI}" == "x86" ]] && openblas_flags+=( BINARY=32 )
+
+ echo "${openblas_flags[@]}"
+}
+
+get_openblas_abi_cflags() {
+ local openblas_abi_cflags=()
+ if [[ "${ABI}" == "x86" ]]; then
+ openblas_abi_cflags=( -DARCH_X86=1 -DOPENBLAS___32BIT__=1 )
+ elif [[ "${ABI}" == "amd64" ]]; then
+ openblas_abi_cflags=( -DARCH_X86_64=1 -DOPENBLAS___64BIT__=1 )
+ elif [[ "${ABI}" == "ppc64" ]]; then
+ openblas_abi_cflags=( -DARCH_POWER=1 -DOPENBLAS___64BIT__=1 )
+ else
+ die "unsupported abi: ${ABI}"
+ fi
+ $(numeric-int64_is_int64_build) && \
+ openblas_abi_cflags+=( -DOPENBLAS_USE64BITINT )
+ use openmp && openblas_abi_cflags+=( -fopenmp )
+ echo "${openblas_abi_cflags[@]}"
+}
+
+src_unpack() {
+ default
+ find "${WORKDIR}" -maxdepth 1 -type d -name \*OpenBLAS\* && \
+ mv "${WORKDIR}"/*OpenBLAS* "${S}" || die
+}
+
+src_prepare() {
+ default
+
+ # lapack and lapacke are not modified from upstream lapack
+ sed \
+ -e "s:^#\s*\(NO_LAPACK\)\s*=.*:\1=1:" \
+ -e "s:^#\s*\(NO_LAPACKE\)\s*=.*:\1=1:" \
+ -i Makefile.rule || die
+ numeric-int64-multibuild_copy_sources
+}
+
+src_configure() {
+ blas_configure() {
+ local openblas_abi_cflags="$(get_openblas_abi_cflags)"
+ local internal_openblas_abi_cflags="${openblas_abi_cflags//OPENBLAS_}"
+ sed \
+ -e "s:^#\s*\(CC\)\s*=.*:\1=$(tc-getCC) $(get_abi_CFLAGS):" \
+ -e "s:^#\s*\(FC\)\s*=.*:\1=$(tc-getFC) $(get_abi_CFLAGS):" \
+ -e "s:^#\s*\(COMMON_OPT\)\s*=.*:\1=${CFLAGS} ${internal_openblas_abi_cflags}:" \
+ -i Makefile.rule || die
+ }
+ numeric-int64-multibuild_foreach_all_abi_variants run_in_build_dir blas_configure
+}
+
+src_compile() {
+ # openblas already does multi-jobs
+ MAKEOPTS+=" -j1"
+ my_src_compile () {
+ local openblas_flags=$(get_openblas_flags)
+ # cflags already defined twice
+ unset CFLAGS || die
+ emake clean && emake libs shared ${openblas_flags}
+ mkdir -p libs && mv libopenblas* libs/ ||??die
+ # avoid pic when compiling static libraries, so re-compiling
+ if use static-libs; then
+ emake clean
+ emake libs ${openblas_flags} NO_SHARED=1 NEED_PIC=
+ mv libopenblas* libs/ ||??die
+ fi
+ rm -f config.h config_last.h || die
+ # Note: prints this spurious warning: make: Nothing to be done for 'config.h'.
+ emake config.h
+ cp config.h config_last.h || die
+
+ mv libs/libopenblas* . || die
+ }
+ numeric-int64-multibuild_foreach_all_abi_variants run_in_build_dir my_src_compile
+}
+
+src_test() {
+ my_src_test () {
+ local openblas_flags=$(get_openblas_flags)
+ emake tests ${openblas_flags}
+ }
+ numeric-int64-multibuild_foreach_all_abi_variants run_in_build_dir my_src_test
+}
+
+src_install() {
+ my_src_install() {
+ local openblas_flags=$(get_openblas_flags)
+ local profname=$(numeric-int64_get_module_name)
+ local pcfile
+ # The file /usr/include/openblas/openblas_config.h is generated during the install.
+ # The sed on config_last.h removes the #define's OPENBLAS_USE64BITINT
+ # OPENBLASS__32BIT__ OPENBLASS__64BIT__ OPENBLAS__ARCH_X86 OPENBLAS__ARCH_X86_64
+ # from /usr/include/openblas/openblas_config.h. We then specify it in Cflags in
+ # the /usr/lib64/pkg-config/openblas-int64-{threads,openmp}.pc file.
+ sed -e '/#define USE64BITINT/d' \
+ -e '/#define ARCH_X86/d' \
+ -e '/#define __\(32\|64\)BIT__/d' \
+ -i config_last.h \
+ || die "Could not ensure there is no definition of USE64BITINT in config_last.h"
+ emake install \
+ PREFIX="${ED}"usr ${openblas_flags} \
+ OPENBLAS_INCLUDE_DIR="${ED}"usr/include/${PN} \
+ OPENBLAS_LIBRARY_DIR="${ED}"usr/$(get_libdir)
+ if ! use static-libs; then
+ rm "${ED}"usr/$(get_libdir)/lib*.a || die
+ fi
+
+ local openblas_abi_cflags=$(get_openblas_abi_cflags)
+ local openblas_abi_fflags=$(numeric-int64_get_fortran_int64_abi_fflags)
+ local libname="${profname//-/_}"
+
+ create_pkgconfig \
+ --name "${profname}" \
+ --libs "-L\${libdir} -l${libname}" \
+ --libs-private "-lm" \
+ --cflags "-I\${includedir}/${PN} ${openblas_abi_cflags}" \
+ ${profname}
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ cd "${ED}"/usr/$(get_libdir) ||??die
+ local d
+ for d in *.dylib; do
+ ebegin "Correcting install_name of ${d}"
+ install_name_tool -id "${EPREFIX}/usr/$(get_libdir)/${d}" "${d}" || die
+ eend $?
+ done
+ fi
+ if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then
+ multilib_prepare_wrappers
+ multilib_check_headers
+ fi
+ }
+ numeric-int64-multibuild_foreach_all_abi_variants run_in_build_dir my_src_install
+
+ printf "/usr/include/cblas.h ${PN}/cblas.h" > "${T}"/alternative-cblas-generic.sh ||??die
+ numeric-int64-multibuild_install_alternative blas ${NUMERIC_MODULE_NAME}
+ numeric-int64-multibuild_install_alternative cblas ${NUMERIC_MODULE_NAME}
+
+ multilib_install_wrappers
+
+ dodoc GotoBLAS_{01Readme,03FAQ,04FAQ,05LargePage,06WeirdPerformance}.txt *md Changelog.txt
+}