commit: e8434fcfa5ace2680f54adeb1d3cccc060079dd1 Author: gienah <gienah <AT> gentoo <DOT> org> AuthorDate: Mon Oct 13 10:17:30 2014 +0000 Commit: Mark Wright <gienah <AT> gentoo <DOT> org> CommitDate: Mon Oct 13 10:17:30 2014 +0000 URL: http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=e8434fcf
multilib int64 multibuild cblas-reference. int64 fails tests with blas-reference --- sci-libs/cblas-reference/ChangeLog | 7 + .../cblas-reference-20110218-r1.ebuild | 157 +++++++++++++++++++++ sci-libs/cblas-reference/metadata.xml | 3 + 3 files changed, 167 insertions(+) diff --git a/sci-libs/cblas-reference/ChangeLog b/sci-libs/cblas-reference/ChangeLog index b998a4a..cc8a44a 100644 --- a/sci-libs/cblas-reference/ChangeLog +++ b/sci-libs/cblas-reference/ChangeLog @@ -2,6 +2,13 @@ # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 # $Header: /var/cvsroot/gentoo-x86/sci-libs/cblas-reference/ChangeLog,v 1.33 2010/03/07 19:14:51 jlec Exp $ +*cblas-reference-20110218-r1 (13 Oct 2014) + + 13 Oct 2014; Mark Wright <[email protected]> + +cblas-reference-20110218-r1.ebuild, metadata.xml: + multilib int64 multibuild cblas-reference. int64 fails tests with + blas-reference + 02 Jul 2014; François Bissey <[email protected]> cblas-reference-20110218.ebuild: More fix for macos. We need to create the link for both linux and macos. diff --git a/sci-libs/cblas-reference/cblas-reference-20110218-r1.ebuild b/sci-libs/cblas-reference/cblas-reference-20110218-r1.ebuild new file mode 100644 index 0000000..7b1bf9c --- /dev/null +++ b/sci-libs/cblas-reference/cblas-reference-20110218-r1.ebuild @@ -0,0 +1,157 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +EBASE_PROFNAME="refcblas" +inherit eutils alternatives-2 flag-o-matic toolchain-funcs versionator multilib fortran-2 multilib-build fortran-int64 + +MYPN="${PN/-reference/}" + +DESCRIPTION="C wrapper interface to the F77 reference BLAS implementation" +HOMEPAGE="http://www.netlib.org/blas/" +SRC_URI="http://www.netlib.org/blas/blast-forum/${MYPN}.tgz -> ${P}.tgz" + +SLOT="0" +LICENSE="public-domain" +IUSE="int64 static-libs" +KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~s390 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos" + +RDEPEND="virtual/blas" +DEPEND="${RDEPEND} + virtual/pkgconfig" +PDEPEND=">=virtual/cblas-2.0-r2[int64?]" + +S="${WORKDIR}/CBLAS" + +MULTILIB_WRAPPED_HEADERS=( + /usr/include/cblas/cblas.h +) + +static_to_shared() { + local libstatic=$1 + shift + local libname=$(basename ${libstatic%.a}) + local soname=${libname}$(get_libname $(get_version_component_range 1-2)) + local libdir=$(dirname ${libstatic}) + + einfo "Making ${soname} from ${libstatic}" + if [[ ${CHOST} == *-darwin* ]] ; then + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -dynamiclib -install_name "${EPREFIX}"/usr/$(get_libdir)/${soname} \ + -Wl,-all_load -Wl,${libstatic} \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + else + ${LINK:-$(tc-getCC)} ${LDFLAGS} \ + -shared -Wl,-soname=${soname} \ + -Wl,--whole-archive ${libstatic} -Wl,--no-whole-archive \ + "$@" -o ${libdir}/${soname} || die "${soname} failed" + if [[ $(get_version_component_count) -gt 1 ]]; then + ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version)) || die + fi + fi + ln -s ${soname} ${libdir}/${libname}$(get_libname) || die +} + +src_prepare() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + fortran-int64_ensure_blas + find . -name Makefile -exec sed -i \ + -e 's:make:$(MAKE):g' '{}' \; || die + multibuild_copy_sources +} + +src_configure() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + my_configure() { + local profname=$(fortran-int64_get_profname) + local libname="${profname//-/_}" + append-cflags -DADD_ + cat > Makefile.in <<-EOF + BLLIB=$($(tc-getPKG_CONFIG) --libs $(fortran-int64_get_blas_provider)) + FC=$(tc-getFC) $(get_abi_CFLAGS) $(fortran-int64_get_fortran_int64_abi_fflags) + CC=$(tc-getCC) + CBLIB=../lib/lib${libname}.a + LOADER=\$(FC) + ARCH=$(tc-getAR) + ARCHFLAGS=cr + RANLIB=$(tc-getRANLIB) + EOF + } + multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_configure +} + +src_compile() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + my_src_compile() { + local profname=$(fortran-int64_get_profname) + local libname="${profname//-/_}" + emake \ + FFLAGS="${FFLAGS} -fPIC" \ + CFLAGS="${CFLAGS} -fPIC" \ + alllib + static_to_shared lib/lib${libname}.a $($(tc-getPKG_CONFIG) --libs $(fortran-int64_get_blas_profname)) + if use static-libs; then + emake clean + emake alllib + fi + } + multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_src_compile +} + +src_test() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + my_src_test () { + local profname=$(fortran-int64_get_profname) + local libname="${profname//-/_}" + cd testing || die + emake + emake run + } + multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_src_test +} + +src_install() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + my_src_install() { + local profname=$(fortran-int64_get_profname) + local libname="${profname//-/_}" + local provider=$(fortran-int64_get_cblas_provider) + # On linux dynamic libraries are of the form .so.${someversion} + # On OS X dynamic libraries are of the form ${someversion}.dylib + dolib.so lib/lib${libname}*$(get_libname)* + use static-libs && dolib.a lib/lib${libname}.a + insinto /usr/include/cblas + doins include/cblas.h + cat <<-EOF > ${profname}.pc + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include + Name: ${profname} + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -l${libname} + Private: -lm + Cflags: -I\${includedir}/cblas + Requires: $(fortran-int64_get_blas_profname) + Fflags=$(fortran-int64_get_fortran_int64_abi_fflags) + EOF + insinto /usr/$(get_libdir)/pkgconfig + doins ${profname}.pc + alternatives_for ${provider} $(fortran-int64_get_profname "reference") 0 \ + /usr/$(get_libdir)/pkgconfig/${provider}.pc ${profname}.pc \ + /usr/include/cblas.h cblas/cblas.h + if [[ ${#MULTIBUILD_VARIANTS[@]} -gt 1 ]]; then + multilib_prepare_wrappers + multilib_check_headers + fi + } + multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_src_install + multilib_install_wrappers + + dodoc README + insinto /usr/share/doc/${PF} + doins examples/*.c +} diff --git a/sci-libs/cblas-reference/metadata.xml b/sci-libs/cblas-reference/metadata.xml index a151756..8ec6d5a 100644 --- a/sci-libs/cblas-reference/metadata.xml +++ b/sci-libs/cblas-reference/metadata.xml @@ -12,4 +12,7 @@ example. This packages implements the reference C library as a wrapper to the FORTRAN 77 BLAS library. </longdescription> + <use> + <flag name="int64">Build the 64 bits integer library</flag> + </use> </pkgmetadata>
