commit:     a66c7efa4b8dd9b09ba5dad0fa2609b5543f6d4a
Author:     gienah <gienah <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 13 10:15:29 2014 +0000
Commit:     Mark Wright <gienah <AT> gentoo <DOT> org>
CommitDate: Mon Oct 13 10:15:29 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=a66c7efa

multilib int64 multibuild blas-reference

---
 sci-libs/blas-reference/ChangeLog                  |  9 ++-
 ...16.ebuild => blas-reference-20131116-r1.ebuild} |  0
 .../blas-reference/blas-reference-20131116.ebuild  | 79 ++++++++++++++++++-
 .../blas-reference/blas-reference-99999999.ebuild  | 92 ++++++++++++++++------
 sci-libs/blas-reference/metadata.xml               |  3 +
 5 files changed, 155 insertions(+), 28 deletions(-)

diff --git a/sci-libs/blas-reference/ChangeLog 
b/sci-libs/blas-reference/ChangeLog
index aac2508..d3ce196 100644
--- a/sci-libs/blas-reference/ChangeLog
+++ b/sci-libs/blas-reference/ChangeLog
@@ -1,7 +1,14 @@
 # ChangeLog for sci-libs/blas-reference
-# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
 # $Header: $
 
+*blas-reference-20131116-r1 (13 Oct 2014)
+
+  13 Oct 2014; Mark Wright <[email protected]>
+  +blas-reference-20131116-r1.ebuild, blas-reference-99999999.ebuild,
+  metadata.xml:
+  multilib int64 multibuild blas-reference
+
 *blas-reference-20131116 (07 Dec 2013)
 
   07 Dec 2013; Sébastien Fabbro <[email protected]>

diff --git a/sci-libs/blas-reference/blas-reference-20131116.ebuild 
b/sci-libs/blas-reference/blas-reference-20131116-r1.ebuild
similarity index 100%
copy from sci-libs/blas-reference/blas-reference-20131116.ebuild
copy to sci-libs/blas-reference/blas-reference-20131116-r1.ebuild

diff --git a/sci-libs/blas-reference/blas-reference-20131116.ebuild 
b/sci-libs/blas-reference/blas-reference-20131116.ebuild
deleted file mode 120000
index 28324bd..0000000
--- a/sci-libs/blas-reference/blas-reference-20131116.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-blas-reference-99999999.ebuild
\ No newline at end of file

diff --git a/sci-libs/blas-reference/blas-reference-20131116.ebuild 
b/sci-libs/blas-reference/blas-reference-20131116.ebuild
new file mode 100644
index 0000000..2b3cb9a
--- /dev/null
+++ b/sci-libs/blas-reference/blas-reference-20131116.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+inherit fortran-2 cmake-utils alternatives-2
+
+LPN=lapack
+LPV=3.5.0
+
+if [[ ${PV} == "99999999" ]] ; then
+       ESVN_REPO_URI="https://icl.cs.utk.edu/svn/lapack-dev/${LPN}/trunk";
+       inherit subversion
+       KEYWORDS=""
+else
+       SRC_URI="http://www.netlib.org/${LPN}/${LPN}-${LPV}.tgz";
+       KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+fi
+
+DESCRIPTION="Reference implementation of BLAS"
+HOMEPAGE="http://www.netlib.org/lapack/";
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="static-libs test"
+
+S="${WORKDIR}/${LPN}-${LPV}"
+
+src_prepare() {
+       # rename library to avoid collision with other blas implementations
+       sed -i \
+               -e 's:blas:refblas:g' \
+               CMakeLists.txt BLAS/blas.pc.in \
+               BLAS/{SRC,TESTING}/CMakeLists.txt || die
+       sed -i \
+               -e 's:BINARY_DIR}/blas:BINARY_DIR}/refblas:' \
+               BLAS/CMakeLists.txt || die
+       use static-libs && mkdir "${WORKDIR}/${PN}_static"
+}
+
+src_configure() {
+       blas_configure() {
+               local mycmakeargs=(
+                       -DUSE_OPTIMIZED_BLAS=OFF
+                       $(cmake-utils_use_build test TESTING)
+                       $@
+               )
+               cmake-utils_src_configure
+       }
+
+       blas_configure -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF
+       use static-libs && \
+               CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" blas_configure \
+               -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON
+}
+
+src_compile() {
+       cmake-utils_src_compile -C BLAS
+       use static-libs && CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" \
+               cmake-utils_src_compile -C BLAS
+}
+
+src_test() {
+       pushd "${CMAKE_BUILD_DIR}/BLAS" > /dev/null
+       local ctestargs
+       [[ -n ${TEST_VERBOSE} ]] && ctestargs="--extra-verbose 
--output-on-failure"
+       ctest ${ctestargs} || die
+       popd > /dev/null
+}
+
+src_install() {
+       cmake-utils_src_install -C BLAS
+       use static-libs && CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" \
+                       cmake-utils_src_install -C BLAS
+       alternatives_for blas reference 0 \
+               /usr/$(get_libdir)/pkgconfig/blas.pc refblas.pc
+}

diff --git a/sci-libs/blas-reference/blas-reference-99999999.ebuild 
b/sci-libs/blas-reference/blas-reference-99999999.ebuild
index 2b3cb9a..5b64837 100644
--- a/sci-libs/blas-reference/blas-reference-99999999.ebuild
+++ b/sci-libs/blas-reference/blas-reference-99999999.ebuild
@@ -4,7 +4,9 @@
 
 EAPI=5
 
-inherit fortran-2 cmake-utils alternatives-2
+EBASE_PROFNAME="refblas"
+ESTATIC_MULTIBUILD="true"
+inherit fortran-2 cmake-utils alternatives-2 multibuild multilib-build 
toolchain-funcs fortran-int64
 
 LPN=lapack
 LPV=3.5.0
@@ -23,56 +25,94 @@ HOMEPAGE="http://www.netlib.org/lapack/";
 
 LICENSE="BSD"
 SLOT="0"
-IUSE="static-libs test"
+IUSE="int64 static-libs test"
+
+RDEPEND=""
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+PDEPEND=">=virtual/blas-2.1-r3[int64?]"
 
 S="${WORKDIR}/${LPN}-${LPV}"
 
 src_prepare() {
        # rename library to avoid collision with other blas implementations
+       # ${LIBNAME} and ${PROFNAME} are not defined here, they are in single
+       # quotes in the following seds.  They are later set by defining cmake
+       # variables with -DPROFNAME etc in src_configure
+       sed -i \
+               -e 's:\([^xc]\)blas:\1${LIBNAME}:g' \
+               CMakeLists.txt \
+               BLAS/SRC/CMakeLists.txt || die
+       sed -i \
+               -e '/Name: /s:blas:${PROFNAME}:' \
+               -e 's:-lblas:-l${LIBNAME}:g' \
+                BLAS/blas.pc.in || die
        sed -i \
-               -e 's:blas:refblas:g' \
-               CMakeLists.txt BLAS/blas.pc.in \
-               BLAS/{SRC,TESTING}/CMakeLists.txt || die
+               -e 's:blas):${LIBNAME}):' \
+               BLAS/TESTING/CMakeLists.txt || die
        sed -i \
-               -e 's:BINARY_DIR}/blas:BINARY_DIR}/refblas:' \
+               -e 's:BINARY_DIR}/blas:BINARY_DIR}/${PROFNAME}:' \
                BLAS/CMakeLists.txt || die
-       use static-libs && mkdir "${WORKDIR}/${PN}_static"
 }
 
 src_configure() {
+       local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) )
        blas_configure() {
+               local profname=$(fortran-int64_get_profname)
+               local libname="${profname//-/_}"
                local mycmakeargs=(
+                       -Wno-dev
+                       -DPROFNAME="${profname}"
+                       -DLIBNAME="${libname}"
                        -DUSE_OPTIMIZED_BLAS=OFF
                        $(cmake-utils_use_build test TESTING)
-                       $@
+                       -DCMAKE_Fortran_FLAGS="$($(tc-getPKG_CONFIG) --cflags 
${blas_profname}) $(get_abi_CFLAGS) 
$(fortran-int64_get_fortran_int64_abi_fflags) ${FCFLAGS}"
+                       
-DLAPACK_PKGCONFIG_FFLAGS="$(fortran-int64_get_fortran_int64_abi_fflags)"
                )
+               if $(fortran-int64_is_static_build); then
+                       mycmakeargs+=(
+                               -DBUILD_SHARED_LIBS=OFF
+                               -DBUILD_STATIC_LIBS=ON
+                       )
+               else
+                       mycmakeargs+=(
+                               -DBUILD_SHARED_LIBS=ON
+                               -DBUILD_STATIC_LIBS=OFF
+                       )
+               fi
                cmake-utils_src_configure
        }
-
-       blas_configure -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF
-       use static-libs && \
-               CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" blas_configure \
-               -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON
+       multibuild_foreach_variant fortran-int64_multilib_multibuild_wrapper 
blas_configure
 }
 
 src_compile() {
-       cmake-utils_src_compile -C BLAS
-       use static-libs && CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" \
-               cmake-utils_src_compile -C BLAS
+       local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) )
+       multibuild_foreach_variant fortran-int64_multilib_multibuild_wrapper 
cmake-utils_src_compile -C BLAS
 }
 
 src_test() {
-       pushd "${CMAKE_BUILD_DIR}/BLAS" > /dev/null
-       local ctestargs
-       [[ -n ${TEST_VERBOSE} ]] && ctestargs="--extra-verbose 
--output-on-failure"
-       ctest ${ctestargs} || die
-       popd > /dev/null
+       local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) )
+       blas_test() {
+               _check_build_dir
+               pushd "${BUILD_DIR}/BLAS" > /dev/null
+               local ctestargs
+               [[ -n ${TEST_VERBOSE} ]] && ctestargs="--extra-verbose 
--output-on-failure"
+               ctest ${ctestargs} || die
+               popd > /dev/null
+       }
+       multibuild_foreach_variant fortran-int64_multilib_multibuild_wrapper 
blas_test
 }
 
 src_install() {
-       cmake-utils_src_install -C BLAS
-       use static-libs && CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" \
-                       cmake-utils_src_install -C BLAS
-       alternatives_for blas reference 0 \
-               /usr/$(get_libdir)/pkgconfig/blas.pc refblas.pc
+       local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) )
+       my_src_install()  {
+               cmake-utils_src_install -C BLAS
+               if ! $(fortran-int64_is_static_build); then
+                       local profname=$(fortran-int64_get_profname)
+                       local provider=$(fortran-int64_get_blas_provider)
+                       alternatives_for ${provider} 
$(fortran-int64_get_profname "reference") 0 \
+                               /usr/$(get_libdir)/pkgconfig/${provider}.pc 
${profname}.pc
+               fi
+       }
+       multibuild_foreach_variant fortran-int64_multilib_multibuild_wrapper 
my_src_install
 }

diff --git a/sci-libs/blas-reference/metadata.xml 
b/sci-libs/blas-reference/metadata.xml
index 43c339b..346d64c 100644
--- a/sci-libs/blas-reference/metadata.xml
+++ b/sci-libs/blas-reference/metadata.xml
@@ -11,4 +11,7 @@
   development of high quality linear algebra software, LAPACK for
   example. This packages implements the reference FORTRAN 77 library.
 </longdescription>
+  <use>
+    <flag name="int64">Build the 64 bits integer library</flag>
+  </use>
 </pkgmetadata>

Reply via email to