# Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/matrox.eclass,v 1.10 2004/10/14 03:27:38 spyderous Exp $ # # Author: Donnie Berkholz # # This eclass is designed to reduce code duplication in the mtxdrivers* ebuilds. # The only addition to mtxdrivers-pro is OpenGL stuff. inherit eutils #inherit linux-einfo ECLASS="matrox" INHERITED="${INHERITED} ${ECLASS}" EXPORT_FUNCTIONS pkg_setup src_compile HOMEPAGE="http://www.matrox.com/mga/products/parhelia/home.cfm" LICENSE="Matrox" SLOT="${KV}" RESTRICT="fetch nostrip" RDEPEND="virtual/x11 virtual/linux-sources" matrox_pkg_setup() { # Require correct /usr/src/linux check_KV # 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}." # Force XFree86 4.3.0, 4.2.1 or 4.2.0 to be installed unless FORCE_VERSION # is set. Need FORCE_VERSION for 4.3.99/4.4.0 compatibility until Matrox # comes up with drivers (spyderous) if has_version "x11-base/xfree" then local INSTALLED_X="`best_version x11-base/xfree`" GENTOO_X_VERSION_REVISION="${INSTALLED_X/x11-base\/xfree-}" GENTOO_X_VERSION="${GENTOO_X_VERSION_REVISION%-*}" if [ "${GENTOO_X_VERSION}" != "4.3.0" ] then if [ "${GENTOO_X_VERSION}" != "4.2.1" ] then if [ "${GENTOO_X_VERSION}" != "4.2.0" ] then if [ "${GENTOO_X_VERSION}" != "4.3.0" ] then if [ -n "${FORCE_VERSION}" ] then GENTOO_X_VERSION="${FORCE_VERSION}" else die "These drivers require XFree86 4.3.0, 4.2.1, 4.2.0 or 4.3.0. Do FORCE_VERSION=version-you-want emerge ${PN} (4.3.0, 4.2.1, 4.2.0 or 4.3.0) to force installation." fi fi fi fi fi # xorg-x11 compatibility elif has_version "x11-base/xorg-x11" then local INSTALLED_X="`best_version x11-base/xorg-x11`" GENTOO_X_VERSION_REVISION="${INSTALLED_X/x11-base\/xorg-x11-}" GENTOO_X_VERSION="${GENTOO_X_VERSION_REVISION%-*}" if [ "${GENTOO_X_VERSION}" != "6.7.0" ] then if [ "${GENTOO_X_VERSION}" != "6.8.0" ] then if [ "${GENTOO_X_VERSION}" != "6.8.1" ] then if [ "${GENTOO_X_VERSION}" != "6.8.2" ] then if [ -n "${FORCE_VERSION}" ] then GENTOO_X_VERSION="${FORCE_VERSION}" else die "These drivers require xorg-x11 6.7.0, 6.8.0, 6.8.1 or 6.8.2. Do FORCE_VERSION=version-you-want emerge ${PN} (6.7.0, 6.8.0, 6.8.1 or 6.8.2) to force installation." fi fi fi fi fi fi } matrox_src_compile() { # Check for kernel version < 2.6.12 local MY_KV="${KV%-*}" MY_KV="${MY_KV%-*}" einfo "Kernelversion: ${MY_KV}" if [ "${MY_KV}" == "2.6.12" ] then die "These drivers will only support kernels < 2.6.12." fi # 2.6 builds use the ARCH variable set_arch_to_kernel export PARHELIUX="${PWD}/kernel/src" export INSTALLERBUILD="1" cd ${S}/kernel/src make clean cd parhelia make clean ln -sf ../../mtx_parhelia.o . cd .. # Can't use emake here make || die "make failed" set_arch_to_portage } matrox_base_src_install() { # Kernel Module dodir /$(get_libdir)/modules/${KV}/kernel/drivers/video; insinto /$(get_libdir)/modules/${KV}/kernel/drivers/video #Addition by Daniel Armyr #Assuming noone tries this on a < 2.4 or > 2.6 kernel. #Experience says that one can also rename mtx.o to mtx.ko and #use that module. But since the ebuild makes an mtx.ko we #might as well use it. if [ "${KV:0:3}" = "2.4" ] then einfo "Kernel vesion: 2.4" #debug doins kernel/src/mtx.o else einfo "Kernel version: 2.6" #debug doins kernel/src/mtx.ko fi # X Driver (2D) dodir /usr/X11R6/$(get_libdir)/modules/drivers; insinto /usr/X11R6/$(get_libdir)/modules/drivers doins xserver/${GENTOO_X_VERSION}/mtx_drv.o } matrox_base_pkg_postinst() { if [ "${ROOT}" = "/" ] then /sbin/modules-update fi if [ ! -d /dev/video ] then if [ -f /dev/video ] then einfo "NOTE: To be able to use busmastering, you MUST have /dev/video as" einfo "a directory, which means you must remove anything there first" einfo "(rm -f /dev/video), and mkdir /dev/video" else mkdir /dev/video fi fi }