Moved from app-sci/lapack-atlas to sci-libs/lapack-atlas.
authorOlivier Fisette <ribosome@gentoo.org>
Wed, 29 Dec 2004 18:26:45 +0000 (18:26 +0000)
committerOlivier Fisette <ribosome@gentoo.org>
Wed, 29 Dec 2004 18:26:45 +0000 (18:26 +0000)
sci-libs/lapack-atlas/ChangeLog [new file with mode: 0644]
sci-libs/lapack-atlas/Manifest [new file with mode: 0644]
sci-libs/lapack-atlas/files/digest-lapack-atlas-3.6.0 [new file with mode: 0644]
sci-libs/lapack-atlas/files/f77-ATLAS [new file with mode: 0644]
sci-libs/lapack-atlas/files/war [new file with mode: 0644]
sci-libs/lapack-atlas/lapack-atlas-3.6.0.ebuild [new file with mode: 0644]
sci-libs/lapack-atlas/metadata.xml [new file with mode: 0644]

diff --git a/sci-libs/lapack-atlas/ChangeLog b/sci-libs/lapack-atlas/ChangeLog
new file mode 100644 (file)
index 0000000..d6dbba5
--- /dev/null
@@ -0,0 +1,56 @@
+# ChangeLog for app-sci/lapack-atlas
+# Copyright 2004-2004 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/lapack-atlas/ChangeLog,v 1.1 2004/12/29 18:26:45 ribosome Exp $
+
+*lapack-atlas-3.6.0 (29 Dec 2004)
+
+  29 Dec 2004; Olivier Fisette <ribosome@gentoo.org> +metadata.xml,
+  +files/f77-ATLAS, +files/war, +lapack-atlas-3.6.0.ebuild:
+  Moved from app-sci/lapack-atlas to sci-libs/lapack-atlas.
+
+  17 Nov 2004; Markus Rothe <corsair@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  stable on ppc64
+
+  31 Oct 2004; Olivier Fisette <ribosome@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  Use tc-getCC from toolchain-funcs rather than $CC.
+
+  12 Sep 2004; Danny van Dyk <kugelfang@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  Marked stable on amd64.
+
+  09 Sep 2004; Philippe Trottier <tchiwam@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  marked ~ppc64
+
+  12 Jul 2004; George Shapovalov <george@gentoo.org> lapack-atlas-3.6.0.ebuild :
+  added filtering of CFLAGS for g77 (#56265), 
+  thanks to Sourav Mandal <sourav@sourav.net> for suggestion.
+
+  04 Jul 2004; Ferris McCormick <fmccor@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  Add (missed) ~sparc keyword.
+
+  05 Jul 2004; Danny van Dyk <kugelfang@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  Marked ~ppc (tested myself) and ~sparc (tested by fmccor).
+
+  01 Jul 2004; Jeremy Huddleston <eradicator@gentoo.org>
+  lapack-atlas-3.6.0.ebuild:
+  virtual/glibc -> virtual/libc
+
+  10 Jun 2004; George Shapovalov <george@gentoo.org> lapack-atlas-3.6.0.ebuild, files/{atlas3.6.0-shared-libs.patch.bz2,} pack-20020531-20021004.patch.bz2,lapack-gentoo.patch,digest-lapack-atlas-3.6.0 :
+  moved files shared with lapack-reference to mirrors (one of them was a large patch as well)
+  unmasked in package.mask
+
+  05 Jun 2004; George Shapovalov <george@gentoo.org> lapack-atlas-3.6.0.ebuild :
+  fixed check for g77 - it is always necessary, even if ifc is installed (#30459)
+
+  02 Jun 2004; Aron Griffis <agriffis@gentoo.org> lapack-atlas-3.6.0.ebuild:
+  Fix use invocation
+
+  12 May 2004; Michael Sterrett <mr_bones_@gentoo.org>
+  lapack-atlas-3.6.0.ebuild:
+  don't use deprecated ? : syntax
+
+*lapack-atlas-3.6.0 (11 May 2004)
+
+  11 May 2004; George Shapovalov <george@gentoo.org> lapack-atlas-3.6.0.ebuild, Manifest, files/{atlas3.6.0-shared-libs.patch.bz2,digest-lapack-atlas-3.6.0,f77-ATLAS,lapack-20020531-20021004.patch.bz2,lapack-gentoo.patch,war} :
+  initial release (#30459)
+  Full LAPACK implementation using available ATLAS routines
+  ebuild submitted by Derek Dolney <dolney@astro.upenn.edu>
diff --git a/sci-libs/lapack-atlas/Manifest b/sci-libs/lapack-atlas/Manifest
new file mode 100644 (file)
index 0000000..65deb9a
--- /dev/null
@@ -0,0 +1,6 @@
+MD5 0cbd8bc37467c7fc46a3625144a00dd3 ChangeLog 2327
+MD5 1b1e6438650b4e85ff98489529bb7252 lapack-atlas-3.6.0.ebuild 4975
+MD5 8c623e53daafa025137077c6b65815bd metadata.xml 156
+MD5 b3d716baf0a71dd55ce358d086e4069b files/digest-lapack-atlas-3.6.0 335
+MD5 1b77dbffbf246309e6e97c77b64735fd files/f77-ATLAS 408
+MD5 13d26350d75e6993f1b3ec48ca97f14e files/war 545
diff --git a/sci-libs/lapack-atlas/files/digest-lapack-atlas-3.6.0 b/sci-libs/lapack-atlas/files/digest-lapack-atlas-3.6.0
new file mode 100644 (file)
index 0000000..7d1254a
--- /dev/null
@@ -0,0 +1,5 @@
+MD5 df2ee2eb65d1c08ee93d04370172c262 atlas3.6.0.tar.bz2 1687723
+MD5 a24f59304f87b78cdc7da2ae59c98664 lapack.tgz 4991992
+MD5 c35802e688f28f8f65632fb93aad69d8 lapack-20020531-20021004.patch.bz2 59736
+MD5 4192870be88e09ba8c6a805eb31fcfb4 lapack-gentoo.patch 1272
+MD5 743b75ec473ab0f0edda6b649aa89060 atlas3.6.0-shared-libs.patch.bz2 5140
diff --git a/sci-libs/lapack-atlas/files/f77-ATLAS b/sci-libs/lapack-atlas/files/f77-ATLAS
new file mode 100644 (file)
index 0000000..edf4fc4
--- /dev/null
@@ -0,0 +1,14 @@
+F77LIBS="-L/usr/lib/lapack/atlas -llapack"
+
+setup() {
+ 
+einfo "/usr/lib/liblapack.so -> lapack/atlas/liblapack.so"
+ln -sf lapack/atlas/liblapack.so /usr/lib/liblapack.so
+
+einfo "/usr/lib/liblapack.so.0 -> lapack/atlas/liblapack.so.0"
+ln -sf lapack/atlas/liblapack.so.0 /usr/lib/liblapack.so.0
+ 
+einfo "/usr/lib/liblapack.a -> lapack/atlas/liblapack.a"
+ln -sf lapack/atlas/liblapack.a /usr/lib/liblapack.a
+
+}
diff --git a/sci-libs/lapack-atlas/files/war b/sci-libs/lapack-atlas/files/war
new file mode 100644 (file)
index 0000000..2093f03
--- /dev/null
@@ -0,0 +1,26 @@
+#! /bin/bash
+#
+# war -- wrapper for the archiver
+#
+# Executed by ATLAS build as:
+# full_path/war ARCHIVER ARFLAGS LIBNAME.a OBJS.lo
+
+TOPDIR=$(echo $0 | sed 's/\(.*\)\/.*/\1/')
+PWD=$(pwd)
+
+ARCHIVER=$1
+LIBRARY=$(echo $3 | sed 's/.*\/\(.*\)/\1/')
+OBJ_DIR=${TOPDIR}/gentoo/$LIBRARY
+
+if [ ! -x $OBJ_DIR ]; then mkdir -p ${OBJ_DIR}/.libs; fi
+
+$ARCHIVER $@
+
+shift 3
+for obj in $@ ; do
+       lobj=$(echo $obj | sed 's/\.o/\.lo/')
+       ln -sf ${PWD}/$obj ${OBJ_DIR}/$obj
+       ln -sf ${PWD}/$lobj ${OBJ_DIR}/$lobj
+       ln -sf ${PWD}/.libs/$obj ${OBJ_DIR}/.libs/$obj
+done
+
diff --git a/sci-libs/lapack-atlas/lapack-atlas-3.6.0.ebuild b/sci-libs/lapack-atlas/lapack-atlas-3.6.0.ebuild
new file mode 100644 (file)
index 0000000..e263ba4
--- /dev/null
@@ -0,0 +1,202 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-libs/lapack-atlas/lapack-atlas-3.6.0.ebuild,v 1.1 2004/12/29 18:26:45 ribosome Exp $
+
+inherit eutils flag-o-matic toolchain-funcs
+
+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}
+       mirror://gentoo/lapack-20020531-20021004.patch.bz2
+       mirror://gentoo/lapack-gentoo.patch
+       mirror://gentoo/${MY_PN}3.6.0-shared-libs.patch.bz2"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~x86 amd64 ~ppc ppc64 ~sparc"
+IUSE="ifc doc"
+
+DEPEND="virtual/libc
+       >=sys-devel/libtool-1.5
+       =app-sci/blas-atlas-3.6.0
+       app-sci/lapack-config
+       ifc? ( dev-lang/ifc )"
+
+RDEPEND="virtual/libc
+       virtual/blas
+       ifc? ( dev-lang/ifc )" # Need Intel runtime libraries
+
+PROVIDE="virtual/lapack"
+
+S=${WORKDIR}/ATLAS
+S_LAPACK=${WORKDIR}/LAPACK
+
+TOP_PATH="${DESTTREE}/lib/lapack"
+# Path where libraries will be installed:
+RPATH="${TOP_PATH}/atlas"
+
+ifc_info() {
+       if [ -z "${IFCFLAGS}" ]
+       then
+               einfo
+               einfo "You may want to set some ifc optimization flags by running this"
+               einfo "ebuild as, for example:"
+               einfo
+               einfo "IFCFLAGS=\"-O3 -tpp7 -xW\" emerge lapack-atlas"
+               einfo "(Pentium 4 exclusive optimizations)."
+               einfo
+               einfo "ifc defaults to -O2, with code tuned for Pentium 4, but that"
+               einfo "will run on any processor."
+               einfo
+               einfo "Beware that ifc's -O3 is very aggressive, sometimes resulting in"
+               einfo "significantly worse performance."
+               einfo
+       fi
+}
+
+pkg_setup() {
+       # We need g77 to compile the LAPACK routines from ATLAS.
+       # `use ifc` only causes the non-ATLAS routines (from the
+       #  reference set) to be built with ifc.
+       if [ -z `which g77` ]; then
+               eerror "g77 not found on the system!"
+               eerror "Please add f77 to your USE flags and reemerge gcc!"
+               die
+       fi
+}
+
+src_unpack() {
+       use ifc && ifc_info
+       unpack ${A}
+
+       cd ${WORKDIR}
+       epatch ${DISTDIR}/atlas3.6.0-shared-libs.patch.bz2
+       epatch ${DISTDIR}/lapack-20020531-20021004.patch.bz2
+       epatch ${DISTDIR}/lapack-gentoo.patch
+       cp ${FILESDIR}/war ${S}
+       chmod a+x ${S}/war
+}
+
+atlas_fail() {
+       eerror
+       eerror "ATLAS auto-config failed."
+       eerror "Please run 'interactive=1 emerge lapack-atlas' to configure"
+       eerror "manually."
+       eerror
+       die "ATLAS auto-config failed."
+}
+
+src_compile() {
+       cd ${S}
+       if [ -n "${interactive}" ]
+       then
+               echo "${interactive}"
+               make config CC="$(tc-getCC) -DUSE_LIBTOOL -DINTERACTIVE" || die
+       else
+               # Use ATLAS defaults for all questions:
+               (echo | make config CC="$(tc-getCC) -DUSE_LIBTOOL") || atlas_fail
+       fi
+
+       TMPSTR=$(ls Make.Linux*)
+       ATLAS_ARCH=${TMPSTR#'Make.'}
+
+       CC="libtool --mode=compile --tag=CC $(tc-getCC) -I/usr/include/atlas"
+
+       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="libtool --mode=compile --tag=F77 g77" || die
+
+       cd ${S_LAPACK}
+       if use ifc
+       then
+               FC="ifc"
+               FFLAGS="${IFCFLAGS}"
+               NOOPT="-O0" # Do NOT change this. It is applied to two files with
+                                       # routines to determine machine constants.
+       else
+               FC="g77"
+               # g77 hates opts, esp. machine-specific
+               ALLOWED_FLAGS="-O -O1 -O2 -fstack-protector -fno-unit-at-a-time \
+                                               -pipe -g -Wall"
+               strip-flags
+               FFLAGS="${CFLAGS}"
+               NOOPT=""
+       fi
+       make lapacklib FORTRAN="libtool --mode=compile --tag=F77 ${FC}" OPTS="${FFLAGS}" \
+               NOOPT="${NOOPT}" || die
+
+       cd ${S_LAPACK}/SRC
+       cp -sf ${S}/gentoo/liblapack.a/*.o .
+       cp -sf ${S}/gentoo/liblapack.a/*.lo .
+       cp -sf ${S}/gentoo/liblapack.a/.libs/*.o .libs/
+
+       if use ifc
+       then
+               ifc ${FFLAGS} -shared .libs/*.o -Wl,-soname -Wl,liblapack.so.0 \
+                       -o liblapack.so.0.0.0 -lblas -lcblas -latlas \
+                       -L$(gcc-config -L) -lg2c
+               ar cru liblapack.a *.o
+               ranlib liblapack.a
+       else
+               libtool --mode=link --tag=CC $(tc-getCC) -o liblapack.la *.lo \
+                       -rpath ${RPATH} -lblas -lcblas -latlas -lg2c
+       fi
+}
+
+src_install () {
+       dodir ${RPATH}
+
+       cd ${S_LAPACK}/SRC
+       if use ifc
+       then
+               strip --strip-unneeded liblapack.so.0.0.0
+               strip --strip-debug liblapack.a
+
+               exeinto ${RPATH}
+               doexe liblapack.so.0.0.0
+               dosym liblapack.so.0.0.0 ${RPATH}/liblapack.so.0
+               dosym liblapack.so.0.0.0 ${RPATH}/liblapack.so
+
+               insinto ${RPATH}
+               doins liblapack.a
+       else
+               libtool --mode=install install -s liblapack.la ${D}/${RPATH}
+       fi
+
+       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
+}
diff --git a/sci-libs/lapack-atlas/metadata.xml b/sci-libs/lapack-atlas/metadata.xml
new file mode 100644 (file)
index 0000000..b229aec
--- /dev/null
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+</pkgmetadata>