# $Header: /magellan-cvs/smage/ati-drivers/ati-drivers-8.493-r1.smage2,v 1.1 2008/06/13 17:37:24 niro Exp $ PNAME="ati-drivers" PVER="8.493" PBUILD="r1" PCATEGORIE="x11-drivers" STATE="unstable" DESCRIPTION="Display driver for the ATI Radeon and FireGL graphics accelerators with OpenGL suport." HOMEPAGE="http://www.ati.com/" # only for >= xorg-7.1.0 sminclude xorg xorg71 mtools xdg DEPEND=">= x11-base/xorg-server-1 >= x11-base/opengl-update-magellan-2.4" SDEPEND=">= x11-proto/xf86miscproto-1 >= x11-proto/xf86vidmodeproto-1" PROVIDE="virtual/opengl virtual/ati-drivers" # both files must be fetch or our md5-logic breaks SRCFILE="ati-driver-installer-8-5-x86.x86_64.run" SRCDIR="${BUILDDIR}/ati-drivers" ## use driver for xorg-6.9.0 with dll-loader libs #ATI_XORG_SDIR_x86="${SRCDIR}/x690" #ATI_XORG_SDIR_x86_64="${SRCDIR}/x690_64a" #ATI_XORG_SDIR="$(eval echo \$ATI_XORG_SDIR_${ARCH/i*86/x86})" # xorg 7.1.0 dll loader libs ATI_XORG_DLL_SDIR_x86="${SRCDIR}/x710" ATI_XORG_DLL_SDIR_x86_64="${SRCDIR}/x710_64a" ATI_XORG_DLL_SDIR="$(eval echo \$ATI_XORG_DLL_SDIR_${ARCH/i*86/x86})" # which xserver we use, ex. xfree/xorg X11_IMPLEM="xorg" # ati-module-sh cvs revision MODULESH_REV=1.2 SRC_URI=( http://www2.ati.com/drivers/linux/${SRCFILE} mirror://${PNAME}/${SRCFILE} mirror://${PNAME}/libGL.la-ati mirror://${PNAME}/ati-module.sh-${MODULESH_REV} ) # it's fatal if these drivers got stripped export NOSTRIP=true export CFLAGS="${CFLAGS/-s/}" export CXXFLAGS="${CFLAGS}" # check for libdri.so for >= xorg-6.9 !!!!!!!!!! # frost ~ # ls /var/tmp/magebuild/builded/usr/X11R6/lib/modules/extensions/lib # libdbe.so libextmod.so librecord.so # libdri.so libGLcore.so libxtrap.so 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; } src_install() { cd ${SRCDIR} # # use driver for xorg-6.9.0 with dll-loader libs # local XORG_SDIR="${ATI_XORG_SDIR}" # dll extensions local DLL_EXT="so" local DRM_DLL_EXT="so" # arch specific stuff local ARCH_SDIR="${SRCDIR}/arch/${ARCH/i*86/x86}" local ATI_ROOT="/usr/$(mlibdir)/opengl/ati" local X11_LIB_DIR="/usr/$(mlibdir)/xorg" # needed directories minstalldir /etc/env.d || die minstalldir ${ATI_ROOT}/lib || die minstalldir ${X11_LIB_DIR}/modules/dri || die minstalldir ${X11_LIB_DIR}/modules/drivers || die minstalldir ${X11_LIB_DIR}/modules/linux || die minstalldir /usr/include/X11/extensions || die minstalldir /usr/share || die minstalldir /usr/sbin || die minstalldir /opt/ati/bin || die # glx libraries minstallexec ${ARCH_SDIR}/usr/X11R6/lib/libGL.so.1.2 ${ATI_ROOT}/lib || 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 as the xorg implementation mlink ../${X11_IMPLEM}/extensions ${ATI_ROOT}/extensions || die # workaround missing linker file minstallfile -s libGL.la-ati ${ATI_ROOT}/lib/libGL.la || die mlink ../${X11_IMPLEM}/include ${ATI_ROOT}/include || die # install drivers minstallexec \ ${ATI_XORG_DLL_SDIR}/usr/X11R6/$(mlibdir)/modules/drivers/fglrx_drv.${DLL_EXT} \ ${X11_LIB_DIR}/modules/drivers || die # xorg-modules minstallexec \ ${ATI_XORG_DLL_SDIR}/usr/X11R6/$(mlibdir)/modules/esut.a \ ${X11_LIB_DIR}/modules || die minstallexec \ ${ATI_XORG_DLL_SDIR}/usr/X11R6/$(mlibdir)/modules/glesx.so \ ${X11_LIB_DIR}/modules || die # dri modules minstallexec \ ${ARCH_SDIR}/usr/X11R6/$(mlibdir)/modules/dri/fglrx_dri.so \ ${X11_LIB_DIR}/modules/dri || die # drm module minstallexec \ ${ATI_XORG_DLL_SDIR}/usr/X11R6/$(mlibdir)/modules/linux/libfglrxdrm.${DRM_DLL_EXT} \ ${X11_LIB_DIR}/modules/linux || die # other libs and apps cp -pPR ${ARCH_SDIR}/usr/X11R6/$(mlibdir)/libfglrx_*.* ${BINDIR}/usr/$(mlibdir) || die # includes minstallfile ${SRCDIR}/common/usr/X11R6/include/X11/extensions/fglrx_gamma.h \ /usr/include/X11/extensions || die # environment echo "PATH=/opt/ati/bin" > ${BINDIR}/etc/env.d/09ati || die echo "ROOTPATH=/opt/ati/bin" >> ${BINDIR}/etc/env.d/09ati || die echo "LIBGL_DRIVERS_PATH=/usr/$(mlibdir)/xorg/modules/dri" >> ${BINDIR}/etc/env.d/09ati || die # fixme: remove this if fixed upstream # amdcccle is somewhat broken with libxcb and needs the sloppy-lock variable # we force this system-wide by exporting this variable via the environment echo "LIBXCB_ALLOW_SLOPPY_LOCK=1" >> ${BINDIR}/etc/env.d/09ati || die # apps # install -m 0755 -o root -g root ${XORG_SDIR}/usr/X11R6/bin/* ${BINDIR}/opt/ati/bin || die minstallexec ${ARCH_SDIR}/usr/X11R6/bin/\* /opt/ati/bin || die # ati custom stuff cp -R ${SRCDIR}/common/usr/include ${BINDIR}/usr || die cp -pPR ${SRCDIR}/common/etc/* ${BINDIR}/etc/ || die # controlpanel stuff cp -R ${SRCDIR}/common/usr/share/ati ${BINDIR}/usr/share || die minstallpixmap ${SRCDIR}/common/usr/share/icons/ccc_small.xpm || die minstallpixmap ${SRCDIR}/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 # we did not install ${ARCH_SDIR}/usr/sbin/atieventsd for acpi-support # so we do not need its config file rm ${BINDIR}/etc/ati/authatieventsd.sh || die # for better support install systeminfo script minstallexec ${SRCDIR}/common/usr/sbin/atigetsysteminfo.sh /usr/sbin || die # install all related docs minstalldocs common/usr/share/doc/fglrx/*LICENSE* || die minstallhtml ${SRCDIR}/common/usr/share/doc/fglrx/*.html || die local i #for i in articles release-notes user-manual for i in articles user-manual do cp -R ${SRCDIR}/common/usr/share/doc/fglrx/${i} \ ${BINDIR}/usr/share/doc/${PNAME}-${PVER}/html || die ${i} done # create a driver tarball cd ${SRCDIR}/common/lib/modules/fglrx minstalldir /usr/src/ati-drivers || die mv ${SRCDIR}/common/lib/modules/fglrx/{build_mod,ati-drivers} || die # fix link issues; must be linked against the used xorg-lib # so we copy them into our tarball cp ${SRCDIR}/arch/${ARCH/i*86/x86}/lib/modules/fglrx/build_mod/libfglrx_ip.a.GCC* \ ${SRCDIR}/common/lib/modules/fglrx/ati-drivers || die # 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 } 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 }