From 8bb927ed7f22098143f37b62b695bbb14143cfc4 Mon Sep 17 00:00:00 2001 From: gienah Date: Mon, 13 Oct 2014 21:18:32 +1100 Subject: multilib int64 multibuild xblas. The int64 build may not work though, not tested. --- sci-libs/xblas/ChangeLog | 9 ++- sci-libs/xblas/metadata.xml | 3 + sci-libs/xblas/xblas-1.0.248-r1.ebuild | 121 +++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 sci-libs/xblas/xblas-1.0.248-r1.ebuild (limited to 'sci-libs/xblas') diff --git a/sci-libs/xblas/ChangeLog b/sci-libs/xblas/ChangeLog index 17e85f6cd..89c3d1506 100644 --- a/sci-libs/xblas/ChangeLog +++ b/sci-libs/xblas/ChangeLog @@ -1,7 +1,14 @@ # ChangeLog for sci-libs/xblas -# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 +# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*xblas-1.0.248-r1 (13 Oct 2014) + + 13 Oct 2014; Mark Wright +xblas-1.0.248-r1.ebuild, + metadata.xml: + multilib int64 multibuild xblas. The int64 build may not work though, not + tested. + 22 Feb 2013; Justin Lecher xblas-1.0.248.ebuild, metadata.xml: Bump EAPI to 5 diff --git a/sci-libs/xblas/metadata.xml b/sci-libs/xblas/metadata.xml index 4610f395f..659b3971f 100644 --- a/sci-libs/xblas/metadata.xml +++ b/sci-libs/xblas/metadata.xml @@ -8,4 +8,7 @@ Extended and Mixed Precision versions, as documented in Chapters 2 and 4 of the new BLAS Standard. + + Build the 64 bits integer library + diff --git a/sci-libs/xblas/xblas-1.0.248-r1.ebuild b/sci-libs/xblas/xblas-1.0.248-r1.ebuild new file mode 100644 index 000000000..1c012658f --- /dev/null +++ b/sci-libs/xblas/xblas-1.0.248-r1.ebuild @@ -0,0 +1,121 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI=5 + +EBASE_PROFNAME="xblas" +inherit eutils flag-o-matic fortran-2 fortran-int64 multibuild multilib multilib-build toolchain-funcs versionator + +DESCRIPTION="Extra Precise Basic Linear Algebra Subroutines" +HOMEPAGE="http://www.netlib.org/xblas" +SRC_URI="${HOMEPAGE}/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc fortran int64 static-libs" + +RDEPEND="fortran? ( virtual/fortran )" +DEPEND="${RDEPEND}" + +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/lib/"${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" + [[ $(get_version_component_count) -gt 1 ]] && \ + ln -s ${soname} ${libdir}/${libname}$(get_libname $(get_major_version)) + ln -s ${soname} ${libdir}/${libname}$(get_libname) + fi +} + +pkg_setup() { + use fortran && fortran-2_pkg_setup +} + +src_prepare() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + multibuild_copy_sources +} + +src_configure() { + local MULTIBUILD_VARIANTS=( $(fortran-int64_multilib_get_enabled_abis) ) + my_configure() { + export FCFLAGS="${FCFLAGS} $(get_abi_CFLAGS) $(fortran-int64_get_fortran_int64_abi_fflags)" + econf $(use_enable fortran) + } + 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//-/_}" + # default target builds and runs tests - split + # build first static libs because of fPIC afterwards + # and we link tests with shared ones + if use static-libs; then + emake makefiles + emake lib XBLASLIB=lib${libname}_nonpic.a + emake clean + fi + sed -i \ + -e 's:\(CFLAGS.*\).*:\1 -fPIC:' \ + make.inc || die + emake makefiles + emake lib XBLASLIB=lib${libname}.a + static_to_shared lib${libname}.a + } + 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 () { + emake tests + } + 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//-/_}" + dolib.so lib${libname}$(get_libname)* + use static-libs && newlib.a lib${libname}_nonpic.a lib${libname}.a + dodoc README README.devel + use doc && dodoc doc/report.ps + + # pkg-config file for our multliple numeric stuff + cat > ${profname}.pc <<-EOF + prefix=${EPREFIX}/usr + libdir=\${prefix}/$(get_libdir) + includedir=\${prefix}/include/${PN} + Name: ${profname} + Description: ${DESCRIPTION} + Version: ${PV} + URL: ${HOMEPAGE} + Libs: -L\${libdir} -l${libname} + Cflags: -I\${includedir} + Fflags=$(fortran-int64_get_fortran_int64_abi_fflags) + EOF + insinto /usr/$(get_libdir)/pkgconfig + doins ${profname}.pc + } + multibuild_foreach_variant run_in_build_dir fortran-int64_multilib_multibuild_wrapper my_src_install +} -- cgit v1.2.3-18-g5258