diff options
Diffstat (limited to 'media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild')
-rw-r--r-- | media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild | 215 |
1 files changed, 215 insertions, 0 deletions
diff --git a/media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild b/media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild new file mode 100644 index 000000000000..630bca17695e --- /dev/null +++ b/media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/media-video/ati-drivers/ati-drivers-8.8.25-r3.ebuild,v 1.1 2005/01/25 00:07:10 eradicator Exp $ + +IUSE="" + +inherit eutils rpm multilib linux-info linux-mod + +DESCRIPTION="Ati precompiled drivers for r350, r300, r250 and r200 chipsets" +HOMEPAGE="http://www.ati.com" +SRC_URI="x86? ( http://www2.ati.com/drivers/linux/fglrx_6_8_0-${PV}-1.i386.rpm ) + amd64? ( http://www2.ati.com/drivers/linux/fglrx64_6_8_0-${PV}-1.x86_64.rpm )" + +LICENSE="ATI" +KEYWORDS="-* ~x86 ~amd64" + +RDEPEND=">=x11-base/xorg-x11-6.8.0" + +DEPEND=">=virtual/linux-sources-2.4 + ${RDEPEND}" + +PROVIDE="virtual/opengl" + +ATIBIN="${D}/opt/ati/bin" +RESTRICT="nostrip multilib-pkg-force" + +pkg_setup(){ + #check kernel and sets up KV_OBJ + linux-mod_pkg_setup + # Set up X11 implementation + X11_IMPLEM_P="$(best_version virtual/x11)" + X11_IMPLEM="${X11_IMPLEM_P%-[0-9]*}" + X11_IMPLEM="${X11_IMPLEM##*\/}" + einfo "X11 implementation is ${X11_IMPLEM}." +} + +src_unpack() { + local OLDBIN="/usr/X11R6/bin" + + cd ${WORKDIR} + rpm_src_unpack + + cd ${WORKDIR}/lib/modules/fglrx/build_mod + + #epatch ${FILESDIR}/fglrx-3.9.0-allocation.patch + + if kernel_is 2 6 + then + #epatch ${FILESDIR}/fglrx-2.6.10-pci_get_class.patch + epatch ${FILESDIR}/8.08-kernel-2.6.10.patch + fi + + rm -rf ${WORKDIR}/usr/X11R6/bin/fgl_glxgears +} + +src_compile() { + einfo "Building the DRM module..." + cd ${WORKDIR}/lib/modules/fglrx/build_mod + if kernel_is 2 6 + then + set_arch_to_kernel + addwrite "/usr/src/${FK}" + cp 2.6.x/Makefile . + export _POSIX2_VERSION="199209" + if use_m ; + then + make -C ${KV_DIR} M="`pwd`" modules || \ + ewarn "DRM module not built" + else + make -C ${KV_DIR} SUBDIRS="`pwd`" modules || \ + ewarn "DRM module not built" + fi + set_arch_to_portage + else + export _POSIX2_VERSION="199209" + # That is the dirty way to avoid the id -u check + sed -e 's:`id -u`:0:' \ + -e 's:`uname -r`:${KV_FULL}:' \ + -i make.sh + chmod +x make.sh + ./make.sh || die "DRM module not built" + fi +} + +pkg_preinst() { + # Clean the dinamic libGL stuff's home to ensure + # we don't have stale libs floating around ... + if [ -d "${ROOT}/usr/lib/opengl/ati" ] + then + rm -rf ${ROOT}/usr/lib/opengl/ati/* + fi +} + +src_install() { + local ATI_ROOT="/usr/lib/opengl/ati" + + cd ${WORKDIR} + + # DRM module + insinto /lib/modules/${KV_FULL}/video + # set_kvobj + doins ${WORKDIR}/lib/modules/fglrx/build_mod/fglrx.${KV_OBJ} + + local native_dir + use x86 && native_dir="lib" + use amd64 && native_dir="lib64" + + # Install the libs + # MULTILIB-CLEANUP: Fix this when FEATURES=multilib-pkg is in portage + local MLTEST=$(type dyn_unpack) + if [ "${MLTEST/set_abi}" = "${MLTEST}" ] && has_multilib_profile; then + local OABI=${ABI} + for ABI in $(get_abi_order); do + src_install-libs + done + ABI=${OABI} + unset OABI + elif has_multilib_profile; then + src_install-libs + elif use amd64; then + src_install-libs lib $(get_multilibdir) + src_install-libs lib64 $(get_libdir) + else + src_install-libs + fi &> /dev/null + + #apps + insinto /etc/env.d + doins ${FILESDIR}/09ati + exeinto /opt/ati/bin + doexe usr/X11R6/bin/* + + #ati custom stuff + cp -a ${WORKDIR}/usr/include ${D}/usr/include + insinto /usr/X11R6/include/X11/extensions + doins ${WORKDIR}/usr/X11R6/include/X11/extensions/fglrx_gamma.h +} + +src_install-libs() { + local pkglibdir=lib + local inslibdir=$(get_libdir) + + if [ ${#} -eq 2 ]; then + pkglibdir=${1} + inslibdir=${2} + elif has_multilib_profile && [ "${ABI}" == "amd64" ]; then + pkglibdir=lib64 + fi + + einfo "${pkglibdir} -> ${inslibdir}" + + local ATI_ROOT="/usr/${inslibdir}/opengl/ati" + + # The GLX libraries + exeinto ${ATI_ROOT}/lib + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/libGL.so.1.2 + dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so.1 + dosym libGL.so.1.2 ${ATI_ROOT}/lib/libGL.so + + # Don't do this... see bug #47598 + #dosym libGL.so.1.2 ${ATI_ROOT}/lib/libMesaGL.so + + # same as the xorg implementation + dosym ../${X11_IMPLEM}/extensions ${ATI_ROOT}/extensions + #Workaround + sed -e "s:libdir=.*:libdir=${ATI_ROOT}/lib:" \ + /usr/${inslibdir}/opengl/${X11_IMPLEM}/lib/libGL.la \ + > $D/${ATI_ROOT}/lib/libGL.la + dosym ../${X11_IMPLEM}/include ${ATI_ROOT}/include + + # X and DRI driver + if has_version ">=x11-base/xorg-x11-6.8.0-r4" + then + local X11_DIR="/usr/" + else + local X11_DIR="/usr/X11R6/" + fi + + local X11_LIB_DIR="${X11_DIR}${inslibdir}" + + exeinto ${X11_LIB_DIR}/modules/drivers + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/drivers/fglrx_drv.o + exeinto ${X11_LIB_DIR}/modules/dri + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so + exeinto ${X11_LIB_DIR}/modules/linux + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/linux/libfglrxdrm.a + cp -a ${WORKDIR}/usr/X11R6/${pkglibdir}/libfglrx_gamma.* \ + ${D}/${X11_LIB_DIR} + + exeinto ${X11_LIB_DIR}/modules/dri + doexe ${WORKDIR}/usr/X11R6/${pkglibdir}/modules/dri/fglrx_dri.so +} + + +pkg_postinst() { +# Ebuild shouldn't do this automatically, just tell the user to do it, +# otherwise it messes up livecd/gamecd stuff ... (drobbins, 1 May 2003) +# if [ "${ROOT}" = "/" ] +# then +# /usr/sbin/opengl-update ati +# fi + + echo + einfo "To switch to ATI OpenGL, run \"opengl-update ati\"" + einfo "To change your XF86Config you can use the bundled \"fglrxconfig\"" + echo + ewarn "***" + ewarn "If you are experiencing problems with memory allocation try to add" + ewarn "this line to in your X11 configuration file:" + ewarn " Option \"KernelModuleParm\" \"agplock=0\" " + ewarn "That should solve the hangups you could have with Neverwinter Nights" + ewarn "***" + # DRM module + update-modules +} |