#!/bin/sh
if ! [ -x /usr/sbin/dkms ]; then
 [ -x /usr/sbin/unfreeze-rc.d ] && unfreeze-rc.d
 apt-get install dkms
 [ -x /usr/sbin/freeze-rc.d ] && freeze-rc.d
fi
if ! [ -x /usr/bin/git-clone ]; then
 apt-get install git-core
fi
module=drm-r6xx-r7xx-3d
git_url=git://anongit.freedesktop.org/~agd5f/drm
git_branch=r6xx-r7xx-3d
#module=drm-r6xx-r7xx-support
#git_url=git://anongit.freedesktop.org/mesa/drm
#git_branch=r6xx-r7xx-support
dpkg --purge $module-dkms 2>/dev/null
dkms remove `dkms status 2>/dev/null|awk '/^'$module'/{print "-m "$1" -v "$2}'|sed 's/,//g;s/:$//'|uniq` --all >/dev/null 2>&1
rm -rf /var/lib/dkms/$module
rm -rf /tmp/drm
cd /tmp
git clone $git_url
cd drm
git checkout -t -b $git_branch origin/$git_branch
ver=`awk -F, '/AC_INIT\(\[libdrm\]/{print $2}' configure.ac|sed 's/ //'`+git.`git log|head -1|cut -d ' ' -f2|sed 's/\(........\).*/\1/'`
cat <<EOT > dkms.conf
PACKAGE_NAME="$module"
PACKAGE_VERSION="$ver"
MAKE[0]="make -C linux-core DRM_MODULES=\"drm i810 mach64 mga nouveau r128 radeon savage sis tdfx via xgi\" LINUXDIR=\$kernel_source_dir -j`grep -c ^processor /proc/cpuinfo 2>/dev/null||echo 1`"
CLEAN="make -C linux-core clean"
AUTOINSTALL=YES
EOT
cd linux-core
i=0
for x in drm i810 mach64 mga nouveau r128 radeon savage sis tdfx via xgi; do
 echo BUILT_MODULE_NAME[$i]=\"${x/_drv.c}\"
 echo BUILT_MODULE_LOCATION[$i]=\"linux-core\"
 echo DEST_MODULE_LOCATION[$i]=\"/kernel/drivers/gpu/drm/${x/_drv.c}\"|sed 's|/drm/drm|/drm|'
 let i=i+1
done >> ../dkms.conf
cd ..
rm -rf /usr/src/$module-$ver
mkdir -p /usr/src/$module-$ver
mv -v dkms.conf linux-core scripts shared-core /usr/src/$module-$ver
mkdir -p /usr/src/$module-$ver/patches
cd /usr/src/$module-$ver/patches
wget -N http://koti.kapsi.fi/nanonyme/public/r6xx-r7xx-3d-2.6.30-and-2.6.31.patch
cat >> ../dkms.conf << 'EOT'
PATCH[0]="r6xx-r7xx-3d-2.6.30-and-2.6.31.patch"
EOT
cd
dkms add -m $module -v $ver
LANG= dkms mkdeb -m $module -v $ver --source-only
dpkg -i /var/lib/dkms/$module/$ver/deb/$module-dkms_${ver}_all.deb
rm -rf /tmp/drm
