commit:     272370d6abb3eb6975e2a9fc5ba4a4a0767440b7
Author:     gienah <gienah <AT> gentoo <DOT> org>
AuthorDate: Sat Sep 27 11:09:18 2014 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Sat Sep 27 11:09:18 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=272370d6

Fix rebase lapack-multibuild to master conflict 1 on sci-libs/lapack-reference

---
 sci-libs/lapack-reference/ChangeLog                |   4 +
 .../lapack-reference/lapack-reference-9999.ebuild  | 142 +++++++++++++++++----
 sci-libs/lapack-reference/metadata.xml             |   1 +
 3 files changed, 119 insertions(+), 28 deletions(-)

diff --git a/sci-libs/lapack-reference/ChangeLog 
b/sci-libs/lapack-reference/ChangeLog
index 3c1104e..4df9585 100644
--- a/sci-libs/lapack-reference/ChangeLog
+++ b/sci-libs/lapack-reference/ChangeLog
@@ -11,6 +11,10 @@
   lapack-reference-9999.ebuild:
   Add xblas to the .pc file when it is in use see bug#523388
 
+  18 Feb 2014; Mark Wright <gie...@gentoo.org> lapack-reference-9999.ebuild,
+  metadata.xml:
+  multibuild lapack-reference when USE=int64 and/or USE=static is specified.
+
 *lapack-reference-3.5.0 (08 Dec 2013)
 
   08 Dec 2013; Sébastien Fabbro <bicat...@gentoo.org>

diff --git a/sci-libs/lapack-reference/lapack-reference-9999.ebuild 
b/sci-libs/lapack-reference/lapack-reference-9999.ebuild
index aca6ba0..9b14bf0 100644
--- a/sci-libs/lapack-reference/lapack-reference-9999.ebuild
+++ b/sci-libs/lapack-reference/lapack-reference-9999.ebuild
@@ -3,15 +3,21 @@
 # $Header: $
 
 EAPI=5
-inherit fortran-2 cmake-utils alternatives-2 toolchain-funcs
-
-MYP=lapack-${PV}
+inherit fortran-2 cmake-utils multibuild alternatives-2 toolchain-funcs
 
 if [[ ${PV} == "9999" ]] ; then
-       ESVN_REPO_URI="https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk";
-       inherit subversion
+       # The master ESVN_REPO_URI is difficult to access, the git mirror is 
easier
+       # ESVN_REPO_URI="https://icl.cs.utk.edu/svn/lapack-dev/lapack/trunk";
+       # MY_PN=lapack
+       # inherit subversion
+       EGIT_REPO_URI="https://github.com/nschloe/lapack.git";
+       MY_PN=lapack-reference
+       MYP=${MY_PN}-${PV}
+       inherit git-r3
        KEYWORDS=""
 else
+       MY_PN=lapack
+       MYP=${MY_PN}-${PV}
        SRC_URI="http://www.netlib.org/lapack/${MYP}.tgz";
        KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
 fi
@@ -22,7 +28,7 @@ HOMEPAGE="http://www.netlib.org/lapack/";
 LICENSE="BSD"
 SLOT="0"
 
-IUSE="static-libs test xblas"
+IUSE="int64 static-libs test xblas"
 
 RDEPEND="
        virtual/blas
@@ -32,21 +38,66 @@ DEPEND="${RDEPEND}
 
 S="${WORKDIR}/${MYP}"
 
+INT64_SUFFIX="int64"
+STATIC_SUFFIX="static"
+BASE_PROFNAME="reflapack"
+
+get_profname() {
+       local profname="${1:-${BASE_PROFNAME}}"
+       if [[ "${MULTIBUILD_ID}" =~ "_${INT64_SUFFIX}" ]]; then
+               profname+="-${INT64_SUFFIX}"
+       fi
+       echo "${profname}"
+}
+
+get_variant_suffix() {
+       local profname="${1:-$(get_profname)}"
+       local variant_suffix="${profname//${BASE_PROFNAME}/}"
+       echo "${variant_suffix}"
+}
+
+get_blas_profname() {
+       local profname="${1:-$(get_profname)}"
+       local variant_suffix=$(get_variant_suffix "${profname}")
+       local selected_blas_profile="${blas_profile}"
+       local blas_no_int64="${selected_blas_profile/-int64/}"
+       local blas_base="${blas_no_int64%-*}"
+       local 
blas_name="${blas_no_int64/${blas_base}/${blas_base}${variant_suffix}}"
+       echo "${blas_name}"
+}
+
+pkg_setup() {
+       blas_profile=$(eselect blas show)
+       MULTIBUILD_VARIANTS=( )
+       use static-libs && MULTIBUILD_VARIANTS+=( 
${BASE_PROFNAME}_${STATIC_SUFFIX} )
+       if use int64; then
+               MULTIBUILD_VARIANTS+=( ${BASE_PROFNAME}_${INT64_SUFFIX} )
+               use static-libs && MULTIBUILD_VARIANTS+=( 
${BASE_PROFNAME}_${INT64_SUFFIX}_${STATIC_SUFFIX} )
+       fi
+       MULTIBUILD_VARIANTS+=( ${BASE_PROFNAME} )
+}
+
 src_prepare() {
+       if use int64; then
+               local blas_int64_profname=$(get_blas_profname 
"${BASE_PROFNAME}-${INT64_SUFFIX}")
+               pkg-config --exists "${blas_int64_profname}" || die "Use int64 
requires ${blas_int64_profname}"
+       fi
+
        # rename library to avoid collision with other lapack implementations
+       local LIBNAME="${PROFNAME//-/_}"
        sed -i \
-               -e 's:BINARY_DIR}/lapack.pc:BINARY_DIR}/reflapack.pc:' \
-               -e '/export/s:lapack:reflapack:g' \
-               -e '/ALL_TARGETS/s:lapack):reflapack):' \
-               -e '/LAPACK_LIBRARIES/s:lapack:reflapack:g' \
+               -e 's:BINARY_DIR}/lapack.pc:BINARY_DIR}/${PROFNAME}.pc:' \
+               -e '/export/s:lapack:${LIBNAME}:g' \
+               -e '/ALL_TARGETS/s:lapack):${LIBNAME}):' \
+               -e '/LAPACK_LIBRARIES/s:lapack:${LIBNAME}:g' \
                CMakeLists.txt || die
        sed -i \
-               -e 's:(lapack:(reflapack:g' \
+               -e 's:(lapack:(${LIBNAME}:g' \
                SRC/CMakeLists.txt || die
        sed -i \
-               -e 's:-llapack:-lreflapack:g' \
+               -e 's:-llapack:-l${LIBNAME}:g' \
+               -e 's/Requires: blas/Requires: 
${BLAS_PROFNAME}\nFflags=${LAPACK_PKGCONFIG_FFLAGS}/' \
                lapack.pc.in || die
-       use static-libs && mkdir "${WORKDIR}/${PN}_static"
        # some string does not get passed properly
        sed -i \
                -e '/lapack_testing.py/d' \
@@ -64,33 +115,68 @@ src_prepare() {
 }
 
 src_configure() {
-       lapack_configure() {
+       my_src_configure() {
+               local profname=$(get_profname)
+               local libname="${profname//-/_}"
+               local blas_profname=$(get_blas_profname)
+               echo "profname: ${profname}, blas_profname: ${blas_profname}"
                local mycmakeargs=(
+                       -DPROFNAME="${profname}"
+                       -DBLAS_PROFNAME="${blas_profname}"
+                       -DLIBNAME="${libname}"
                        -DUSE_OPTIMIZED_BLAS=ON
-                       -DBLAS_LIBRARIES="$($(tc-getPKG_CONFIG) --libs blas)"
+                       -DBLAS_LIBRARIES="$($(tc-getPKG_CONFIG) --libs 
${blas_profname})"
                        $(cmake-utils_use_build test TESTING)
                        $(cmake-utils_use_use xblas XBLAS)
                        $@
                )
+               if [[ "${MULTIBUILD_ID}" =~ "_${INT64_SUFFIX}" ]]; then
+                       mycmakeargs+=(
+                               -DCMAKE_Fortran_FLAGS="$($(tc-getPKG_CONFIG) 
--cflags ${blas_profname}) -fdefault-integer-8"
+                               -DLAPACK_PKGCONFIG_FFLAGS="-fdefault-integer-8"
+                       )
+               else
+                       mycmakeargs+=(
+                               -DCMAKE_Fortran_FLAGS="$($(tc-getPKG_CONFIG) 
--cflags ${blas_profname})"
+                               -DLAPACK_PKGCONFIG_FFLAGS=""
+                       )
+               fi
+               mycmakeargs+=(
+                       -DCMAKE_C_FLAGS="$($(tc-getPKG_CONFIG) --cflags 
${blas_profname}) ${CFLAGS}"
+                       -DCMAKE_CXX_FLAGS="$($(tc-getPKG_CONFIG) --cflags 
${blas_profname}) ${CXXFLAGS}"
+               )
+               if [[ "${MULTIBUILD_ID}" =~ "_${STATIC_SUFFIX}" ]]; 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
        }
-
-       lapack_configure -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=OFF
-       use static-libs && \
-               CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" lapack_configure \
-               -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON
+       multibuild_foreach_variant my_src_configure
 }
 
 src_compile() {
-       cmake-utils_src_compile
-       use static-libs && \
-               CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" 
cmake-utils_src_compile
+       multibuild_foreach_variant cmake-utils_src_compile
+}
+
+src_test() {
+       multibuild_foreach_variant cmake-utils_src_test
 }
 
 src_install() {
-       cmake-utils_src_install
-       use static-libs && \
-               CMAKE_BUILD_DIR="${WORKDIR}/${PN}_static" 
cmake-utils_src_install
-       alternatives_for lapack reference 0 \
-               /usr/$(get_libdir)/pkgconfig/lapack.pc reflapack.pc
+       my_src_install()  {
+               cmake-utils_src_install
+               if [[ ! "${MULTIBUILD_ID}" =~ "_${STATIC_SUFFIX}" ]]; then
+                       local profname=$(get_profname)
+                       alternatives_for lapack $(get_profname "reference") 0 \
+                               /usr/$(get_libdir)/pkgconfig/lapack.pc 
${profname}.pc
+               fi
+       }
+       multibuild_foreach_variant my_src_install
 }

diff --git a/sci-libs/lapack-reference/metadata.xml 
b/sci-libs/lapack-reference/metadata.xml
index d769a14..9b618ae 100644
--- a/sci-libs/lapack-reference/metadata.xml
+++ b/sci-libs/lapack-reference/metadata.xml
@@ -13,6 +13,7 @@
   Algebra Subprogram (BLAS).
 </longdescription>
 <use>
+  <flag name="int64">Build the 64 bits integer library</flag>
   <flag name="xblas">Build LAPACK with extra precision (needs
   <pkg>sci-libs/xblas</pkg>)</flag>
 </use>

Reply via email to