# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils DESCRIPTION="Full LAPACK implementation using available ATLAS routines" HOMEPAGE="http://math-atlas.sourceforge.net/" MY_PN=${PN/-lapack/} SRC_URI1="mirror://sourceforge/math-atlas/${MY_PN}${PV}.tar.bz2" SRC_URI2="http://www.netlib.org/lapack/lapack.tgz" SRC_URI="${SRC_URI1} ${SRC_URI2}" LICENSE="BSD" SLOT="0" KEYWORDS="~x86" IUSE="doc" DEPEND="virtual/glibc sys-devel/libtool app-sci/atlas-blas app-sci/lapack-config" RDEPEND="virtual/glibc app-sci/atlas-blas" PROVIDE="virtual/lapack" S=${WORKDIR}/ATLAS S_LAPACK=${WORKDIR}/LAPACK src_unpack() { unpack ${A} cd ${WORKDIR} epatch ${FILESDIR}/atlas-gentoo.patch epatch ${FILESDIR}/lapack-20020531-20021004.patch.bz2 epatch ${FILESDIR}/lapack-gentoo.patch cp ${FILESDIR}/war ${S} } atlas_fail() { eerror eerror "ATLAS auto-config failed." eerror "Please run 'interactive=1 emerge atlas-blas' to configure manually." eerror die "ATLAS auto-config failed." } src_compile() { TOP_PATH="${DESTTREE}/lib/lapack" # Path where libraries will be installed: RPATH="${TOP_PATH}/atlas" GCC="gcc" if [ -n "${interactive}" ] then echo "${interactive}" make config CC="${GCC} -DUSE_LIBTOOL -DINTERACTIVE" || die else # Use ATLAS defaults for all questions: (echo | make config CC="${GCC} -DUSE_LIBTOOL") || atlas_fail fi TMPSTR=$(ls Make.Linux*) ATLAS_ARCH=${TMPSTR#'Make.'} CC="libtool --mode=compile ${GCC} -I/usr/include/atlas" FC="libtool --mode=compile g77" cd ${S}/src/lapack/${ATLAS_ARCH} make lib CC="${CC}" || die cd ${S}/interfaces/lapack/C/src/${ATLAS_ARCH} make lib CC="${CC}" || die cd ${S}/interfaces/lapack/F77/src/${ATLAS_ARCH} make lib CC="${CC}" F77="${FC}" || die cd ${S_LAPACK} make lapacklib FORTRAN="${FC}" OPTS="${CFLAGS}" || die cd ${S_LAPACK}/SRC cp -sf ${S}/gentoo/liblapack.a/*.o . cp -sf ${S}/gentoo/liblapack.a/*.lo . libtool --mode=link ${GCC} -o liblapack.la *.lo \ -rpath ${RPATH} -latlas -lblas -lcblas } src_install () { dodir ${RPATH} cd ${S_LAPACK}/SRC libtool install -s liblapack.la ${D}/${RPATH} insinto ${TOP_PATH} doins ${FILESDIR}/f77-ATLAS insinto /usr/include/atlas cd ${S}/include doins clapack.h cd ${S} dodoc README cd ${S}/doc dodoc AtlasCredits.txt ChangeLog if [ "`use doc`" ]; then dodoc lapackqref.ps fi } pkg_postinst() { /usr/bin/lapack-config ATLAS einfo einfo "To link with ATLAS LAPACK from C or Fortran, simply use:" einfo einfo "-llapack" einfo einfo "C users: your header is /usr/include/atlas/clapack.h" einfo }