diff options
author | Sebastien Fabbro <bicatali@gentoo.org> | 2008-01-24 09:19:09 +0000 |
---|---|---|
committer | Sebastien Fabbro <bicatali@gentoo.org> | 2008-01-24 09:19:09 +0000 |
commit | 243879e50b78127638f3e2c0e30d662db29f1304 (patch) | |
tree | 54b26da1ce1cf612f6bf06cc536af99ff0b545a4 /dev-python | |
parent | stable x86, bug 204494 (diff) | |
download | gentoo-2-243879e50b78127638f3e2c0e30d662db29f1304.tar.gz gentoo-2-243879e50b78127638f3e2c0e30d662db29f1304.tar.bz2 gentoo-2-243879e50b78127638f3e2c0e30d662db29f1304.zip |
Re-introduce fortran detection but only when lapack flag is set, to prevent autodetection and forced multiple fortran linking. Fixed site configuration file generation to really produce fast blas, some cleaning.
(Portage version: 2.1.4)
Diffstat (limited to 'dev-python')
-rw-r--r-- | dev-python/numpy/ChangeLog | 10 | ||||
-rw-r--r-- | dev-python/numpy/files/digest-numpy-1.0.4-r2 | 3 | ||||
-rw-r--r-- | dev-python/numpy/numpy-1.0.4-r2.ebuild | 141 |
3 files changed, 153 insertions, 1 deletions
diff --git a/dev-python/numpy/ChangeLog b/dev-python/numpy/ChangeLog index a7e76b8b2fe0..d64c63e41c01 100644 --- a/dev-python/numpy/ChangeLog +++ b/dev-python/numpy/ChangeLog @@ -1,6 +1,14 @@ # ChangeLog for dev-python/numpy # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/numpy/ChangeLog,v 1.49 2008/01/11 17:06:18 jsbronder Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/numpy/ChangeLog,v 1.50 2008/01/24 09:19:08 bicatali Exp $ + +*numpy-1.0.4-r2 (24 Jan 2008) + + 24 Jan 2008; Sébastien Fabbro <bicatali@gentoo.org> + +numpy-1.0.4-r2.ebuild: + Re-introduce fortran detection but only when lapack flag is set, to prevent + autodetection and forced multiple fortran linking. Fixed site configuration + file generation to really produce fast blas, some cleaning. *numpy-1.0.4-r1 (11 Jan 2008) diff --git a/dev-python/numpy/files/digest-numpy-1.0.4-r2 b/dev-python/numpy/files/digest-numpy-1.0.4-r2 new file mode 100644 index 000000000000..2abfed99cb45 --- /dev/null +++ b/dev-python/numpy/files/digest-numpy-1.0.4-r2 @@ -0,0 +1,3 @@ +MD5 8f011e9d7697da570efaac61c51725e0 numpy-1.0.4.tar.gz 1547541 +RMD160 8ac192ad3f36a94a45c26e0c4028fdbb744881f5 numpy-1.0.4.tar.gz 1547541 +SHA256 b993ecc060aa2bdca9a45a552f4ea77d96959ce0f429d5f9019e05738d68c9bd numpy-1.0.4.tar.gz 1547541 diff --git a/dev-python/numpy/numpy-1.0.4-r2.ebuild b/dev-python/numpy/numpy-1.0.4-r2.ebuild new file mode 100644 index 000000000000..eeef2daa0589 --- /dev/null +++ b/dev-python/numpy/numpy-1.0.4-r2.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/numpy/numpy-1.0.4-r2.ebuild,v 1.1 2008/01/24 09:19:08 bicatali Exp $ + +NEED_PYTHON=2.3 + +inherit distutils eutils flag-o-matic fortran + +MY_P=${P/_beta/b} +MY_P=${MY_P/_} + +DESCRIPTION="Fast array and numerical python library" +SRC_URI="mirror://sourceforge/numpy/${MY_P}.tar.gz" +HOMEPAGE="http://numeric.scipy.org/" + +RDEPEND="!dev-python/f2py + lapack? ( virtual/cblas virtual/lapack )" + +DEPEND="${RDEPEND} + lapack? ( dev-util/pkgconfig )" + +IUSE="lapack" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd" +LICENSE="BSD" + +S="${WORKDIR}/${MY_P}" + +# whatever LDFLAGS set will break linking +# see progress in http://projects.scipy.org/scipy/numpy/ticket/573 +[ -n "${LDFLAGS}" ] && append-ldflags -shared + +pkg_setup() { + # only one fortran to link with: + # linking with cblas and lapack library will force + # autodetecting and linking to all available fortran compilers + use lapack || return + FORTRAN="gfortran g77 ifc" + fortran_pkg_setup + local fc= + case ${FORTRANC} in + gfortran) fc=gnu95 ;; + g77) fc=gnu ;; + ifc|ifort) + if use ia64; then + fc=intele + elif use amd64; then + fc=intelem + else + fc=intel + fi + ;; + *) eerror "Unknown fortran compiler: ${FORTRANC}" + die "numpy_fortran_setup failed" ;; + esac + + # when fortran flags are set, pic is removed. + use amd64 && FFLAGS="${FFLAGS} -fPIC" + export NUMPY_FCONFIG="config_fc --fcompiler=${fc}" +} + +src_unpack() { + unpack ${A} + cd "${S}" + + # Fix some paths and docs in f2py + epatch "${FILESDIR}"/${PN}-1.0.1-f2py.patch + + # Patch to use feclearexcept(3) rather than fpsetsticky(3) on FreeBSD 5.3+ + epatch "${FILESDIR}"/${P}-freebsd.patch + + # Detect nocona hardware correctly. Bug #183236. + epatch "${FILESDIR}"/${P}-nocona-cpuinfo.patch + + # Gentoo patch for ATLAS library and include dirs + sed -i \ + -e "s:'f77blas':'blas':g" \ + -e "s:'ptf77blas':'blas':g" \ + -e "s:'ptcblas':'cblas':g" \ + -e "s:'lapack_atlas':'lapack':g" \ + -e "s:'atlas\*',:'','atlas\*',:g" \ + numpy/distutils/system_info.py \ + || die "sed system_info.py failed" + + cat > site.cfg <<-EOF + [DEFAULT] + library_dirs = /usr/$(get_libdir) + include_dirs = /usr/include + EOF + + if use lapack; then + # cblas and lapack libraries under the name of atlas + # otherwise scipy will not create fast _dotblas + cat >> site.cfg <<-EOF + [atlas] + atlas_libs = $(pkg-config --libs-only-l cblas lapack \ + | sed -e 's/^-l//' -e 's/ -l/,/g') + EOF + else + export {ATLAS,PTATLAS,BLAS,LAPACK,MKL}=None + fi +} + +src_compile() { + # when fortran flags are set, pic is removed but unfortunately needed + distutils_src_compile ${NUMPY_FCONFIG} +} + +src_test() { + "${python}" setup.py ${NUMPY_FCONFIG} install \ + --home="${S}"/test \ + --no-compile \ + || die "install test failed" + + pushd "${S}"/test/lib*/python + PYTHONPATH=. "${python}" -c "import numpy; numpy.test(10,3)" 2>&1 \ + | tee test.log + grep -q '^OK$' test.log || die "test failed" + popd + + rm -rf test +} + +src_install() { + distutils_src_install ${NUMPY_FCONFIG} + + docinto numpy + dodoc numpy/doc/*txt || die "dodoc failed" + + docinto f2py + dodoc numpy/f2py/docs/*txt || die "dodoc f2py failed" + doman numpy/f2py/f2py.1 || die "doman failed" +} + +pkg_postinst() { + if ! built_with_use sys-devel/gcc fortran && ! has_version dev-lang/ifc; then + ewarn "To use numpy's f2py you need a fortran compiler." + ewarn "You can either set USE=fortran flag and re-emerge gcc," + ewarn "or emerge dev-lang/ifc" + fi +} |