# $Id: PKGBUILD 83334 2010-06-21 11:46:47Z jgc $
# Maintainer: Jan de Groot <jgc@archlinux.org>

pkgbase=mesa
pkgname=('mesa' 'libgl' 'ati-dri' 'intel-dri' 'unichrome-dri' 'mach64-dri' 'mga-dri' 'r128-dri' 'savage-dri' 'sis-dri' 'tdfx-dri' 'nouveau-dri')
pkgver=7.8.2
pkgrel=1
arch=(i686 x86_64)
makedepends=('glproto>=1.4.11' 'pkgconfig' 'libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1' 'libx11>=1.3.3' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'python')
url="http://mesa3d.sourceforge.net"
license=('custom')
#options=(!makeflags)
source=(ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaLib-${pkgver}.tar.bz2
        ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/MesaDemos-${pkgver}.tar.bz2
        ftp://ftp.archlinux.org/other/mesa/gl-manpages-1.0.1.tar.bz2
        nouveau_class.h
        LICENSE)
md5sums=('6be2d343a0089bfd395ce02aaf8adb57'
         '757d9e2e06f48b1a52848be9b0307ced'
         '6ae05158e678f4594343f32c2ca50515'
         '850546127f5185959407a78b55f898d8'
         '5c65a0fe315dd347e09b1f2826a1df5a')

build() {
  cd "${srcdir}/Mesa-${pkgver}"
  cp "${srcdir}/nouveau_class.h" "src/gallium/drivers/nouveau/" || return 1
  ./configure --prefix=/usr \
    --with-dri-driverdir=/usr/lib/xorg/modules/dri \
    --with-dri-drivers=swrast,radeon,r200,r300,r600,i810,i915,i965,unichrome,mach64,mga,r128,savage,sis,tdfx \
    --disable-egl \
    --disable-gallium-intel \
    --enable-glx-tls \
    --with-driver=dri \
    --enable-xcb \
    --with-state-trackers=dri,glx \
    --enable-gallium-nouveau \
    --disable-glut || return 1
  make || return 1

  cd "${srcdir}/gl-manpages-1.0.1"
  ./configure --prefix=/usr || return 1
  make || return 1
}

package_libgl() {
  depends=('libdrm>=2.4.21' 'libxxf86vm>=1.1.0' 'libxdamage>=1.1.2' 'expat>=2.0.1')
  pkgdesc="Mesa 3-D graphics library and DRI software rasterizer"

  cd "${srcdir}/Mesa-${pkgver}" || return 1
  install -m755 -d "${pkgdir}/usr/lib" || return 1
  install -m755 -d "${pkgdir}/usr/lib/xorg/modules/extensions"

  bin/minstall lib/libGL.so* "${pkgdir}/usr/lib/" || return 1

  cd src/mesa/drivers/dri
  make -C swrast DESTDIR="${pkgdir}" install || return 1
  #install -m755 libdricore.so "${pkgdir}/usr/lib/xorg/modules/dri/" || return 1
  ln -s libglx.xorg "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" || return 1

  install -m755 -d "${pkgdir}/usr/share/licenses/libgl"
  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/libgl/" || return 1
}

package_mesa() {
  depends=('libgl' 'libx11>=1.3.3' 'libxt>=1.0.8' 'gcc-libs>=4.5' 'dri2proto=2.3' 'libdrm>=2.4.20')
  pkgdesc="Mesa 3-D graphics libraries and include files"

  cd "${srcdir}/Mesa-${pkgver}" || return 1
  make DESTDIR="${pkgdir}" install || return 1
  install -m755 -d "${pkgdir}/usr/bin"
  install -m755 progs/xdemos/glx{gears,info} "${pkgdir}/usr/bin/" || return 1

  rm -f "${pkgdir}/usr/lib/libGL.so"*
  rm -rf "${pkgdir}/usr/lib/xorg"
  rm -f "${pkgdir}/usr/include/GL/glew.h"
  rm -f "${pkgdir}/usr/include/GL/glxew.h"
  rm -f "${pkgdir}/usr/include/GL/wglew.h"

  cd "${srcdir}/gl-manpages-1.0.1" || return 1
  make DESTDIR="${pkgdir}" install || return 1

  install -m755 -d "${pkgdir}/usr/share/licenses/mesa"
  install -m755 "${srcdir}/LICENSE" "${pkgdir}/usr/share/licenses/mesa/" || return 1
}

package_ati-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for AMD/ATI Radeon"
  conflicts=('xf86-video-ati<6.9.0-6')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C radeon DESTDIR="${pkgdir}" install || return 1
  make -C r200 DESTDIR="${pkgdir}" install || return 1
  make -C r300 DESTDIR="${pkgdir}" install || return 1
  make -C r600 DESTDIR="${pkgdir}" install || return 1
}

package_intel-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for Intel"

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C i810 DESTDIR="${pkgdir}" install || return 1
  make -C i915 DESTDIR="${pkgdir}" install || return 1
  make -C i965 DESTDIR="${pkgdir}" install || return 1
}

package_unichrome-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for S3 Graphics/VIA Unichrome"

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C unichrome DESTDIR="${pkgdir}" install || return 1
}

package_mach64-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for ATI Mach64"
  conflicts=('xf86-video-mach64<6.8.2')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C mach64 DESTDIR="${pkgdir}" install || return 1
}

package_mga-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for Matrox"
  conflicts=('xf86-video-mga<1.4.11')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C mga DESTDIR="${pkgdir}" install || return 1
}

package_r128-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for ATI Rage128"
  conflicts=('xf86-video-r128<6.8.1')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C r128 DESTDIR="${pkgdir}" install || return 1
}

package_savage-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for S3 Sraphics/VIA Savage"
  conflicts=('xf86-video-savage<2.3.1')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C savage DESTDIR="${pkgdir}" install || return 1
}

package_sis-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for SiS"
  conflicts=('xf86-video-sis<0.10.2')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C sis DESTDIR="${pkgdir}" install || return 1
}

package_tdfx-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa DRI drivers for 3dfx"
  conflicts=('xf86-video-tdfx<1.4.3')

  cd "${srcdir}/Mesa-${pkgver}/src/mesa/drivers/dri" || return 1
  make -C tdfx DESTDIR="${pkgdir}" install || return 1
}

package_nouveau-dri() {
  depends=("libgl=${pkgver}")
  pkgdesc="Mesa Gallium3D DRI drivers for Nouveau - highly experimental/unsupported"

  cd "${srcdir}/Mesa-${pkgver}/src/gallium/winsys/drm/nouveau/dri"
  make DESTDIR="${pkgdir}" install || return 1
}