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 }