commit:     96347461e8152e8fbb26ba0b43c72646ad3e2c6a
Author:     gienah <gienah <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 25 13:45:45 2014 +0000
Commit:     Justin Lecher <jlec <AT> gentoo <DOT> org>
CommitDate: Sat Sep 27 11:10:07 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=96347461

multilib as well for lapack-reference

---
 .../lapack-reference/lapack-reference-9999.ebuild  | 64 +++++++++++++++-------
 1 file changed, 45 insertions(+), 19 deletions(-)

diff --git a/sci-libs/lapack-reference/lapack-reference-9999.ebuild 
b/sci-libs/lapack-reference/lapack-reference-9999.ebuild
index 9b14bf0..57d64e5 100644
--- a/sci-libs/lapack-reference/lapack-reference-9999.ebuild
+++ b/sci-libs/lapack-reference/lapack-reference-9999.ebuild
@@ -3,7 +3,7 @@
 # $Header: $
 
 EAPI=5
-inherit fortran-2 cmake-utils multibuild alternatives-2 toolchain-funcs
+inherit fortran-2 cmake-utils multibuild alternatives-2 multilib-build 
toolchain-funcs
 
 if [[ ${PV} == "9999" ]] ; then
        # The master ESVN_REPO_URI is difficult to access, the git mirror is 
easier
@@ -59,6 +59,7 @@ get_variant_suffix() {
 get_blas_profname() {
        local profname="${1:-$(get_profname)}"
        local variant_suffix=$(get_variant_suffix "${profname}")
+       local blas_profile=$(eselect blas show)
        local selected_blas_profile="${blas_profile}"
        local blas_no_int64="${selected_blas_profile/-int64/}"
        local blas_base="${blas_no_int64%-*}"
@@ -66,18 +67,40 @@ get_blas_profname() {
        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} )
+int64_multilib_get_enabled_abis() {
+       local MULTILIB_VARIANTS=( $(multilib_get_enabled_abis) )
+       local MULTILIB_INT64_VARIANTS=()
+       for i in "${MULTILIB_VARIANTS[@]}"; do
+               if use int64 && [[ "${i}" =~ 64$ ]]; then
+                       MULTILIB_INT64_VARIANTS+=( "${i}_${INT64_SUFFIX}" )
+               fi
+               MULTILIB_INT64_VARIANTS+=( "${i}" )
+       done
+       local MULTIBUILD_VARIANTS=()
+       for j in "${MULTILIB_INT64_VARIANTS[@]}"; do
+               use static-libs && MULTIBUILD_VARIANTS+=( 
"${j}_${STATIC_SUFFIX}" )
+               MULTIBUILD_VARIANTS+=( "${j}" )
+       done
+       echo "${MULTIBUILD_VARIANTS[@]}"
+}
+
+# @FUNCTION: _int64_multilib_multibuild_wrapper
+# @USAGE: <argv>...
+# @INTERNAL
+# @DESCRIPTION:
+# Initialize the environment for ABI selected for multibuild.
+_int64_multilib_multibuild_wrapper() {
+       debug-print-function ${FUNCNAME} "${@}"
+       local v="${MULTIBUILD_VARIANT/_${INT64_SUFFIX}/}"
+       local ABI="${v/_${STATIC_SUFFIX}/}"
+       multilib_toolchain_setup "${ABI}"
+       export FC="$(tc-getFC) $(get_abi_CFLAGS)"
+       export F77="$(tc-getF77) $(get_abi_CFLAGS)"
+       "${@}"
 }
 
 src_prepare() {
+       local MULTIBUILD_VARIANTS=( $(int64_multilib_get_enabled_abis) )
        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}"
@@ -115,11 +138,11 @@ src_prepare() {
 }
 
 src_configure() {
+       local MULTIBUILD_VARIANTS=( $(int64_multilib_get_enabled_abis) )
        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}"
@@ -141,10 +164,6 @@ src_configure() {
                                -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
@@ -156,20 +175,27 @@ src_configure() {
                                -DBUILD_STATIC_LIBS=OFF
                        )
                fi
+               mycmakeargs+=(
+                       -DCMAKE_C_FLAGS="$($(tc-getPKG_CONFIG) --cflags 
${blas_profname}) ${CFLAGS}"
+                       -DCMAKE_CXX_FLAGS="$($(tc-getPKG_CONFIG) --cflags 
${blas_profname}) ${CXXFLAGS}"
+               )
                cmake-utils_src_configure
        }
-       multibuild_foreach_variant my_src_configure
+       multibuild_foreach_variant _int64_multilib_multibuild_wrapper 
my_src_configure
 }
 
 src_compile() {
-       multibuild_foreach_variant cmake-utils_src_compile
+       local MULTIBUILD_VARIANTS=( $(int64_multilib_get_enabled_abis) )
+       multibuild_foreach_variant _int64_multilib_multibuild_wrapper 
cmake-utils_src_compile
 }
 
 src_test() {
-       multibuild_foreach_variant cmake-utils_src_test
+       local MULTIBUILD_VARIANTS=( $(int64_multilib_get_enabled_abis) )
+       multibuild_foreach_variant _int64_multilib_multibuild_wrapper 
cmake-utils_src_test
 }
 
 src_install() {
+       local MULTIBUILD_VARIANTS=( $(int64_multilib_get_enabled_abis) )
        my_src_install()  {
                cmake-utils_src_install
                if [[ ! "${MULTIBUILD_ID}" =~ "_${STATIC_SUFFIX}" ]]; then
@@ -178,5 +204,5 @@ src_install() {
                                /usr/$(get_libdir)/pkgconfig/lapack.pc 
${profname}.pc
                fi
        }
-       multibuild_foreach_variant my_src_install
+       multibuild_foreach_variant _int64_multilib_multibuild_wrapper 
my_src_install
 }

Reply via email to