# $Id$ PNAME="ati-drivers" PVER="12.4" PBUILD="r1" PCAT="x11-drivers" DESCRIPTION="Display driver for the ATI Radeon and FireGL graphics accelerators with OpenGL suport." HOMEPAGE="http://www.ati.com/" COMMON_DEPEND=">= x11-base/xorg-server-1.11 >= x11-libs/libX11-1.4 >= x11-libs/libXext-1.3 >= x11-libs/libXinerama-1.1 >= x11-libs/libXrandr-1.3 >= x11-libs/libXrender-0.9 >= x11-apps/xauth-1" QT4_DEPEND=">= x11-libs/libICE-1 >= x11-libs/libSM-1.2 >= x11-libs/libXcursor-1.1 >= x11-libs/libXfixes-5 >= x11-libs/libXxf86vm-1.1 >= x11-libs/qt4-core-4.8 >= x11-libs/qt4-gui-4.8" SDEPEND=">= x11-proto/inputproto-2 >= x11-proto/xf86miscproto-0.9 >= x11-proto/xf86vidmodeproto-2.3 >= x11-proto/xineramaproto-1.2 >= x11-libs/libXtst-1.2 >= sys-apps/findutils-4.4 >= app-misc/pax-utils-0.3" PROVIDE="virtual/opengl virtual/ati-drivers" # both files must be fetch or our md5-logic breaks SRCFILE="amd-driver-installer-${PVER%.*}-${PVER#*.}-x86.x86_64.run" SRCDIR="${BUILDDIR}/ati-drivers" # ati-module-sh cvs revision MODULESH_REV=1.2 sminclude xorg mtools xdg # it's fatal if these drivers got stripped msetfeature "!strip" SRC_URI=( http://www2.ati.com/drivers/linux/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/ati-module.sh-${MODULESH_REV} mirror://${PNAME}/switchlibGL mirror://${PNAME}/switchlibglx ) src_prepare() { install -d ${SRCDIR} || die cd ${SRCDIR} sh ${SOURCEDIR}/${PNAME}/${SRCFILE} --extract ${SRCDIR} || die } # fake (needed with the include of xorg.sminc) src_compile() { return 0; } arch_src_install() { cd ${SRCDIR} # arch specific stuff local arch="$1" local abi local abi_libdir local modules_dir case ${arch} in x86_64) abi="64" abi_libdir="lib${abi}" modules_dir="xpic_${abi}a" ;; i*86) abi="32" abi_libdir="lib" modules_dir="xpic" ;; esac local arch_dir="arch/${arch/i*86/x86}" local ati_root="/usr/${abi_libdir}/opengl/ati" local x11_libdir="/usr/${abi_libdir}/xorg" # gl libraries minstalldir ${ati_root}/lib || die minstallexec ${arch_dir}/usr/X11R6/${abi_libdir}/fglrx/fglrx-libGL.so.1.2 ${ati_root}/lib/libGL.so.1.2 || die mlink libGL.so.1.2 ${ati_root}/lib/libGL.so.1 || die mlink libGL.so.1.2 ${ati_root}/lib/libGL.so || die # same with extensions minstalldir ${ati_root}/extensions || die minstallexec ${modules_dir}/usr/X11R6/${abi_libdir}/modules/extensions/fglrx/fglrx-libglx.so ${ati_root}/extensions/libglx.so || die # other libs minstalldir /usr/${abi_libdir} || die # everything except for the libGL.so installed some row above local i for i in $(find ${arch_dir}/usr/X11R6/${abi_libdir} -maxdepth 1 -type f -name '*.so*' -not -name '*libGL.so*') do minstallexec ${i} /usr/${abi_libdir} || die done for i in $(find ${arch_dir}/usr/X11R6/${abi_libdir} -maxdepth 1 -type f -not -name '*.so*') do minstallfile ${i} /usr/${abi_libdir} || die done # install drivers minstalldir ${x11_libdir}/modules/drivers || die minstallexec ${modules_dir}/usr/X11R6/${abi_libdir}/modules/drivers/fglrx_drv.so ${x11_libdir}/modules/drivers || die # xorg-modules minstallexec ${modules_dir}/usr/X11R6/${abi_libdir}/modules/amdxmm.so ${x11_libdir}/modules || die minstallexec ${modules_dir}/usr/X11R6/${abi_libdir}/modules/glesx.so ${x11_libdir}/modules || die # dri modules minstalldir /usr/${abi_libdir}/dri || die minstallexec ${arch_dir}/usr/X11R6/${abi_libdir}/modules/dri/fglrx_dri.so /usr/${abi_libdir}/dri || die # drm module minstalldir ${x11_libdir}/modules/linux || die minstallexec ${modules_dir}/usr/X11R6/${abi_libdir}/modules/linux/libfglrxdrm.so ${x11_libdir}/modules/linux || die # amd cal and opencl libs minstalldir /usr/${abi_libdir}/OpenCL/vendors/amd || die minstallexec ${arch_dir}/usr/${abi_libdir}/libamdocl\*.so\* /usr/${abi_libdir}/OpenCL/vendors/amd || die minstallexec ${arch_dir}/usr/${abi_libdir}/libOpenCL\*.so\* /usr/${abi_libdir}/OpenCL/vendors/amd || die mlink libOpenCL.so.1 /usr/${abi_libdir}/OpenCL/vendors/amd/libOpenCL.so || die minstallexec ${arch_dir}/usr/${abi_libdir}/libati\*.so\* /usr/${abi_libdir} || die minstalldir /etc/OpenCL/vendors || die MCONFIG="/etc/OpenCL/vendors/amdocl${abi}" mclearconfig || die maddconfig "/usr/${abi_libdir}/OpenCL/vendors/amd/libamdocl${abi}.so" || die # environment minstalldir /etc/env.d || die MCONFIG="/etc/env.d/09ati-m${abi}" mclearconfig || die maddconfig "PATH=/opt/ati/bin" maddconfig "ROOTPATH=/opt/ati/bin" maddconfig "LIBGL_DRIVERS_PATH=/usr/${abi_libdir}/dri" # apps minstalldir /opt/ati/bin || die minstallexec ${arch_dir}/usr/sbin/atieventsd /opt/ati/bin || die # qt4 minstallexec ${arch_dir}/usr/sbin/amdnotifyui /opt/ati/bin || die # clinfo minstallexec ${arch_dir}/usr/bin/clinfo /opt/ati/bin || die # other minstallexec ${arch_dir}/usr/X11R6/bin/\* /opt/ati/bin || die # config stuff minstalldir /etc/ati || die minstallfile common/etc/ati/logo\* /etc/ati || die minstallfile common/etc/ati/control /etc/ati || die minstallfile common/etc/ati/atiogl.xml /etc/ati || die minstallfile common/etc/ati/signature /etc/ati || die minstallfile common/etc/ati/amdpcsdb.default /etc/ati || die minstallexec common/etc/ati/authatieventsd.sh /etc/ati || die # acpi config stuff minstalldir /etc/acpi/events || die minstallexec common/usr/share/doc/fglrx/examples/etc/acpi/ati-powermode.sh /etc/acpi || die minstallfile common/usr/share/doc/fglrx/examples/etc/acpi/events/\* /etc/acpi/events || die # includes minstalldir /usr mcopy -R common/usr/include /usr || die # includes ( no includes provided here atm) # minstalldir /usr/include/X11/extensions || die # minstallfile common/usr/X11R6/include/X11/extensions/\*.h /usr/include/X11/extensions || die # for better support install systeminfo script minstalldir /usr/sbin || die minstallexec common/usr/sbin/atigetsysteminfo.sh /usr/sbin || die # qt4 stuff minstalldir /usr/share || die mcopy -R common/usr/share/ati /usr/share || die minstallpixmap common/usr/share/icons/ccc_large.xpm || die minstall_desktop_icon \ --name 'ATI Catalyst Control Center' \ --comment 'ATI graphics adapter settings' \ --exec amdcccle \ --file amdcccle \ --icon ccc_large.xpm \ --categories System \ || die # install all related docs minstalldocs common/usr/share/doc/fglrx/*LICENSE* || die minstallhtml common/usr/share/doc/fglrx/*.html || die mcopy -R common/usr/share/doc/fglrx/articles /usr/share/doc/${PNAME}-${PVER}/html || die mcopy -R common/usr/share/doc/fglrx/user-manual /usr/share/doc/${PNAME}-${PVER}/html || die # man pages minstallman common/usr/share/man/man8/atieventsd.8 || die # atieventsd initscript! # powerexpress stuff minstalldir /usr/${abi_libdir}/fglrx || die minstallexec -s switchlibGL /usr/${abi_libdir}/fglrx || die minstallexec -s switchlibglx /usr/${abi_libdir}/fglrx || die # create a driver tarball minstalldir /usr/src/ati-drivers || die install -d ${BUILDDIR}/temp || die cp -R ${SRCDIR}/common/lib/modules/fglrx/build_mod ${BUILDDIR}/temp/ati-drivers || die # fix link issues; must be linked against the used xorg-lib # so we copy them into our tarball cp ${SRCDIR}/${arch_dir}/lib/modules/fglrx/build_mod/libfglrx_ip.a ${BUILDDIR}/temp/ati-drivers || die pushd ${BUILDDIR}/temp # from gentoo: # When built with ati's make.sh it defines a bunch of macros if # certain .config values are set, falling back to less reliable # detection methods if linux/autoconf.h is not available. We # simply use the linux/autoconf.h settings directly, bypassing the # detection script. sed -i "s:__SMP__:CONFIG_SMP:" ati-drivers/*.c ati-drivers/*.h || die sed -i "s:ifdef\ MODVERSIONS:ifdef\ CONFIG_MODVERSIONS:" ati-drivers/*.c ati-drivers/*.h || die tar cvjf ${BINDIR}/usr/src/ati-drivers/ati-drivers-${PVER}.tar.bz2 ati-drivers/ || die # install module-build script minstallexec -s ati-module.sh-${MODULESH_REV} /usr/src/ati-drivers/ati-module.sh || die # fix pver in ati-module.sh sed -i "s:@@PVER@@:${PVER}:" ${BINDIR}/usr/src/ati-drivers/ati-module.sh || die popd } src_install() { # honor multilib if [[ $(mlibdir) != lib ]] then arch_src_install "i686" arch_src_install "${ARCH}" else arch_src_install "${ARCH}" fi } postinstall() { ${MROOT}/usr/sbin/opengl-update --use-old ati echo echo "To use these driver you need to compile the kernel module first." echo "Goto /usr/src/ati-drivers and run ati-module.sh:" echo " 'cd /usr/src/ati-drivers && ./ati-module.sh'" echo echo "Please switch your opengl extension with: " echo " 'opengl-update ati'" echo echo "Next step is to create a new xorg.conf with" echo " 'aticonfig --initial --input=/etc/X11/xorg.conf'" echo echo "Run 'aticonfig --help' for more options." echo }