# Maintainer: Natanael Copa pkgname=mesa pkgver=11.0.6 pkgrel=0 pkgdesc="Mesa DRI OpenGL library" url="http://www.mesa3d.org" arch="all" license="LGPL" depends= subpackages="$pkgname-dev $pkgname-dri-ati:ati $pkgname-dri-nouveau:nouveau $pkgname-dri-swrast:swrast $pkgname-dri-vmwgfx:vmwgfx $pkgname-dricore $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles $pkgname-xatracker $pkgname-osmesa $pkgname-gbm $pkgname-libwayland-egl:_wayland " depends_dev="libdrm-dev dri2proto libx11-dev libxext-dev libxxf86vm-dev libxdamage-dev libxfixes-dev libxcb-dev glproto dri3proto presentproto libxshmfence-dev" makedepends="$depends_dev expat-dev xextproto python libxt-dev makedepend talloc-dev py-libxml2 flex bison llvm-dev eudev-dev libvdpau-dev libxvmc-dev gettext zlib-dev wayland-dev libelf-dev py-mako autoconf automake libtool" source="ftp://ftp.freedesktop.org/pub/mesa/${pkgver}/mesa-$pkgver.tar.xz glx_ro_text_segm.patch musl-fixes.patch " _dri_driverdir=/usr/lib/xorg/modules/dri _dri_drivers="r200,radeon,nouveau,swrast" _gallium_drivers="r300,r600,radeonsi,nouveau,svga,swrast" _builddir="$srcdir/mesa-$pkgver" _intel_dri= case "$CARCH" in x86*) _dri_drivers="${_dri_drivers},i915,i965" subpackages="$subpackages $pkgname-dri-intel:intel" ;; arm*) _gallium_drivers="${_gallium_drivers},vc4" ;; esac prepare() { cd "$_builddir" for i in $source; do case $i in *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; esac done libtoolize --force \ && aclocal \ && automake --add-missing \ && autoreconf || return 1 } build() { cd "$_builddir" [ "$CLIBC" = "musl" ] && export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --sysconfdir=/etc \ --with-dri-driverdir=$_dri_driverdir \ --disable-asm \ --disable-xvmc \ --enable-glx-rts \ --with-gallium-drivers=${_gallium_drivers} \ --with-dri-drivers=${_dri_drivers} \ --enable-llvm-shared-libs \ --enable-gallium-llvm \ --with-egl-platforms=x11,drm,wayland \ --enable-shared-glapi \ --enable-gbm \ --disable-glx-tls \ --enable-dri \ --enable-glx \ --enable-osmesa \ --enable-gles1 \ --enable-gles2 \ --enable-egl \ --enable-texture-float \ --enable-xa \ --enable-vdpau \ || return 1 make || return 1 } package() { cd "$_builddir" make -j1 DESTDIR="$pkgdir" install || return 1 } dricore() { pkgdesc="Mesa dricore runtime libraries" install -d "$subpkgdir"/usr/lib "$subpkgdir"/etc mv "$pkgdir"/usr/lib/libdricore*.so.* \ "$subpkgdir"/usr/lib/ mv "$pkgdir"/etc/drirc "$subpkgdir"/etc/drirc } egl() { replaces="mesa" pkgdesc="Mesa libEGL runtime libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libEGL.so* \ "$subpkgdir"/usr/lib/ } gl() { replaces="mesa" pkgdesc="Mesa libGL runtime libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGL.so* \ "$subpkgdir"/usr/lib/ } glapi() { replaces="$pkgname-gles" pkgdesc="Mesa shared glapi" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libglapi.so.* \ "$subpkgdir"/usr/lib/ } gles() { replaces="mesa" pkgdesc="Mesa libGLESv2 runtime libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libGLES*.so* \ "$subpkgdir"/usr/lib/ } xatracker() { pkgdesc="Mesa XA state tracker for vmware" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libxatracker*.so.* \ "$subpkgdir"/usr/lib/ } osmesa() { pkgdesc="Mesa offscreen rendering libraries" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libOSMesa.so.* \ "$subpkgdir"/usr/lib/ } gbm() { pkgdesc="Mesa gbm library" replaces="mesa" install -d "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libgbm.so.* \ "$subpkgdir"/usr/lib/ } _mv_dri() { pkgdesc="Mesa DRI driver for $@" install -d "$subpkgdir"/$_dri_driverdir while [ $# -gt 0 ]; do mv "$pkgdir"/$_dri_driverdir/${1}.so \ "$subpkgdir"/$_dri_driverdir/ || return 1 shift done } _mv_vdpau() { local i install -d "$subpkgdir"/usr/lib/vdpau for i in "$@"; do mv "$pkgdir"/usr/lib/vdpau/libvdpau_$i.* \ "$subpkgdir"/usr/lib/vdpau/ || return 1 done } _mv_gpipe() { return 0 # http://cgit.freedesktop.org/mesa/mesa/commit/?id=44ec468e8033553c26a112cebba41c343db00eb1 # https://code.google.com/p/chromium/issues/detail?id=412089 # local i # install -d "$subpkgdir"/usr/lib/gallium-pipe # for i in "$@"; do # mv "$pkgdir"/usr/lib/gallium-pipe/pipe_$i.* \ # "$subpkgdir"/usr/lib/gallium-pipe/ || return 1 # done } ati() { _mv_dri radeon_dri r200_dri r300_dri r600_dri radeonsi_dri \ && _mv_vdpau r300 r600 radeonsi \ && _mv_gpipe r300 r600; } intel() { _mv_dri i915_dri i965_dri; } nouveau() { _mv_dri nouveau_dri nouveau_vieux_dri \ && _mv_vdpau nouveau \ && _mv_gpipe nouveau; } swrast() { _mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast; } vmwgfx() { _mv_dri vmwgfx_dri && _mv_gpipe vmwgfx; } _wayland() { pkgdesc="Mesa libwayland-egl library" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/libwayland-egl.so.* "$subpkgdir"/usr/lib/ \ || return 1 } md5sums="0403559c2882218adf37962d562800f1 mesa-11.0.6.tar.xz a1a766b4c6a96d67cad9bd7ad5c578e8 glx_ro_text_segm.patch 924983cef0c3ede76e5011a179bac155 musl-fixes.patch" sha256sums="8340e64cdc91999840404c211496f3de38e7b4cb38db34e2f72f1642c5134760 mesa-11.0.6.tar.xz 004f52adefaeccfd4553e0b1d09ad769891d69d05880094c7a45d19623e674a6 glx_ro_text_segm.patch aecc3d03d00d34bfb26f54679000fdb8719571b14161e4be4db962fba0f96d24 musl-fixes.patch" sha512sums="946a66803395ef0f4d3b328e981e03a87bb5173a523be5da1dd3363002fceacd8dcbfdbf9716e31bb4247b23cc5ef112b24bb4ef0709b514bc8160c6cbf1dbf3 mesa-11.0.6.tar.xz c3d4804ebc24c7216e4c9d4995fb92e116be7f478024b44808ee134a4c93bb51d1f66fe5fb6eca254f124c4abf6f81272b027824b3e2650a9607818bf793035a glx_ro_text_segm.patch 9f7a050f09571a2b17098d495b82e2e85b293fb7285e7d6d7c3c48cd4220a1bdcc61a7321ba78dd14860939ecabe7e89b32d6110f3728f793273e1e26b78a553 musl-fixes.patch"