#_ _ _ _ _ _____ _ _ #| | _______ ____ _| | | || |___ | || | #| |/ / _ \ \ / / _` | | | || |_ / /| || |_ #| < __/\ V / (_| | | |__ _/ / |__ _| #|_|\_\___| \_/ \__,_|_|_| |_|/_/ |_| #Maintainer: kevall474 #Credits: Lone_Wolf ---> For the base PKGBULD #Credits: Laurent Carlier ---> For the base PKGBUILD ####################################### #Enable llvm by default #Set 'y' to enable #Default is set to empty, so no llvm by default patch if [ -z ${_llvm+x} ]; then _llvm= fi ####################################### #Set compiler #Set '1' to use gcc #Set '2' to use clang #If not set is will build with gcc if [ -z ${_compiler+x} ]; then _compiler= fi #Set compiler optimization for GCC #Set '1' to use optimization #Set '2' to disable optimization #If not set is will build with no optimization if [ -z ${_optimization+x} ]; then _optimization= fi #This set lto/pgo value for GCC or CLANG #For now LTO/PGO is turn off for CLANG because of build issues #Do not eddit unless you know what you are doing if [[ $_compiler = "1" ]]; then if [[ $_optimization = "1" ]]; then lto1=false pgo1=generate lto2=true pgo2=use elif [[ $_optimization = "2" ]]; then lto1=false pgo1=off lto2=false pgo2=off else lto1=false pgo1=off lto2=false pgo2=off fi elif [[ $_compiler = "2" ]]; then lto1=false pgo1=off lto2=false pgo2=off else lto1=false pgo1=generate lto2=true pgo2=use fi ####################################### pkgbase=mesa-rc pkgname=("${pkgbase}" "lib32-${pkgbase}") pkgver=21.0.0_rc5 pkgrel=1 versiontag=21.0.0-rc5 arch=('i686' 'x86_64') url="https://mesa3d.org/" license=('MIT') makedepends=("bison" "flex" "valgrind" "meson" "ninja" "git" "ninjas2" "libxvmc" "python" "python-appdirs" "python-mako" "python-evdev" "elfutils" "glslang" "libva" "libepoxy" "libxv" "libvdpau" "libx11" "libxml2" "libxrandr" "llvm" "libconfig" "gtk3" "wayland-protocols" "xorgproto" "lua" "polly" "gcc" "gcc-libs" "ncurses" "libarchive" "libclc" "vulkan-icd-loader" "clang" "compiler-rt" "glibc" "ocl-icd") # Makedepend for lib32 makedepends+=("lib32-flex" "lib32-libxvmc" "lib32-libva" "lib32-libepoxy" "lib32-libxv" "lib32-libvdpau" "lib32-libx11" "lib32-libxml2" "lib32-libxrandr" "lib32-llvm" "lib32-gtk3" "lib32-gcc-libs" "lib32-ncurses" "lib32-vulkan-icd-loader" "lib32-clang" "lib32-glibc" "lib32-ocl-icd") source=("https://archive.mesa3d.org/mesa-$versiontag.tar.xz" "LICENSE") md5sums=("SKIP" "SKIP") if [[ $_llvm = "y" ]]; then source+=("0001-enable-llvm-by-default.patch") md5sums+=("SKIP") #0001-enable-llvm-by-default.patch fi # clover patch for llvm 12.0.0 and 13.0.0. Not commited in master branch for now source+=("0001-4114.patch" "0001-4200.patch") md5sums+=("SKIP" "SKIP") prepare(){ cd mesa-$versiontag # Apply any patch local src for src in "${source[@]}"; do src="${src%%::*}" src="${src##*/}" [[ $src = *.patch ]] || continue msg2 "Applying patch $src..." patch -Np1 < "../$src" done } build(){ cd mesa-$versiontag # remove build dir if there is one if dir build_64; then rm -rf -v build_64 fi # create build dir mkdir -p -v build_64 if [[ $_compiler = "1" ]]; then export CC='gcc -m64' export CXX='g++ -m64' elif [[ $_compiler = "2" ]]; then export CC='clang -m64' export CXX='clang++ -m64' else export CC='gcc -m64' export CXX='g++ -m64' fi # build with meson meson setup build_64/ \ -D b_ndebug=true \ -D b_lto=$lto1 \ -D b_pgo=$pgo1 \ -D buildtype=plain \ --wrap-mode=nofallback \ -Dc_args="-Ofast -m64" \ -Dcpp_args="-Ofast -m64" \ -Dprefix=/usr \ -D sysconfdir=/etc \ -Dplatforms=x11,wayland \ -Ddri3=enabled \ -Ddri-drivers=i915,i965,r100,r200,nouveau \ -Dgallium-drivers=r300,r600,radeonsi,nouveau,virgl,svga,swrast,iris,zink \ -Dgallium-extra-hud=true \ -Dgallium-vdpau=enabled \ -Dgallium-xvmc=enabled \ -Dgallium-omx=bellagio \ -Dgallium-va=enabled \ -Dgallium-xa=enabled \ -Dgallium-nine=true \ -Dgallium-opencl=icd \ -Dopencl-spirv=false \ -Dopencl-native=true \ -Dvulkan-drivers=amd,intel,swrast \ -Dshader-cache=enabled \ -Dvulkan-overlay-layer=true \ -Dvulkan-device-select-layer=true \ -Dshared-glapi=enabled \ -Dgles1=enabled \ -Dgles2=enabled \ -Dopengl=true \ -Dgbm=enabled \ -Dglx=dri \ -Degl=enabled \ -Dglvnd=true \ -Dmicrosoft-clc=disabled \ -Dspirv-to-dxil=false \ -Dllvm=enabled \ -Dshared-llvm=enabled \ -Dvalgrind=enabled \ -Dlibunwind=enabled \ -Dlmsensors=enabled \ -Dselinux=false \ -Dosmesa=true \ -Dswr-arches=avx,avx2,knl,skx \ -Dshared-swr=true \ -Dxlib-lease=enabled \ -Dglx-direct=true \ -Dzstd=enabled \ -Dzlib=enabled \ -Dsse2=false meson configure build_64/ meson compile -C build_64/ ninja -C build_64/ # build with meson meson configure build_64/ \ -D b_lto=$lto2 \ -D b_pgo=$pgo2 meson configure build_64/ meson compile -C build_64/ ninja -C build_64/ # remove build dir if there is one if dir build_32; then rm -rf -v build_32 fi # create build dir mkdir -p -v build_32 if [[ $_compiler = "1" ]]; then export CC='gcc -m32' export CXX='g++ -m32' elif [[ $_compiler = "2" ]]; then export CC='clang -m32' export CXX='clang++ -m32' else export CC='gcc -m32' export CXX='g++ -m32' fi export PKG_CONFIG=/usr/bin/i686-pc-linux-gnu-pkg-config cat >crossfile.ini <