# Copyright 1999-2010 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ EAPI="2" inherit eutils DESCRIPTION="Enable compiling code and loading it on ATI/AMD GPU" HOMEPAGE="http://developer.amd.com/GPU/ATISTREAMSDK/Pages/default.aspx" SRC_URI="http://developer.amd.com/Downloads/ati-stream-sdk-v${PV}-lnx64.tgz" LICENSE="AMD GPL-1 as-is" SLOT="0" KEYWORDS="~amd64 ~x86" IUSE="examples doc" RESTRICT="strip fetch" RDEPEND="examples? ( media-libs/glew )" QA_EXECSTACK=" usr/lib32/libatiocl32.so usr/lib64/libatiocl64.so usr/lib/libatiocl32.so usr/lib/libatiocl64.so " src_install() { local DEST=/opt/${PF} cd ati-stream-sdk-v${PV}-lnx64 || die # install libraries and executables into standart tree dodir ${DEST}/bin if use multilib; then # executables (32 and 64 bit versions) newbin bin/x86_64/clc clc64 newbin bin/x86/clc clc32 dosym clc64 /usr/bin/clc dodir ${DEST}/bin/x86 dosym /usr/bin/clc32 ${DEST}/bin/x86/clc dodir ${DEST}/bin/x86_64 dosym /usr/bin/clc64 ${DEST}/bin/x86_64/clc # libraries dolib.so lib/x86_64/libOpenCL.so lib/x86_64/libatiocl64.so insinto /usr/lib32 insopts -m0755 doins lib/x86/libOpenCL.so lib/x86/libatiocl32.so dosym /usr/lib32/libOpenCL.so ${DEST}/lib/x86/libOpenCL.so dosym /usr/lib32/libatiocl32.so ${DEST}/lib/x86/libatiocl32.so dosym /usr/lib64/libOpenCL.so ${DEST}/lib/x86_64/libOpenCL.so dosym /usr/lib64/libatiocl64.so ${DEST}/lib/x86_64/libatiocl64.so else # 32 bit or 64 bit versions are installed only if use amd64; then dobin bin/x86_64/clc dolib.so lib/x86_64/libOpenCL.so lib/x86_64/libatiocl64.so dodir ${DEST}/bin/x86_64 dosym /usr/bin/clc ${DEST}/bin/x86_64/clc dosym /usr/lib/libOpenCL.so ${DEST}/lib/x86_64/libOpenCL.so dosym /usr/lib/libatiocl64.so ${DEST}/lib/x86_64/libatiocl64.so else dobin bin/x86/clc dolib.so lib/x86/libOpenCL.so lib/x86/libatiocl32.so dodir ${DEST}/bin/x86 dosym /usr/bin/clc ${DEST}/bin/x86/clc dosym /usr/lib/libOpenCL.so ${DEST}/lib/x86/libOpenCL.so dosym /usr/lib/libatiocl32.so ${DEST}/lib/x86/libatiocl32.so fi fi # Install libraries insinto ${DEST}/lib insopts -m0755 doins -r lib/gpu if ! use amd64 || use multilib; then insinto ${DEST}/lib/x86 doins lib/x86/builtins-x86.bc doins lib/x86/libGLEW.so doins lib/x86/libglut.so fi if use amd64; then insinto ${DEST}/lib/x86_64 doins lib/x86_64/builtins-x86_64.bc doins lib/x86_64/libGLEW.so doins lib/x86_64/libglut.so fi # Install includes # only selected header; not glew insinto /usr/include insopts -m0644 doins include/cal*.h doins -r include/CL insinto ${DEST}/include dosym /usr/include/CL ${DEST}/include/CL doins -r include/GL # Install examples & docs if use examples; then insinto "/usr/share/doc/${PF}/examples" doins -r samples doins -r make dosym ${DEST}/include /usr/share/doc/${PF}/examples/include dosym ${DEST}/lib /usr/share/doc/${PF}/examples/lib fi if use doc; then dodoc docs/opencl/*.pdf dodoc docs/opencl/LICENSES dodoc docs/opencl/StreamDoc.url fi # Create icd files; we COULD use the tar file from # ATI's homepage, yet this seems so unnessecary as # those files are VERY simple. insinto /etc/OpenCL/vendors echo "libatiocl64.so" > atiocl64.icd echo "libatiocl32.so" > atiocl32.icd if use amd64; then doins atiocl64.icd fi doins atiocl32.icd # Create env file echo "ATISTREAMSDKROOT=${DEST}" > 99${PN} doenvd 99${PN} # issue info about gpu computing elog "REMEMBER: You need to install a recent version of ati-drivers to use your GPU for calculations." }