aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDongxu Li <dongxuli2011@gmail.com>2011-08-26 22:37:06 -0400
committerDongxu Li <dongxuli2011@gmail.com>2011-08-26 22:37:06 -0400
commitf6bc886662da540786585b343e5f8115e6849970 (patch)
treefc54d91def6cd986e6ec779fd9087248037458b6 /sci-libs/gotoblas2/gotoblas2-1.13.ebuild
parentmedia-gfx/librecad: ebuild cleanup for 1.0.0_rc2 (diff)
parent[app-doc/votca-csg-manual] fixed deps (diff)
downloadsci-f6bc886662da540786585b343e5f8115e6849970.tar.gz
sci-f6bc886662da540786585b343e5f8115e6849970.tar.bz2
sci-f6bc886662da540786585b343e5f8115e6849970.zip
Merge branch 'master' of ssh://git.overlays.gentoo.org/proj/sci
Diffstat (limited to 'sci-libs/gotoblas2/gotoblas2-1.13.ebuild')
-rw-r--r--sci-libs/gotoblas2/gotoblas2-1.13.ebuild114
1 files changed, 114 insertions, 0 deletions
diff --git a/sci-libs/gotoblas2/gotoblas2-1.13.ebuild b/sci-libs/gotoblas2/gotoblas2-1.13.ebuild
new file mode 100644
index 000000000..b90053600
--- /dev/null
+++ b/sci-libs/gotoblas2/gotoblas2-1.13.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=4
+
+inherit eutils toolchain-funcs alternatives-2
+
+MYPN="GotoBLAS2"
+MYP="${MYPN}-${PV}_bsd"
+
+DESCRIPTION="Fast implementations of the Basic Linear Algebra Subroutines"
+HOMEPAGE="http://www.tacc.utexas.edu/tacc-projects/gotoblas2/"
+# change to gentoo mirror when in
+SRC_URI="http://dev.gentoo.org/~bicatali/${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="+incblas int64 dynamic openmp static-libs threads"
+
+RDEPEND="virtual/fortran"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MYPN}"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-{dynamic,sharedlibs,fcheck,aliasing}.patch
+ # respect LDFLAGS
+ sed -i -e '/^LDFLAGS\s*=/d' Makefile.* || die
+ if ! use dynamic; then
+ sed -i \
+ -e "/^COMMON_OPT/s/-O2/${CFLAGS}/" \
+ Makefile.rule || die
+ fi
+ # fix executable stacks
+ local i
+ for i in $(find . -name \*.S); do
+ cat >> ${i} <<-EOF
+ #if defined(__ELF__)
+ .section .note.GNU-stack,"",%progbits
+ #endif
+ EOF
+ done
+}
+
+src_configure() {
+ local use_openmp=$(use openmp && echo 1)
+ use threads && use openmp && use_openmp="" && \
+ einfo "openmp and threads enabled: using threads"
+ sed -i \
+ -e "s:^#\s*\(NO_LAPACK\)\s*=.*:\1=1:" \
+ -e "s:^#\s*\(CC\)\s*=.*:\1=$(tc-getCC):" \
+ -e "s:^#\s*\(FC\)\s*=.*:\1=$(tc-getFC):" \
+ -e "s:^#\s*\(USE_THREAD\)\s*=.*:\1=$(use threads && echo 1 || echo 0):" \
+ -e "s:^#\s*\(USE_OPENMP\)\s*=.*:\1=${use_openmp}:" \
+ -e "s:^#\s*\(DYNAMIC_ARCH\)\s*=.*:\1=$(use dynamic && echo 1):" \
+ -e "s:^#\s*\(INTERFACE64\)\s*=.*:\1=$(use int64 && echo 1):" \
+ -e "s:^#\s*\(NO_CBLAS\)\s*=.*:\1=$(use incblas || echo 1):" \
+ Makefile.rule || die
+}
+
+src_compile() {
+ mkdir solibs
+ emake libs shared && mv *.so solibs/
+ use static-libs && emake clean && emake libs NEED_PIC=
+}
+
+src_test() {
+ emake tests
+}
+
+src_install() {
+ local profname=${PN} threads
+ use int64 && profname=${profname}-int64
+ if use threads; then
+ threads="-pthread"
+ profname=${profname}-threads
+ elif use openmp; then
+ profname=${profname}-openmp
+ fi
+
+ dolib.so solibs/lib*.so
+ use static-libs && dolib.a lib*.a
+
+ # create pkg-config file and associated eselect file
+ cat <<-EOF > ${profname}.pc
+ prefix=${EPREFIX}/usr
+ libdir=\${prefix}/$(get_libdir)
+ includedir=\${prefix}/include
+ Name: ${MYPN}
+ Description: ${DESCRIPTION}
+ Version: ${PV}
+ URL: ${HOMEPAGE}
+ Libs: -L\${libdir} -lgoto2 -lm ${threads}
+ EOF
+
+ alternatives_for blas ${profname} 0 \
+ "/usr/$(get_libdir)/pkgconfig/blas.pc" "${profname}.pc"
+
+ if use incblas; then
+ insinto /usr/include/${PN}
+ doins cblas.h
+ echo >> ${profname}.pc "Cflags: -I\${includedir}/${PN}"
+ alternatives_for cblas ${profname} 0 \
+ "/usr/$(get_libdir)/pkgconfig/cblas.pc" "${profname}.pc" \
+ "/usr/include/cblas.h" "${PN}/cblas.h"
+ fi
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins ${profname}.pc
+ dodoc 01Readme.txt 03FAQ.txt 05LargePage 06WeirdPerformance
+}