diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /sci-libs/acml | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sci-libs/acml')
-rw-r--r-- | sci-libs/acml/Manifest | 6 | ||||
-rw-r--r-- | sci-libs/acml/acml-4.1.0-r2.ebuild | 200 | ||||
-rw-r--r-- | sci-libs/acml/files/blas.pc.in | 11 | ||||
-rw-r--r-- | sci-libs/acml/files/lapack.pc.in | 11 | ||||
-rw-r--r-- | sci-libs/acml/metadata.xml | 23 |
5 files changed, 251 insertions, 0 deletions
diff --git a/sci-libs/acml/Manifest b/sci-libs/acml/Manifest new file mode 100644 index 000000000000..1bc390d246ba --- /dev/null +++ b/sci-libs/acml/Manifest @@ -0,0 +1,6 @@ +DIST acml-4-1-0-gfortran-32bit.tgz 18258099 SHA256 52580576c3a425635eccb19fc5df38c3139fbc44fd669799bc8ffd0e2d82ccc7 +DIST acml-4-1-0-gfortran-64bit-int64.tgz 29351223 SHA256 825ae742df873cf6d41fbaaecff08941badb2b43a7021ba6c8af7abc75a6d14d +DIST acml-4-1-0-gfortran-64bit.tgz 29995624 SHA256 50f64687b86556123538e1f2bd4c185ff1d018501a5a5834ec8acf7487c817c4 +DIST acml-4-1-0-ifort-32bit.tgz 18797527 SHA256 5dfa768c12e96d2d25678e85cf2e0eea3bd427ddd94f417bcad09abe25369375 +DIST acml-4-1-0-ifort-64bit-int64.tgz 36135363 SHA256 3da0ded50ab25e44f531ac58b469344fed0f6af4ae70aa58b1286cf8de9731a4 +DIST acml-4-1-0-ifort-64bit.tgz 36577689 SHA256 b5b60425fccb624e3baf48f5d51ae68ccdc3e9852a4a50661bb3e45a6f25be40 diff --git a/sci-libs/acml/acml-4.1.0-r2.ebuild b/sci-libs/acml/acml-4.1.0-r2.ebuild new file mode 100644 index 000000000000..05a9a11930c0 --- /dev/null +++ b/sci-libs/acml/acml-4.1.0-r2.ebuild @@ -0,0 +1,200 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils fortran-2 multilib toolchain-funcs versionator + +MY_P=${PN}-$(replace_all_version_separators -) + +DESCRIPTION="AMD Core Math Library for x86 and amd64 CPUs" +HOMEPAGE="http://developer.amd.com/acml.jsp" +SRC_URI=" + amd64? ( + ifc? ( ${MY_P}-ifort-64bit.tgz + int64? ( ${MY_P}-ifort-64bit-int64.tgz ) ) + gfortran? ( ${MY_P}-gfortran-64bit.tgz + int64? ( ${MY_P}-gfortran-64bit-int64.tgz ) ) + !ifc? ( + !gfortran? ( ${MY_P}-gfortran-64bit.tgz + int64? ( ${MY_P}-gfortran-64bit-int64.tgz ) ) ) ) + x86? ( + ifc? ( ${MY_P}-ifort-32bit.tgz ) + gfortran? ( ${MY_P}-gfortran-32bit.tgz ) + !ifc? ( !gfortran? ( ${MY_P}-gfortran-32bit.tgz ) ) )" + +SLOT="0" +LICENSE="ACML" +KEYWORDS="-* ~amd64 ~x86" +IUSE="doc examples gfortran ifc int64 openmp test" + +RESTRICT="strip fetch" + +CDEPEND=" + ifc? ( dev-lang/ifc ) + gfortran? ( =sys-devel/gcc-4.2* ) + !gfortran? ( !ifc? ( =sys-devel/gcc-4.2* ) )" + +DEPEND=" + app-eselect/eselect-blas + app-eselect/eselect-lapack + test? ( ${CDEPEND} )" + +RDEPEND="${CDEPEND} + app-eselect/eselect-blas + app-eselect/eselect-lapack + doc? ( app-doc/blas-docs app-doc/lapack-docs )" + +S="${WORKDIR}" + +pkg_nofetch() { + einfo "Please download the ACML from:" + einfo "${HOMEPAGE}" + einfo "and place it in ${DISTDIR}." + einfo "The previous versions could be found at" + einfo "http://developer.amd.com/acmlarchive.jsp" + einfo "SRC=${A} $SRC_URI" +} + +get_fcomp() { + case $(tc-getFC) in + *gfortran* ) + FCOMP="gfortran" ;; + ifort ) + FCOMP="ifc" ;; + * ) + FCOMP=$(tc-getFC) ;; + esac +} + +pkg_setup() { + if use test; then + # work around incomplete fortran eclass + if use gfortran && + [[ $(tc-getFC) =~ gfortran ]] && + [[ $(gcc-version) != 4.2 ]] + then + eerror "You need gfortran-4.2 to test acml" + eerror "Please use gcc-config to switch gcc version 4.2" + die "gfortran check failed" + fi + fi + if use openmp; then + tc-has-openmp || die "Please ensure your compiler has openmp support" + FORTRAN_NEED_OPENMP=1 + fi + fortran-2_pkg_setup + get_fcomp + # construct default profile dprof from default ddir + local ddir=gfortran + use ifc && ddir=ifort + use x86 && ddir=${ddir}32 || ddir=${ddir}64 + use openmp && ddir=${ddir}_mp + use int64 && ddir=${ddir}_int64 + ACML_DEFAULT_DIR=${ddir} +} + +src_unpack() { + unpack ${A} + unpack ./contents-acml-*.tgz + use openmp || rm -rf *_mp* +} + +src_test() { + # only testing with current chosen compiler + for fdir in ${ACML_DEFAULT_DIR/_mp}*; do + einfo "Testing acml in ${fdir}" + for d in . acml_mv; do + cd "${S}"/${fdir}/examples/${d} + emake \ + ACMLDIR="${S}"/${fdir} \ + F77=$(tc-getFC) \ + CC="$(tc-getCC)" \ + CPLUSPLUS="$(tc-getCXX)" + emake clean + done + done +} + +make_acml_profile_name() { + local fort=${1%%[[:digit:]]*} + local opt=${1#*[0-9][0-9]} + echo ${PN}-${fort}${opt/mp/openmp} | tr '_' '-' +} + +src_install() { + # respect acml default install dir (and FHS) + local instdir=/opt/${PN}${PV} + dodir ${instdir} + + for lib in */lib; do + local fdir=${lib%/*} + # install acml + use examples || rm -rf "${S}"/${fdir}/examples + cp -pPR "${S}"/${fdir} "${D}"${instdir} || die "copy ${fdir} failed" + + # install profiles + local prof=$(make_acml_profile_name ${fdir}) + local acmldir=${instdir}/${fdir} + local acmllibs="-lacml" + local libname=${acmldir}/lib/libacml + local extlibs + local extflags + [[ ${fdir} =~ int64 ]] && extflags="${extflags} -fdefault-integer-8" + [[ ${fdir} =~ gfortran ]] && extlibs="${extlibs} -lgfortran" + if [[ ${fdir} =~ _mp ]]; then + [[ ${fdir} =~ ifort ]] && extlibs="${extlibs} -lguide" + extlibs="${extlibs} -lpthread" + extflags="${extflags} -fopenmp" + acmllibs="-lacml_mp" + libname=${libname}_mp + fi + use amd64 && acmllibs="${acmllibs} -lacml_mv" + for x in blas lapack; do + # pkgconfig files + sed -e "s:@LIBDIR@:$(get_libdir):" \ + -e "s:@PV@:${PV}:" \ + -e "s:@ACMLDIR@:${acmldir}:g" \ + -e "s:@ACMLLIBS@:${acmllibs}:g" \ + -e "s:@EXTLIBS@:${extlibs}:g" \ + -e "s:@EXTFLAGS@:${extflags}:g" \ + "${FILESDIR}"/${x}.pc.in > ${x}.pc \ + || die "sed ${x}.pc failed" + insinto ${acmldir}/lib + doins ${x}.pc + + # eselect files + cat > eselect.${prof}.${x} <<-EOF + ${libname}.so /usr/@LIBDIR@/lib${x}.so.0 + ${libname}.so /usr/@LIBDIR@/lib${x}.so + ${libname}.a /usr/@LIBDIR@/lib${x}.a + ${acmldir}/lib/${x}.pc /usr/@LIBDIR@/pkgconfig/${x}.pc + EOF + eselect ${x} add $(get_libdir) eselect.${prof}.${x} ${prof} + done + done + + echo "LDPATH=${instdir}/${ACML_DEFAULT_DIR}/lib" > 35acml + doenvd "${S}"/35acml + use doc || rm -rf "${S}"/Doc/acml.pdf "${S}"/Doc/html + cp -pPR "${S}"/Doc "${D}"${instdir} || die "copy doc failed" +} + +pkg_postinst() { + local dprof="$(make_acml_profile_name ${ACML_DEFAULT_DIR})" + for x in blas lapack; do + local cprof=$(eselect ${x} show | cut -d' ' -f2) + if [[ ${cprof} == ${dprof} || -z ${cprof} ]]; then + # work around eselect bug #189942 + local configfile="${ROOT}"/etc/env.d/${x}/$(get_libdir)/config + [[ -e ${configfile} ]] && rm -f ${configfile} + eselect ${x} set ${dprof} + elog "${x} has been eselected to ${dprof}" + else + elog "Current eselected ${x} implementation is ${cprof}" + elog "To use you have one of ${PN}, issue (as root):" + elog "\t eselect ${x} set <profile>" + fi + done +} diff --git a/sci-libs/acml/files/blas.pc.in b/sci-libs/acml/files/blas.pc.in new file mode 100644 index 000000000000..523aabc1204c --- /dev/null +++ b/sci-libs/acml/files/blas.pc.in @@ -0,0 +1,11 @@ +prefix=@ACMLDIR@ +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: blas +Description: ACML implementations of the Basic Linear Algebra Subroutines +Version: @PV@ +URL: http://developer.amd.com/acml.jsp +Libs: -Wl,--no-as-needed -L${libdir} @ACMLLIBS@ @EXTLIBS@ +Cflags: @EXTFLAGS@ diff --git a/sci-libs/acml/files/lapack.pc.in b/sci-libs/acml/files/lapack.pc.in new file mode 100644 index 000000000000..48fef122dfe4 --- /dev/null +++ b/sci-libs/acml/files/lapack.pc.in @@ -0,0 +1,11 @@ +prefix=@ACMLDIR@ +exec_prefix=${prefix} +libdir=${prefix}/lib +includedir=${prefix}/include + +Name: lapack +Description: ACML implementation of the F77 Linear Algebra PACKage +Version: @PV@ +URL: http://developer.amd.com/acml.jsp +Libs: -Wl,--no-as-needed -L${libdir} @ACMLLIBS@ @EXTLIBS@ +Cflags: @EXTFLAGS@ diff --git a/sci-libs/acml/metadata.xml b/sci-libs/acml/metadata.xml new file mode 100644 index 000000000000..29546f51523b --- /dev/null +++ b/sci-libs/acml/metadata.xml @@ -0,0 +1,23 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>sci</herd> + <longdescription lang="en"> + The AMD(R) Core Math Library provides an implementation of the "Basic + Linear Algebra Subprograms" (BLAS) and the "Linear Algebra PACKage" + (LAPACK) as well as a set of "Fast Fourier Transformation" (FFT) + routines, all highly optimized for AMD(R) x86 and amd64 CPUs. +</longdescription> + <longdescription lang="de"> + Die AMD(R) Core Math Library ist ein Ersatz für die "Basic Linear + Algebra Subprograms" (BLAS) und das "Linear Algebra PACKage" (LAPACK). + Außerdem enthält sie Routinen zur "Fast Fourier Tranformation" (FFT). + Alle Routinen sind hoch optimiert für AMD(R) x86 und amd64 CPUs. +</longdescription> + <use> + <flag name="gfortran">Fetch and install acml compiled with GNU gfortran</flag> + <flag name="ifc">Fetch and install acml compiled with Intel Fortran Compiler + (<pkg>dev-lang/ifc</pkg>)</flag> + <flag name="int64">Install the 64 bits integer library</flag> + </use> +</pkgmetadata> |