summaryrefslogblamecommitdiff
path: root/user/mesa/APKBUILD
blob: b5287b1d0c9db54f0804bfdacf6cf54b9dac21d0 (plain) (tree)
1
2
3
4
5
6
7
8
                                                 
            
             
        
                                 
                            
          
                                                             








                                                             
         
          





                                                                              
                                                                

                               
                                   

                                       
                                   
         










                                                                    
            




                                                                                   
               
                                                  
                                                        


















                                                   
                                    





                                                      





                                                            
                                          










                                       































































































































                                                                                                   


                               








                                                      
                                                                                                                                                                
                                                                                                                                                  
                                                                                                                                                         
                                                                                                                                                             
                                                                                                                                                                 

                                                                                                                                                              
# Maintainer: A. Wilcox <awilfox@adelielinux.org>
pkgname=mesa
pkgver=18.3.2
pkgrel=2
pkgdesc="Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
license="MIT AND X11 AND SGI-B-2.0 AND BSL-1.0 AND LGPL-2.1+"
depends=
subpackages="$pkgname-dev
	$pkgname-dri-ati:_dri
	$pkgname-dri-nouveau:_dri
	$pkgname-dri-freedreno:_dri
	$pkgname-dri-swrast:_dri
	$pkgname-dri-virtio:_dri
	$pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
	$pkgname-xatracker $pkgname-osmesa $pkgname-gbm
	"
_llvmver=6
depends_dev="libdrm-dev libxcb-dev libxdamage-dev libxext-dev libxshmfence-dev
	xorgproto-dev"
makedepends="$depends_dev byacc eudev-dev expat-dev flex libelf-dev
	libvdpau-dev libx11-dev libxfixes-dev libxrandr-dev libxt-dev
	libxvmc-dev libxxf86vm-dev llvm$_llvmver-dev makedepend python3
	py3-libxml2 py3-mako zlib-dev"
source="https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz
	musl-fixes.patch
	musl-fix-includes.patch
	amdgpu-pthread-header.patch
	disk_cache-stack-overflow.patch
	drmdeps.patch
	fix-non-altivec-ppc32.patch
	"

_dri_driverdir=/usr/lib/xorg/modules/dri
_dri_drivers="r200,radeon,nouveau,swrast"
_gallium_drivers="r300,r600,radeonsi,nouveau,freedreno,swrast,virgl"
_vulkan_drivers="radeon"

builddir="$srcdir/mesa-$pkgver"

_arch_opts=

case "$CARCH" in
x86* | pmmx)
	_dri_drivers="${_dri_drivers},i915,i965"
	_gallium_drivers="${_gallium_drivers},svga"
	_vulkan_drivers="${_vulkan_drivers},intel"
	subpackages="$subpackages $pkgname-dri-intel:_dri $pkgname-dri-vmwgfx:_dri"
	;;
aarch64 | arm*)
	_gallium_drivers="${_gallium_drivers},vc4"
	subpackages="$subpackages $pkgname-dri-vc4:_dri"
	case "$CARCH" in
	armhf) CFLAGS="$CFLAGS -mfpu=neon";;
	esac
	;;
esac

prepare() {
	cd "$builddir"
	default_prepare
	libtoolize --force \
		&& aclocal \
		&& automake --add-missing \
		&& autoreconf
}

build() {
	cd "$builddir"

	export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
	PYTHON=python3 ./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--with-dri-driverdir=$_dri_driverdir \
		--disable-asm \
		--with-gallium-drivers=${_gallium_drivers} \
		--with-dri-drivers=${_dri_drivers} \
		--with-vulkan-drivers=${_vulkan_drivers} \
		--with-llvm-prefix=/usr/lib/llvm$_llvmver \
		--enable-llvm-shared-libs \
		--enable-llvm \
		--with-platforms=x11,drm \
		--enable-shared-glapi \
		--enable-gbm \
		--disable-glx-tls \
		--disable-nine \
		--enable-dri \
		--enable-dri3 \
		--enable-glx \
		--enable-osmesa \
		--enable-gles1 \
		--enable-gles2 \
		--enable-egl \
		--enable-xa \
		--enable-vdpau \
		$_arch_opts

	make
}

check() {
	cd "$builddir"
	# Compiler test requires LLVM 3.8 and Python 2
	for i in gtest util mapi; do
		make -C "src/$i" check
	done
}

package() {
	cd "$builddir"
	make -j1 DESTDIR="$pkgdir" install
}

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() {
	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
}

_dri() {
	local n=${subpkgname##*-dri-}
	pkgdesc="Mesa DRI driver for $n"
	case $n in
	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
		;;
	freedreno)
		_mv_dri msm_dri kgsl_dri 
		;;
	swrast)
		_mv_dri swrast_dri kms_swrast_dri && _mv_gpipe swrast
		;;
	vc4)
		_mv_dri vc4_dri
		;;
	vmwgfx)
		_mv_dri vmwgfx_dri && _mv_gpipe vmwgfx
		;;
	virtio)
		_mv_dri virtio_gpu_dri
		;;
	esac
}

sha512sums="34b66520728d720b1f3d3d63f8ba5c255d57b9e8fe427264419e4163b474df662ff6db9ca8b81283866da415e34346a4c39fc37bebe2a0929be14480faf4db45  mesa-18.3.2.tar.xz
9f7a050f09571a2b17098d495b82e2e85b293fb7285e7d6d7c3c48cd4220a1bdcc61a7321ba78dd14860939ecabe7e89b32d6110f3728f793273e1e26b78a553  musl-fixes.patch
c7d91a660a033df91fac9c557039efc8669f0c26b2d35997d50753938b70d1af0bd110dcab3f8236eafab7d4be5dd7cd128a3e057e67e7e6a38a73fd6a7ef62e  musl-fix-includes.patch
245d0d64d858dfadeeb544f31f7d0bb6ecb746a7fd5ec99755d679ae1a1eef4198d66473fb24d333eb6786bb8657012771e8285d67f165dc61a031df801947aa  amdgpu-pthread-header.patch
f40ff04ac73c090c74d1955de6013c5aa41fb77f28b2b82d89cfc1880306a9ca1dde4581592db19f0a0ec6d85032f1ed5d953103ab0d075f9f0b7e459a028c45  disk_cache-stack-overflow.patch
6800bc62aebfba22a2562c858c27391b47c5675020bd67f040da93ffe4d5d8ac828907a44c7cee6a4ebe63821b58c2515b4012f1f23473670b1de8670426a430  drmdeps.patch
71a397cf9937e623d21abacb2726602f1b5165b18543e11fdfdaac748c221aeafbbda790492a2180b590dace9a17c931c1eac199de32e90c3fa3305706a4011f  fix-non-altivec-ppc32.patch"