commit:     8bb927ed7f22098143f37b62b695bbb14143cfc4
Author:     gienah <gienah <AT> gentoo <DOT> org>
AuthorDate: Mon Oct 13 10:18:32 2014 +0000
Commit:     Mark Wright <gienah <AT> gentoo <DOT> org>
CommitDate: Mon Oct 13 10:18:32 2014 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/sci.git;a=commit;h=8bb927ed

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(-)

diff --git a/sci-libs/xblas/ChangeLog b/sci-libs/xblas/ChangeLog
index 17e85f6..89c3d15 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 <[email protected]> +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 <[email protected]> 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 4610f39..659b397 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.
 </longdescription>
+  <use>
+    <flag name="int64">Build the 64 bits integer library</flag>
+  </use>
 </pkgmetadata>

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 0000000..1c01265
--- /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
+}

Reply via email to